★ 多年区块链一线实战经验分享
★ 囊括比特币/以太坊/超级账本三平台的设计精华
★ 内容几乎涵盖了区块链技术的所有知识点
★ 网络层、共识层、数据层、智能合约层、应用层
★ 自底而上地揭示区块链各个模块的结构和特点
★ 更重要的,本书涵盖了区块链主流平台的新技术
★ 可帮助读者深入理解区块链的核心原理和设计思想
★ 使读者不局限于某一平台,可灵活运用各种设计思想
本书由浅入深地介绍了比特币、以太坊和超级账本三个区块链平台的设计精华。除第0章导言外,全书还包含10章,按照区块链架构体系自底而上进行介绍。第1章介绍了区块链各模块所需要用到的密码学知识。第2章介绍了区块链中的P2P模块,揭示了区块链的网络结构。第3章介绍了区块链中的两种交易模型。第4章展示了如何使用Solidity编写智能合约。第5章从EVM的角度关注了智能合约的编译和执行。第6章讨论了区块链中的核心数据结构。第7章分别从公有链和联盟链两个方向介绍了二者所采用的共识算法和解决的问题。第8章围绕数字钱包技术介绍了如何生成私钥、存储私钥和保护私钥。第9章介绍了打通链上数据和链外数据的关键技术预言机。第10章从社区的角度介绍了公有链项目的标准制定流程和一些区块链标准。本书涵盖了区块链主流平台的新技术,可以帮助读者深入理解区块链的核心原理和设计思想,使读者不局限于某一平台,灵活运用区块链系统的设计思想。
第0章导言
0.1 区块链技术体系分类
0.2 网络层
0.3 共识层
0.4 数据层
0.5 智能合约层
0.6 应用层
0.7 本书目的
0.8 阅读建议
0.9 勘误和支持
0.10 致谢
第1章密码学基础
1.1 基本元素
1.2 对称加密
1.3 非对称加密
1.4 混合加密
1.5 哈希算法
1.6 数字签名
1.7 可信通信
1.7.1 TLS协议
1.7.2 双向认证
1.8 ECDH密钥协商
1.9 身份验证
1.10 数字证书
1.10.1 数字证书结构
1.10.2 数字证书类型
1.10.3 数字证书编码
1.10.4 简单应用
1.11 PKI体系
1.12 证书链
1.13 可信执行环境
第2章网络层
2.1 集中式网络
2.2 纯分布式网络
2.2.1 Gossip协议
2.2.2 Gossip协议流程
2.3 混合式网络
2.4 结构化网络
2.4.1 Kademlia算法原理
2.4.2 K桶
2.4.3 K桶的更新机制
2.4.4 加入Kad网络
2.4.5 定位节点
2.4.6 以太坊中的Kad网络
2.5 RLP编码
2.5.1 RLP编码定义
2.5.2 RLP编码规则
2.6 RLPx子协议
2.7 Whisper协议
2.7.1 消息广播
2.7.2 协议流程
第3章交易模型
3.1 UTXO模型介绍
3.1.1 输入
3.1.2 输出
3.1.3 比特币脚本
3.2 账户模型
3.2.1 外部账户
3.2.2 合约账户
3.2.3 世界状态
第4章智能合约
4.1 Gas
4.1.1 Gas支付
4.1.2 Gas成本与Gas价格
4.1.3 Gas成本限制和Gas耗尽
4.1.4 Gas价格和交易优先顺序
4.1.5 区块Gas限制
4.1.6 Gas限制
4.1.7 Gas退款
4.1.8 GasToken
4.2 智能合约生命周期
4.3 以太坊高级语言简介
4.4 Remix开发环境
4.5 Solidity文件结构
4.5.1 版本标识
4.5.2 源文件导入
4.5.3 路径
4.5.4 注释
4.6 数据类型
4.6.1 变量
4.6.2 值类型
4.6.3 引用类型
4.6.4 数据位置
4.6.5 动态数组
4.6.6 映射
4.6.7 枚举
4.6.8 结构体
4.7 控制结构与表达式
4.7.1 构造函数与析构函数
4.7.2 函数参数
4.7.3 函数返回变量
4.7.4 作用域
4.7.5 函数调用
4.7.6 函数可见性
4.7.7 函数装饰器
4.7.8 回退函数
4.7.9 错误处理及异常
4.8 事件
4.8.1 监听事件
4.8.2 检索日志
4.9 合约继承
4.9.1 继承支持传递参数
4.9.2 继承中的重名
4.9.3 重写函数
4.9.4 继承父类合约方法
4.9.5 多继承与线性化
第5章深入EVM
5.1 存储
5.1.1 存储分类
5.1.2 Hex编码
5.2 智能合约的ABI
5.3 编译Solidity
5.4 ABI编码
5.4.1 状态变量
5.4.2 结构体
5.4.3 布尔类型
5.4.4 定长数组
5.4.5 映射
5.4.6 动态数组
5.4.7 动态数组打包
5.4.8 字节数组和字符串
5.4.9 函数选择器和参数编码
5.5 Solidity汇编
5.5.1 内联汇编
5.5.2 基本语法
5.5.3 操作码
5.5.4 函数风格
5.5.5 访问外部变量和函数
5.5.6 汇编局部变量声明
5.5.7 赋值
5.5.8 条件判断与循环语句
5.5.9 函数
5.5.10 注意事项
5.5.11 Solidity惯例
5.5.12 独立汇编
5.5.13 EVM中的事件与日志
5.6 跨合约调用
5.6.1 call和callcode异同
5.6.2 callcode和delegatecall异同
5.7 智能合约安全
5.7.1 合约审计
5.7.2 未来研究方向与改进思路
5.7.3 漏洞分析
第6章区块链核心数据结构
6.1 交易结构
6.1.1 AccountNonce
6.1.2 Price
6.1.3 Recipient
6.1.4 Amount
6.1.5 Payload
6.1.6 V. R. S
6.2 交易池
6.3 交易回执
6.4 区块
6.4.1 区块结构
6.4.2 区块存储
6.4.3 创世区块
6.4.4 区块广播
6.4.5 区块扩容
6.5 默克尔树与轻节点
6.5.1 默克尔树
6.5.2 轻节点
6.5.3 布隆过滤器
6.6 字典树
6.7 MPT树
6.7.1 MPT树持久化
6.7.2 安全的MPT树
6.7.3 持久化MPT树
6.7.4 MPT树应用
6.8 Bucket树
第7章共识算法
7.1 分布式系统模型
7.1.1 分布式系统中的网络模型
7.1.2 分布式系统中的故障模型
7.2 FLP和CAP定理
7.2.1 FLP定理
7.2.2 CAP定理
7.3 比特币共识
7.3.1 比特币清算
7.3.2 难度调整
7.3.3 出块时间调整
7.3.4 算法原理
7.3.5 压缩算法
7.3.6 难度计算
7.3.7 算力
7.3.8 铸币交易
7.3.9 算力单位
7.3.10 矿池收益
7.3.11 矿池
7.3.12 全网算力
7.3.13 区块确认
7.4 以太坊共识
7.4.1 Dagger
7.4.2 Hashimoto
7.4.3 Dagger-Hashimoto
7.4.4 Ethash
7.5 以太坊Ghost协议
7.6 公有链激励
7.6.1 公有链共识与激励相容
7.6.2 矿池利益分配
7.6.3 挖矿风险
7.7 联盟链共识
7.8 Raft算法
7.8.1 复制状态机
7.8.2 算法流程
7.8.3 领导者选举
7.8.4 选举流程
7.8.5 日志复制
7.8.6 领导者选举安全性
7.8.7 候选者和跟随者安全性
7.8.8 可用性
7.8.9 增删节点
7.8.10 配置变更流程
7.8.11 日志压缩
7.9 实用拜占庭容错算法
7.9.1 算法容错
7.9.2 算法流程
7.9.3 日志压缩
7.9.4 视图切换
7.9.5 主动恢复
7.9.6 增删节点
7.10 共识算法的新进展
第8章数字钱包
8.1 确定性钱包
8.2 分层确定性钱包设计
8.2.1 主密钥生成
8.2.2 HCKD函数
8.2.3 节点派生路径
8.3 助记词
8.3.1 助记词生成
8.3.2 恢复种子
8.4 硬件钱包
8.5 双离线支付
第9章预言机
9.1 预言机基本原理
9.2 预言机的起源与发展
9.2.1 可信预言机
9.2.2 奶酪模型
9.3 理想预言机
9.4 去中心化系统的弱点
9.5 去中心化预言机项目
9.5.1 ChainLink
9.5.2 Witnet
9.6 数据聚合方式
9.7 预言机面临的挑战
第10章区块链标准
10.1 比特币标准
10.1.1 BIP的需求
10.1.2 BIP的剖析
10.1.3 多种类型的BIP
10.2 以太坊标准
10.3 金融分布式账本技术安全规范
10.4 区块链服务网络
温馨提示:请使用泸西县图书馆的读者帐号和密码进行登录
作为程序员,我们大都有通过技术改变世界的梦想,而区块链正是这样的技术。目前,我们正处于区块链产业化的浪潮中,区块链必将成为产业互联网的基础设施之一,并起到连接不同组织、实体和数据流的作用。本书全面翔实地介绍了区块链中的各个组成技术,以庖丁解牛的方法剖析了区块链系统各个部分的技术实现,写作手法细腻,让读者在娓娓道来中感受区块链架构之美。
— 李力 腾讯云区块链总经理,腾讯云云服务器总经理
AI的普及让很多人觉得非常危险,因为AI可以轻易地做出美颜、换脸、换声等行为。而区块链则正好相反,区块链通过特殊的算法和博弈手段,让系统内的信息无法被扭曲,让系统内本不能完全互信的成员能够有一个互信和合作的可靠平台。所以,未来区块链会和AI一样大放异彩,革新人类社会的基础结构。当下,技术人员进入这个行业的较好办法就是系统学习区块链的基础知识。本书涵盖了区块链技术的方方面面,是入门的非常好的选择。
— 曹力 酷链科技CEO,暴走漫画前CTO,阿里前高级技术专家,《JavaScript高级程序设计》译者
本书作者通过实践总结,从架构层面出发,以工程视角检视了区块链技术的美妙之处,不仅有助于我们了解这项技术如何解决分布式系统中的重大难题,同时可以让区块链技术从业者学习融通,让这项技术成为数字世界价值传输的基础设施,本书值得阅读。
— 王晓亮 溪塔科技联合创始人兼CEO,清华大学硕士,中国区块链经济先行者,分布式数字身份产业联盟(DIDA)组建人之一
本书自下而上地介绍了区块链系统架构,是区块链底层技术领域比较难得的好书。对于区块链系统开发者来说,本书既可作为区块链系统的开发指引,又可作为日常开发过程中的有益参考。
— 响马 第三极区块链科技CEO,西祠胡同创始人,FIBJS开源项目发起人