目录
第一部分区块链基础知识
第1 章区块链技术简介...................................................................... 3
1.1 什么是区块链技术................................................................. 3
1.1.1 区块链技术诞生与发展概况......................................... 4
1.1.2 区块链的数据结构....................................................... 5
1.1.3 区块链架构................................................................. 8
1.1.4 区块链技术的独特优势................................................ 9
1.1.5 区块链的分类........................................................... 10
1.2 区块链技术的主要发展阶段.................................................. 12
1.2.1 区块链发展历史:1.0 与2.0 阶段................................. 12
1.2.2 区块链优化技术:Layer-1 和Layer-2 .......................... 15
1.3 重新认识区块链系统架构..................................................... 19
1.3.1 模块化视角看待区块链系统....................................... 19
1.3.2 区块链网络............................................................... 20
1.3.3 区块链共识机制........................................................ 22
1.3.4 区块链账本结构........................................................ 25
1.4 总结................................................................................... 27
1.5 课后习题............................................................................. 28
参考文献.................................................................................... 28
第2 章常用密码学技术.................................................................... 30
2.1 有限域及其他常用代数结构.................................................. 30
2.2 保密性:加密...................................................................... 33
2.2.1 定义及安全属性........................................................ 33
2.2.2 对称加密与非对称加密.............................................. 35
2.2.3 离散对数假设与Diffie-Hellman 密钥交换..................... 36
2.2.4 同态加密.................................................................. 37
2.3 完整性:哈希............................................................................ 37
2.3.1 UNIX 系统的密码认证................................................................... 38
2.3.2 定义及安全属性................................................................... 38
2.3.3 随机预言机模型.................................................................... 40
2.3.4 基于哈希的伪随机数生成器........................................................... 40
2.3.5 默克尔树.............................................................................. 41
2.4 身份认证:消息认证码、数字签名、公钥基础设施..................................... 43
2.4.1 消息认证码.......................................................................... 44
2.4.2 数字签名............................................................................ 45
2.4.3 公钥基础设施................................................................... 47
2.5 零知识证明............................................................................ 48
2.5.1 算术电路.................................................................................. 49
2.5.2 R1CS .................................................................................... 50
2.5.3 从验证到计算............................................................................... 51
2.6 安全多方计算........................................................................... 52
2.6.1 安全属性...................................................................................... 52
2.6.2 Shamir 秘密共享........................................................................... 53
2.6.3 可验证秘密共享............................................................................ 53
2.6.4 基于秘密共享和算术电路的安全多方计算方案................................. 54
2.6.5 基于安全多方计算的门限签名........................................................ 55
2.7 总结.................................................................................... 57
2.8 课后习题............................................................................ 57
参考文献.................................................................................... 59
第3 章区块链共识算法..................................................................... 60
3.1 无许可区块链中的共识算法......................................................... 61
3.1.1 传统分布式共识在无许可区块链中遇到困境.................................... 61
3.1.2 物理资源证明................................................................. 63
3.1.3 虚拟资源证明.................................................................. 68
3.2 拜占庭容错共识算法.............................................................. 72
3.2.1 拜占庭容错共识如何才能应用于区块链........................................... 72
3.2.2 拜占庭容错共识的起源:拜占庭将军问题....................................... 73
3.2.3 拜占庭容错共识经典实例:实用拜占庭容错共识............................. 75
3.3 几个不可能性原理................................................................ 80
3.3.1 所有的场景都能运行区块链吗?...................................................... 80
3.3.2 共识问题中的不可能性.................................................................. 80
3.3.3 领导者选举中的不可能性............................................................... 84
3.3.4 无线网络共识中的不可能性........................................................... 87
3.3.5 区块链的“不可能三角”................................................................ 89
3.4 总结................................................................................. 89
3.5 课后习题.............................................................................. 90
参考文献.......................................................................................... 91
第4 章区块链典例剖析...................................................................... 92
4.1 比特币................................................................................ 92
4.1.1 比特币的诞生................................................................ 93
4.1.2 点对点网络................................................................................... 94
4.1.3 未花费交易输出模型..................................................................... 94
4.1.4 工作量证明机制............................................................................ 97
4.2 以太坊............................................................................... 99
4.2.1 区块链与智能合约:超越“账本”的想象...................................... 100
4.2.2 以太坊虚拟机:驱动“全球计算机”的引擎................................... 101
4.2.3 以太坊共识机制:从PoW 到PoS .................................................. 106
4.3 Hyperledger Fabric ............................................................ 110
4.3.1 引言:为什么需要联盟链.............................................................. 110
4.3.2 Hyperledger Fabric 准入机制........................................................ 110
4.3.3 Gossip 协议................................................................................. 111
4.3.4 共识机制..................................................................................... 113
4.4 总结.................................................................................. 114
4.5 课后习题.............................................................................. 114
参考文献...................................................................................... 115
第二部分区块链扩容技术
第5 章区块链分片........................................................................ 119
5.1 区块链与传统数据库:异同与借鉴........................................................... 120
5.1.1 数据库分区的基本原理................................................................. 120
5.1.2 为什么数据库分区不能直接用于区块链?....................................... 123
5.2 区块链分片:解决扩展性困境.................................................................. 124
5.2.1 区块链扩展性问题的表现.............................................................. 124
5.2.2 区块链分片技术的简介................................................................. 125
5.3 区块链分片的核心机制............................................................................ 127
5.3.1 主流的分片配置方案.................................................................... 127
5.3.2 分片配置的核心:随机数生成方法................................................ 129
5.4 跨片交易:分片世界的协同难题.............................................................. 131
5.4.1 ACID 特性:跨片交易的保障........................................................ 132
5.4.2 协调一致的“锁定—提交”方案.................................................... 132
5.4.3 另辟蹊径——跳出“原子提交”的思维定式................................... 134
5.5 分片重置:应对节点变化与安全威胁........................................................ 135
5.5.1 分片重置初步尝试........................................................................ 135
5.5.2 更高效的分片重置........................................................................ 136
5.5.3 更安全的分片重置........................................................................ 137
5.6 总结.............................................................................. 138
5.7 课后习题........................................................................... 138
参考文献.............................................................................. 139
第6 章区块链账本结构............................................................................ 141
6.1 链式区块链账本...................................................................................... 141
6.1.1 为什么要用哈希链?..................................................................... 141
6.1.2 最长链原则.................................................................................. 143
6.1.3 贪心最重子树原则........................................................................ 146
6.2 图式区块链账本...................................................................................... 148
6.2.1 从链式区块链到图式区块链.......................................................... 149
6.2.2 IOTA Tangle ............................................................................... 150
6.2.3 DAG-Rider .................................................................................. 152
6.3 区块链账本存储优化............................................................................... 156
6.3.1 数据裁剪..................................................................................... 157
6.3.2 数据压缩..................................................................................... 158
6.3.3 分级存储..................................................................................... 158
6.3.4 纠删码存储.................................................................................. 159
6.4 总结................................................................................. 160
6.5 课后习题.............................................................................. 160
参考文献........................................................................................ 161
第7 章跨链互操作............................................................................ 162
7.1 跨链技术简介........................................................................... 163
7.1.1 信息孤岛问题与跨链技术.............................................................. 163
7.1.2 跨链行为与分类........................................................................... 164
7.1.3 跨链模型与特性........................................................................... 166
7.2 跨链机制............................................................................... 168
7.2.1 基于公证人的跨链机制................................................................. 169
7.2.2 基于分布式私钥控制的跨链机制.................................................... 170
7.2.3 基于中继链的跨链机制................................................................. 173
7.2.4 哈希时间锁合约........................................................................... 177
7.3 总结.................................................................................. 181
7.4 课后习题............................................................................ 182
参考文献................................................................................... 183
第8 章链下扩容................................................................................. 184
8.1 链下通道............................................................................... 184
8.1.1 支付通道..................................................................................... 185
8.1.2 状态通道..................................................................................... 189
8.1.3 链下支付通道网络........................................................................ 191
8.2 链下计算.............................................................................. 197
8.2.1 基于零知识证明的链下计算.......................................................... 197
8.2.2 基于可信硬件的链下计算.............................................................. 200
8.2.3 基于安全多方计算的链下计算....................................................... 201
8.3 总结................................................................................. 202
8.4 课后习题............................................................................... 203
参考文献..................................................................................... 204
第三部分区块链安全与隐私
第9 章区块链中的激励机制.............................................................. 207
9.1 博弈论与激励机制.................................................................................. 208
9.1.1 博弈论概述.................................................................................. 208
9.1.2 经典博弈论模型........................................................................... 209
9.1.3 激励机制设计.............................................................................. 213
9.2 为什么区块链需要激励机制..................................................................... 214
9.3 主流区块链系统中的激励机制.................................................................. 216
9.3.1 比特币中的激励机制.................................................................... 216
9.3.2 以太坊中的激励机制.................................................................... 220
9.3.3 复杂激励机制设计........................................................................ 223
9.4 总结.................................................................................... 225
9.5 课后习题............................................................................. 225
参考文献.................................................................................... 227
第10 章区块链主要安全威胁与对策.................................................................... 228
10.1 区块链中常见的攻击及其对策................................................................ 229
10.1.1 网络层...................................................................................... 229
10.1.2 共识层...................................................................................... 232
10.1.3 合约层...................................................................................... 235
10.1.4 量子优越性............................................................................... 239
10.2 区块链安全性证明方法.......................................................................... 240
10.2.1 区块链的安全属性..................................................................... 240
10.2.2 通用可组合安全证明.................................................................. 242
10.3 总结................................................................................... 245
10.4 课后习题............................................................................... 246
参考文献...................................................................................... 246
第11 章区块链隐私保护与监管技术.................................................................... 248
11.1 隐私保护技术:匿名支付与隐私计算...................................................... 248
11.1.1 Zerocash:支持匿名支付的区块链.............................................. 249
11.1.2 基于零知识证明的智能合约隐私计算.......................................... 251
11.1.3 基于可信执行环境的智能合约隐私计算....................................... 252
11.2 区块链监管技术:可修改区块链............................................................. 252
11.2.1 基于变色龙哈希的可修改区块链................................................. 253
11.2.2 基于共识的可修改区块链........................................................... 258
11.3 总结.................................................................................... 261
11.4 课后习题.............................................................................. 261
参考文献...................................................................................... 262
