区块链架构之美——从比特币、以太坊、超级账本看区块链架构设计
  • 推荐0
  • 收藏0
  • 浏览218

区块链架构之美——从比特币、以太坊、超级账本看区块链架构设计

何昊 (作者) 

  • 丛  书:高效实战精品
  • 书  号:978-7-121-41265-3
  • 出版日期:2021-06-17
  • 页  数:336
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:董英
纸质版 ¥89.00
本书由浅入深地介绍了比特币、以太坊和超级账本三个区块链平台的设计精华。除第0 章引言外,全书还包含10 章,按照区块链架构体系自底而上进行介绍。第1 章介绍了区块链各模块所需要用到的密码学知识。第2 章介绍了区块链中的P2P 模块,揭示了区块链的网络结构。第3 章介绍了区块链中的两种交易模型。第4 章展示了如何使用Solidity 编写智能合约。第5 章从EVM 的角度关注了智能合约的编译和执行。第6 章讨论了区块链中的核心数据结构。第7 章分别从公有链和联盟链两个方向介绍了二者所采用的共识算法和解决的问题。第8 章围绕数字钱包技术介绍了如何生成私钥、存储私钥和保护私钥。第9 章介绍了打通链上数据和链外数据的关键技术预言机。第10 章从社区的角度介绍了公有链项目的标准制定流程和一些区块链标准。本书涵盖了区块链主流平台的新技术,可以帮助读者深入理解区块链的核心原理和设计思想,使读者不局限于某一平台,灵活运用区块链系统的设计思想。
一本书学透区块链
本书无

目录

