本书内容包括6章. 第1章为密码学与区块链概述, 第2章为区块链技术原理, 第3章为哈希函数及其在区块链中的应用, 第4章为数字签名及其在区块链中的应用, 第5章为区块链中的基本密码协议, 第6章为区块链中的高级密码协议.
本书内容丰富, 语言精练, 概念清晰, 在区块链相关基础知识和技术阐述上, 力求深入浅出, 通俗易懂. 在区块链相关密码技术的讲解上, 力求展示区块链与密码技术的相互影响和相互促进.
样章试读
目录
- 目录
“密码理论与技术丛书”序
前言
第1章 密码学与区块链概述 1
1.1 公钥密码学基本概念 1
1.1.1 公钥密码体制的工作原理 2
1.1.2 公钥密码体制存在的条件 4
1.1.3 公钥密码体制的计算复杂性假设 4
1.1.4 RSA假设 5
1.1.5 离散对数相关假设 6
1.1.6 公钥密码技术在区块链中的应用 8
1.2 区块链基本概念 8
1.2.1 分布式系统 8
1.2.2 拜占庭将军问题 12
1.2.3 区块链工作机制 13
1.2.4 区块链技术特点 14
参考文献 15
习题 17
第2章 区块链技术原理 19
2.1 区块链技术 19
2.1.1 区块链的定义 19
2.1.2 区块链参考架构 20
2.1.3 区块链系统的分类 22
2.2 比特币简介 23
2.2.1 比特币的创立 23
2.2.2 比特币数据存储层 24
2.2.3 比特币网络通信层 35
2.2.4 比特币共识激励层 42
2.2.5 比特币交易执行层 51
2.2.6 比特币应用服务层 65
2.3 以太坊简介 69
2.3.1 以太坊的创立 69
2.3.2 以太坊数据存储层 70
2.3.3 以太坊网络通信层 78
2.3.4 以太坊共识激励层 83
2.3.5 以太坊交易执行层 90
2.3.6 以太坊应用服务层 93
2.4 超级账本简介 95
2.4.1 超级账本的创立 96
2.4.2 Fabric数据存储层 97
2.4.3 Fabric网络通信层 99
2.4.4 Fabric共识激励层 100
2.4.5 Fabric交易执行层 103
2.4.6 Fabric应用服务层 104
2.5 区块链的发展与展望 105
参考文献 106
习题 108
第3章 哈希函数及其在区块链中的应用 109
3.1 哈希函数简介 109
3.1.1 哈希函数的应用模式 110
3.1.2 哈希函数的安全性 110
3.2 哈希函数基本结构 112
3.2.1 迭代哈希函数 112
3.2.2 海绵结构 113
3.3 哈希函数的应用 113
3.3.1 哈希函数在密码学中的常见应用 113
3.3.2 哈希函数在区块链中的其他应用 115
3.4 区块链中常用的哈希函数 116
3.4.1 SHA2-256 (SHA2) 116
3.4.2 SM3 121
3.4.3 SHA3 (Keccak) 125
3.4.4 Scrypt 132
3.4.5 Ethash 136
3.4.6 Equihash 140
3.4.7 X11 142
3.4.8 零知识证明友好的哈希函数 143
3.5 Merkle树 145
3.5.1 Merkle树构造 145
3.5.2 Merkle树在区块链中的应用 146
3.6 Merkle Patricia树 147
3.6.1 Trie树和Patricia树 148
3.6.2 Merkle Patricia树 148
3.6.3 Merkle Patricia树在区块链中的应用 151
参考文献 151
习题 154
第4章 数字签名及其在区块链中的应用 155
4.1 数字签名基本概念 155
4.1.1 数字签名的要求 155
4.1.2 数字签名的组成 156
4.1.3 DSA数字签名 156
4.2 区块链中常用数字签名 158
4.2.1 ECDSA数字签名方案 159
4.2.2 Schnorr数字签名方案 163
4.2.3 EdDSA数字签名方案 166
4.2.4 我国商用数字签名算法SM2 169
4.2.5 BLS数字签名方案 172
4.2.6 CL数字签名方案 174
4.3 多重签名 177
4.3.1 多重Schnorr签名算法 178
4.3.2 多重Schnorr签名正确性分析 179
4.3.3 多重签名在区块链中的应用 180
4.4 聚合签名 180
4.4.1 BLS聚合签名 181
4.4.2 BLS聚合签名正确性分析 182
4.4.3 聚合签名在区块链中的应用 182
4.5 门限签名 183
4.5.1 BLS门限签名 183
4.5.2 BLS门限签名正确性分析 185
4.5.3 门限ECDSA签名 186
4.5.4 门限签名在区块链中的应用 192
4.6 群签名 193
4.6.1 BBS群签名 193
4.6.2 BBS群签名正确性分析 196
4.6.3 群签名在区块链中的应用 197
4.7 环签名 197
4.7.1 LSAG签名方案 198
4.7.2 LSAG签名正确性分析 199
4.7.3 环签名在区块链中的应用 199
4.8 盲签名 200
4.8.1 BLS盲签名方案 201
4.8.2 BLS盲签名正确性分析 202
4.8.3 盲签名在区块链中的应用 202
4.9 后量子签名 203
参考文献 205
习题 211
第5章 区块链中的基本密码协议 212
5.1 密钥协商 212
5.1.1 中间人攻击 213
5.1.2 认证密钥协商 214
5.1.3 门罗币隐藏地址 215
5.2 秘密承诺 217
5.2.1 哈希承诺 218
5.2.2 Pedersen承诺 218
5.2.3 多项式承诺 219
5.2.4 向量承诺 220
5.3 秘密分享 222
5.3.1 Shamir秘密分享 222
5.3.2 可验证秘密分享 223
5.3.3 公开验证秘密分享 224
5.3.4 先应式秘密分享 226
5.4 分布式密钥生成 228
5.5 可验证伪随机函数 230
5.6 公平交换 232
5.7 零知识证明 237
5.7.1 Sigma协议 239
5.7.2 离散对数知识证明 239
5.7.3 离散对数相等性证明 240
5.7.4 Fiat-Shamir启发式转换 241
5.8 安全多方计算 241
5.8.1 安全多方计算模型 242
5.8.2 混淆电路 245
5.8.3 不经意传输 250
5.8.4 同态加密 253
5.8.5 安全多方计算与区块链 254
参考文献 255
习题 266
第6章 区块链中的高级密码协议 267
6.1 可验证延迟函数 267
6.1.1 可验证延迟函数基本概念 267
6.1.2 陷门可验证延迟函数构造 269
6.1.3 可验证延迟函数在区块链中的应用 271
6.2 Fabric MSP成员关系服务提供商机制 272
6.2.1 MSP基本概念 272
6.2.2 MSP结构 276
6.2.3 MSP证书签发、验证与撤销 278
6.2.4 MSP在区块链中的应用 279
6.3 Identity Mixer匿名认证体系 280
6.3.1 Identity Mixer基本概念 280
6.3.2 Identity Mixer协议 281
6.3.3 Identity Mixer在区块链中的应用 284
6.4 环保密交易RingCT协议 284
6.4.1 环保密交易基本概念 284
6.4.2 环保密交易1.0版 285
6.4.3 环保密交易2.0版 288
6.4.4 环保密交易3.0版 293
6.4.5 环保密交易在区块链中的应用 299
6.5 zk-SNARK协议 299
6.5.1 zk-SNARK基本概念 299
6.5.2 zk-SNARK通用构造 300
6.5.3 zk-SNARK实现 301
6.5.4 zk-SNARK在区块链中的应用 305
6.6 Bulletproofs协议 305
6.6.1 Bulletproofs基本概念 306
6.6.2 Bulletproofs构造 306
6.6.3 Bulletproofs在区块链中的应用 310
6.7 MimbleWimble协议 310
6.7.1 MimbleWimble基本概念 310
6.7.2 MimbleWimble构造 311
6.7.3 MimbleWimble在区块链中的应用 315
6.8 时空证明 315
6.8.1 时空证明基本概念 315
6.8.2 时空证明构造 316
6.8.3 时空证明在中区块链的应用 321
参考文献 321
习题 326
附表 328
附表A 比特币脚本操作码 328
附表B 以太坊字节操作码: 以太坊虚拟机字节码和对应的gas开销 332
索引 336
“密码理论与技术丛书”已出版书目