第0 章 导言 ................................................................................................................................ 1
0.1 区块链技术体系分类........................................................................................................... 2
0.2 网络层 ............................................................................................................................... 3
0.3 共识层 ............................................................................................................................... 4
0.4 数据层 ............................................................................................................................... 4
0.5 智能合约层 ........................................................................................................................ 5
0.6 应用层 ............................................................................................................................... 6
0.7 本书目的 ............................................................................................................................ 6
0.8 阅读建议 ............................................................................................................................ 7
0.9 勘误和支持 ........................................................................................................................ 7
0.10 致谢 ................................................................................................................................ 8
第1 章 密码学基础 ..................................................................................................................... 9
1.1 基本元素 .......................................................................................................................... 11
1.2 对称加密 .......................................................................................................................... 12
1.3 非对称加密 ...................................................................................................................... 13
1.4 混合加密 .......................................................................................................................... 14
1.5 哈希算法 .......................................................................................................................... 14
1.6 数字签名 .......................................................................................................................... 16
1.7 可信通信 .......................................................................................................................... 20
1.7.1 TLS 协议 ............................................................................................................... 20
1.7.2 双向认证 ............................................................................................................... 22
1.8 ECDH 密钥协商 ............................................................................................................... 23
1.9 身份验证 .......................................................................................................................... 25
1.10 数字证书 ........................................................................................................................ 26
1.10.1 数字证书结构....................................................................................................... 27
1.10.2 数字证书类型....................................................................................................... 29
区块链架构之美——从比特币、以太坊、超级账本看区块链架构设计
? IV ?
1.10.3 数字证书编码....................................................................................................... 30
1.10.4 简单应用 ............................................................................................................. 31
1.11 PKI 体系 ........................................................................................................................ 32
1.12 证书链 ........................................................................................................................... 34
1.13 可信执行环境 ................................................................................................................. 36
第2 章 网络层 ........................................................................................................................... 38
2.1 集中式网络 ...................................................................................................................... 39
2.2 纯分布式网络 ................................................................................................................... 40
2.2.1 Gossip 协议 ............................................................................................................ 41
2.2.2 Gossip 协议流程 ..................................................................................................... 42
2.3 混合式网络 ...................................................................................................................... 44
2.4 结构化网络 ...................................................................................................................... 45
2.4.1 Kademlia 算法原理 ................................................................................................. 46
2.4.2 K 桶 ...................................................................................................................... 49
2.4.3 K 桶的更新机制 ..................................................................................................... 50
2.4.4 加入Kad 网络 ........................................................................................................ 51
2.4.5 定位节点 ............................................................................................................... 51
2.4.6 以太坊中的Kad 网络 ............................................................................................. 52
2.5 RLP 编码 ......................................................................................................................... 54
2.5.1 RLP 编码定义 ........................................................................................................ 55
2.5.2 RLP 编码规则 ........................................................................................................ 55
2.6 RLPx 子协议 .................................................................................................................... 57
2.7 Whisper 协议 .................................................................................................................... 60
2.7.1 消息广播 ............................................................................................................... 61
2.7.2 协议流程 ............................................................................................................... 64
第3 章 交易模型 ....................................................................................................................... 66
3.1 UTXO 模型介绍 ............................................................................................................... 67
3.1.1 输入 ...................................................................................................................... 69
3.1.2 输出 ...................................................................................................................... 70
3.1.3 比特币脚本 ............................................................................................................ 71
3.2 账户模型 .......................................................................................................................... 78
3.2.1 外部账户 ............................................................................................................... 78
3.2.2 合约账户 ............................................................................................................... 79
3.2.3 世界状态 ............................................................................................................... 81
目录
? V ?
第4 章 智能合约 ....................................................................................................................... 83
4.1 Gas ................................................................................................................................. 85
4.1.1 Gas 支付 ................................................................................................................ 86
4.1.2 Gas 成本与Gas 价格 .............................................................................................. 86
4.1.3 Gas 成本限制和Gas 耗尽 ........................................................................................ 86
4.1.4 Gas 价格和交易优先顺序 ........................................................................................ 87
4.1.5 区块Gas 限制 ........................................................................................................ 87
4.1.6 Gas 限制 ................................................................................................................ 88
4.1.7 Gas 退款 ................................................................................................................ 88
4.1.8 GasToken ............................................................................................................... 88
4.2 智能合约生命周期 ............................................................................................................ 88
4.3 以太坊高级语言简介......................................................................................................... 89
4.4 Remix 开发环境 ................................................................................................................ 90
4.5 Solidity 文件结构 .............................................................................................................. 94
4.5.1 版本标识 ............................................................................................................... 94
4.5.2 源文件导入 ............................................................................................................ 94
4.5.3 路径 ...................................................................................................................... 95
4.5.4 注释 ...................................................................................................................... 95
4.6 数据类型 .......................................................................................................................... 96
4.6.1 变量 ...................................................................................................................... 96
4.6.2 值类型 .................................................................................................................. 96
4.6.3 引用类型 ............................................................................................................... 99
4.6.4 数据位置 ............................................................................................................. 100
4.6.5 动态数组 ............................................................................................................. 102
4.6.6 映射 .................................................................................................................... 103
4.6.7 枚举 .................................................................................................................... 104
4.6.8 结构体 ................................................................................................................ 104
4.7 控制结构与表达式 .......................................................................................................... 105
4.7.1 构造函数与析构函数 ............................................................................................ 106
4.7.2 函数参数 ............................................................................................................. 107
4.7.3 函数返回变量 ...................................................................................................... 107
4.7.4 作用域 ................................................................................................................ 108
4.7.5 函数调用 ............................................................................................................. 109
4.7.6 函数可见性 .......................................................................................................... 111
区块链架构之美——从比特币、以太坊、超级账本看区块链架构设计
? VI ?
4.7.7 函数装饰器 .......................................................................................................... 113
4.7.8 回退函数 ............................................................................................................. 114
4.7.9 错误处理及异常 ................................................................................................... 115
4.8 事件 .............................................................................................................................. 117
4.8.1 监听事件 ............................................................................................................. 117
4.8.2 检索日志 ............................................................................................................. 118
4.9 合约继承 ........................................................................................................................ 119
4.9.1 继承支持传递参数 ............................................................................................... 120
4.9.2 继承中的重名 ...................................................................................................... 121
4.9.3 重写函数 ............................................................................................................. 123
4.9.4 继承父类合约方法 ............................................................................................... 125
4.9.5 多继承与线性化 ................................................................................................... 126
第5 章 深入EVM ................................................................................................................... 128
5.1 存储 .............................................................................................................................. 132
5.1.1 存储分类 ............................................................................................................. 132
5.1.2 Hex 编码 ............................................................................................................. 135
5.2 智能合约的ABI ............................................................................................................. 135
5.3 编译Solidity ................................................................................................................... 136
5.4 ABI 编码 ........................................................................................................................ 140
5.4.1 状态变量 ............................................................................................................. 140
5.4.2 结构体 ................................................................................................................ 141
5.4.3 布尔类型 ............................................................................................................. 142
5.4.4 定长数组 ............................................................................................................. 144
5.4.5 映射 .................................................................................................................... 144
5.4.6 动态数组 ............................................................................................................. 147
5.4.7 动态数组打包 ...................................................................................................... 149
5.4.8 字节数组和字符串 ............................................................................................... 150
5.4.9 函数选择器和参数编码 ......................................................................................... 151
5.5 Solidity 汇编 ................................................................................................................... 152
5.5.1 内联汇编 ............................................................................................................. 152
5.5.2 基本语法 ............................................................................................................. 153
5.5.3 操作码 ................................................................................................................ 153
5.5.4 函数风格 ............................................................................................................. 156
5.5.5 访问外部变量和函数 ............................................................................................ 156
目录
? VII ?
5.5.6 汇编局部变量声明 ............................................................................................... 157
5.5.7 赋值 .................................................................................................................... 157
5.5.8 条件判断与循环语句 ............................................................................................ 158
5.5.9 函数 .................................................................................................................... 160
5.5.10 注意事项 ........................................................................................................... 161
5.5.11 Solidity 惯例....................................................................................................... 161
5.5.12 独立汇编 ........................................................................................................... 162
5.5.13 EVM 中的事件与日志 ......................................................................................... 162
5.6 跨合约调用 .................................................................................................................... 164
5.6.1 call 和callcode 异同 .............................................................................................. 165
5.6.2 callcode 和delegatecall 异同 .................................................................................. 166
5.7 智能合约安全 ................................................................................................................. 167
5.7.1 合约审计 ............................................................................................................. 168
5.7.2 未来研究方向与改进思路 ..................................................................................... 169
5.7.3 漏洞分析 ............................................................................................................. 170
第6 章 区块链核心数据结构 ................................................................................................. 176
6.1 交易结构 ........................................................................................................................ 177
6.1.1 AccountNonce ...................................................................................................... 178
6.1.2 Price .................................................................................................................... 179
6.1.3 Recipient .............................................................................................................. 179
6.1.4 Amount ............................................................................................................... 180
6.1.5 Payload ................................................................................................................ 180
6.1.6 V. R. S ................................................................................................................. 180
6.2 交易池 ........................................................................................................................... 181
6.3 交易回执 ........................................................................................................................ 183
6.4 区块 .............................................................................................................................. 187
6.4.1 区块结构 ............................................................................................................. 188
6.4.2 区块存储 ............................................................................................................. 192
6.4.3 创世区块 ............................................................................................................. 192
6.4.4 区块广播 ............................................................................................................. 193
6.4.5 区块扩容 ............................................................................................................. 194
6.5 默克尔树与轻节点 .......................................................................................................... 196
6.5.1 默克尔树 ............................................................................................................. 196
6.5.2 轻节点 ................................................................................................................ 197
区块链架构之美——从比特币、以太坊、超级账本看区块链架构设计
? VIII ?
6.5.3 布隆过滤器 .......................................................................................................... 199
6.6 字典树 ........................................................................................................................... 201
6.7 MPT 树 .......................................................................................................................... 204
6.7.1 MPT 树持久化 ..................................................................................................... 206
6.7.2 安全的MPT 树 .................................................................................................... 209
6.7.3 持久化MPT 树 .................................................................................................... 209
6.7.4 MPT 树应用 ......................................................................................................... 209
6.8 Bucket 树 ....................................................................................................................... 211
第7 章 共识算法 ..................................................................................................................... 216
7.1 分布式系统模型 ............................................................................................................. 217
7.1.1 分布式系统中的网络模型 ..................................................................................... 217
7.1.2 分布式系统中的故障模型 ..................................................................................... 218
7.2 FLP 和CAP 定理 ............................................................................................................ 219
7.2.1 FLP 定理 ............................................................................................................. 219
7.2.2 CAP 定理 ............................................................................................................ 219
7.3 比特币共识 .................................................................................................................... 222
7.3.1 比特币清算 .......................................................................................................... 223
7.3.2 难度调整 ............................................................................................................. 224
7.3.3 出块时间调整 ...................................................................................................... 225
7.3.4 算法原理 ............................................................................................................. 225
7.3.5 压缩算法 ............................................................................................................. 225
7.3.6 难度计算 ............................................................................................................. 226
7.3.7 算力 .................................................................................................................... 227
7.3.8 铸币交易 ............................................................................................................. 227
7.3.9 算力单位 ............................................................................................................. 228
7.3.10 矿池收益 ........................................................................................................... 228
7.3.11 矿池 .................................................................................................................. 228
7.3.12 全网算力 ........................................................................................................... 229
7.3.13 区块确认 ........................................................................................................... 229
7.4 以太坊共识 .................................................................................................................... 230
7.4.1 Dagger ................................................................................................................. 230
7.4.2 Hashimoto ............................................................................................................ 231
7.4.3 Dagger-Hashimoto ................................................................................................. 232
7.4.4 Ethash ................................................................................................................. 232
目录
? IX ?
7.5 以太坊Ghost 协议 .......................................................................................................... 243
7.6 公有链激励 .................................................................................................................... 248
7.6.1 公有链共识与激励相容 ......................................................................................... 248
7.6.2 矿池利益分配 ...................................................................................................... 248
7.6.3 挖矿风险 ............................................................................................................. 251
7.7 联盟链共识 .................................................................................................................... 253
7.8 Raft 算法 ........................................................................................................................ 254
7.8.1 复制状态机 .......................................................................................................... 254
7.8.2 算法流程 ............................................................................................................. 255
7.8.3 领导者选举 .......................................................................................................... 256
7.8.4 选举流程 ............................................................................................................. 257
7.8.5 日志复制 ............................................................................................................. 258
7.8.6 领导者选举安全性 ............................................................................................... 258
7.8.7 候选者和跟随者安全性 ......................................................................................... 260
7.8.8 可用性 ................................................................................................................ 260
7.8.9 增删节点 ............................................................................................................. 261
7.8.10 配置变更流程..................................................................................................... 262
7.8.11 日志压缩 ........................................................................................................... 263
7.9 实用拜占庭容错算法....................................................................................................... 264
7.9.1 算法容错 ............................................................................................................. 265
7.9.2 算法流程 ............................................................................................................. 266
7.9.3 日志压缩 ............................................................................................................. 267
7.9.4 视图切换 ............................................................................................................. 268
7.9.5 主动恢复 ............................................................................................................. 269
7.9.6 增删节点 ............................................................................................................. 271
7.10 共识算法的新进展 ........................................................................................................ 272
第8 章 数字钱包 ..................................................................................................................... 275
8.1 确定性钱包 .................................................................................................................... 276
8.2 分层确定性钱包设计....................................................................................................... 278
8.2.1 主密钥生成 .......................................................................................................... 280
8.2.2 HCKD 函数 ......................................................................................................... 281
8.2.3 节点派生路径 ...................................................................................................... 283
8.3 助记词 ........................................................................................................................... 285
8.3.1 助记词生成 .......................................................................................................... 285
区块链架构之美——从比特币、以太坊、超级账本看区块链架构设计
? X ?
8.3.2 恢复种子 ............................................................................................................. 287
8.4 硬件钱包 ........................................................................................................................ 288
8.5 双离线支付 .................................................................................................................... 289
第9 章 预言机 ......................................................................................................................... 292
9.1 预言机基本原理 ............................................................................................................. 293
9.2 预言机的起源与发展....................................................................................................... 295
9.2.1 可信预言机 .......................................................................................................... 296
9.2.2 奶酪模型 ............................................................................................................. 296
9.3 理想预言机 .................................................................................................................... 298
9.4 去中心化系统的弱点....................................................................................................... 299
9.5 去中心化预言机项目....................................................................................................... 301
9.5.1 ChainLink ............................................................................................................ 301
9.5.2 Witnet ................................................................................................................. 307
9.6 数据聚合方式 ................................................................................................................. 309
9.7 预言机面临的挑战 .......................................................................................................... 311
第10 章 区块链标准 ............................................................................................................... 315
10.1 比特币标准 .................................................................................................................. 316
10.1.1 BIP 的需求 ......................................................................................................... 316
10.1.2 BIP 的剖析 ......................................................................................................... 317
10.1.3 多种类型的BIP .................................................................................................. 318
10.2 以太坊标准 .................................................................................................................. 321
10.3 金融分布式账本技术安全规范 ....................................................................................... 324
10.4 区块链服务网络 ............................................................................................................ 325

读者评论

  • 感觉不如清华出版社的微信—书圈—方便

    shixiangb发表于 2021/10/28 16:52:11
  • 作者的GitHub能否透露?

    还有随书资料从哪儿下载,谢谢

    shixiangb发表于 2021/10/28 8:05:14

相关博文

  • 口碑之作:“多快好省”地搭建区块链知识体系

    口碑之作:“多快好省”地搭建区块链知识体系

    博文小编 2021-07-14

    区块链的技术创新,并不是单点突破,而是体现在对现有技术天才般的组合。 01 以我们耳熟能详的区块链平台以太坊为例。 从底而上会涉及很多技术,比如密码学,P2P网络,智能合约,共识算法等。除此之外还有博弈论的知识,如何激励大家共同...

    博文小编 2021-07-14
    210 1 0 0

同系列书