本書全面介紹區(qū)塊鏈發(fā)展歷史及密碼學在區(qū)塊鏈中應用研究成果。全書共6章,第1章介紹密碼學與區(qū)塊鏈原理,第2章介紹區(qū)塊鏈技術架構與發(fā)展,第3章介紹哈希函數(shù)及其在區(qū)塊鏈中的應用,第4章數(shù)字簽名及其在區(qū)塊鏈中的應用,第5章介紹密碼協(xié)議及其在區(qū)塊鏈中的應用,第6章介紹區(qū)塊鏈中高級密碼學原語與協(xié)議。本書不僅包括密碼學的實用算法與協(xié)議,同時也覆蓋了適合區(qū)塊鏈應用的密碼學的最新研究成果,是首本關于區(qū)塊鏈中所采用密碼學方法與技術的系統(tǒng)性著作,力求使讀者通過本書的學習了解本領域最新的發(fā)展方向。
更多科學出版社服務,請掃碼獲取。
中國密碼學會安全協(xié)議專委會委員,中國密碼學會青年專委會副主任委員,計算機學會區(qū)塊鏈專委會常務委員
目錄
“密碼理論與技術叢書”序
前言
第1章 密碼學與區(qū)塊鏈概述 1
1.1 公鑰密碼學基本概念 1
1.1.1 公鑰密碼體制的工作原理 2
1.1.2 公鑰密碼體制存在的條件 4
1.1.3 公鑰密碼體制的計算復雜性假設 4
1.1.4 RSA假設 5
1.1.5 離散對數(shù)相關假設 6
1.1.6 公鑰密碼技術在區(qū)塊鏈中的應用 8
1.2 區(qū)塊鏈基本概念 8
1.2.1 分布式系統(tǒng) 8
1.2.2 拜占庭將軍問題 12
1.2.3 區(qū)塊鏈工作機制 13
1.2.4 區(qū)塊鏈技術特點 14
參考文獻 15
習題 17
第2章 區(qū)塊鏈技術原理 19
2.1 區(qū)塊鏈技術 19
2.1.1 區(qū)塊鏈的定義 19
2.1.2 區(qū)塊鏈參考架構 20
2.1.3 區(qū)塊鏈系統(tǒng)的分類 22
2.2 比特幣簡介 23
2.2.1 比特幣的創(chuàng)立 23
2.2.2 比特幣數(shù)據(jù)存儲層 24
2.2.3 比特幣網(wǎng)絡通信層 35
2.2.4 比特幣共識激勵層 42
2.2.5 比特幣交易執(zhí)行層 51
2.2.6 比特幣應用服務層 65
2.3 以太坊簡介 69
2.3.1 以太坊的創(chuàng)立 69
2.3.2 以太坊數(shù)據(jù)存儲層 70
2.3.3 以太坊網(wǎng)絡通信層 78
2.3.4 以太坊共識激勵層 83
2.3.5 以太坊交易執(zhí)行層 90
2.3.6 以太坊應用服務層 93
2.4 超級賬本簡介 95
2.4.1 超級賬本的創(chuàng)立 96
2.4.2 Fabric數(shù)據(jù)存儲層 97
2.4.3 Fabric網(wǎng)絡通信層 99
2.4.4 Fabric共識激勵層 100
2.4.5 Fabric交易執(zhí)行層 103
2.4.6 Fabric應用服務層 104
2.5 區(qū)塊鏈的發(fā)展與展望 105
參考文獻 106
習題 108
第3章 哈希函數(shù)及其在區(qū)塊鏈中的應用 109
3.1 哈希函數(shù)簡介 109
3.1.1 哈希函數(shù)的應用模式 110
3.1.2 哈希函數(shù)的安全性 110
3.2 哈希函數(shù)基本結構 112
3.2.1 迭代哈希函數(shù) 112
3.2.2 海綿結構 113
3.3 哈希函數(shù)的應用 113
3.3.1 哈希函數(shù)在密碼學中的常見應用 113
3.3.2 哈希函數(shù)在區(qū)塊鏈中的其他應用 115
3.4 區(qū)塊鏈中常用的哈希函數(shù) 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 零知識證明友好的哈希函數(shù) 143
3.5 Merkle樹 145
3.5.1 Merkle樹構造 145
3.5.2 Merkle樹在區(qū)塊鏈中的應用 146
3.6 Merkle Patricia樹 147
3.6.1 Trie樹和Patricia樹 148
3.6.2 Merkle Patricia樹 148
3.6.3 Merkle Patricia樹在區(qū)塊鏈中的應用 151
參考文獻 151
習題 154
第4章 數(shù)字簽名及其在區(qū)塊鏈中的應用 155
4.1 數(shù)字簽名基本概念 155
4.1.1 數(shù)字簽名的要求 155
4.1.2 數(shù)字簽名的組成 156
4.1.3 DSA數(shù)字簽名 156
4.2 區(qū)塊鏈中常用數(shù)字簽名 158
4.2.1 ECDSA數(shù)字簽名方案 159
4.2.2 Schnorr數(shù)字簽名方案 163
4.2.3 EdDSA數(shù)字簽名方案 166
4.2.4 我國商用數(shù)字簽名算法SM2 169
4.2.5 BLS數(shù)字簽名方案 172
4.2.6 CL數(shù)字簽名方案 174
4.3 多重簽名 177
4.3.1 多重Schnorr簽名算法 178
4.3.2 多重Schnorr簽名正確性分析 179
4.3.3 多重簽名在區(qū)塊鏈中的應用 180
4.4 聚合簽名 180
4.4.1 BLS聚合簽名 181
4.4.2 BLS聚合簽名正確性分析 182
4.4.3 聚合簽名在區(qū)塊鏈中的應用 182
4.5 門限簽名 183
4.5.1 BLS門限簽名 183
4.5.2 BLS門限簽名正確性分析 185
4.5.3 門限ECDSA簽名 186
4.5.4 門限簽名在區(qū)塊鏈中的應用 192
4.6 群簽名 193
4.6.1 BBS群簽名 193
4.6.2 BBS群簽名正確性分析 196
4.6.3 群簽名在區(qū)塊鏈中的應用 197
4.7 環(huán)簽名 197
4.7.1 LSAG簽名方案 198
4.7.2 LSAG簽名正確性分析 199
4.7.3 環(huán)簽名在區(qū)塊鏈中的應用 199
4.8 盲簽名 200
4.8.1 BLS盲簽名方案 201
4.8.2 BLS盲簽名正確性分析 202
4.8.3 盲簽名在區(qū)塊鏈中的應用 202
4.9 后量子簽名 203
參考文獻 205
習題 211
第5章 區(qū)塊鏈中的基本密碼協(xié)議 212
5.1 密鑰協(xié)商 212
5.1.1 中間人攻擊 213
5.1.2 認證密鑰協(xié)商 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 可驗證偽隨機函數(shù) 230
5.6 公平交換 232
5.7 零知識證明 237
5.7.1 Sigma協(xié)議 239
5.7.2 離散對數(shù)知識證明 239
5.7.3 離散對數(shù)相等性證明 240
5.7.4 Fiat-Shamir啟發(fā)式轉換 241
5.8 安全多方計算 241
5.8.1 安全多方計算模型 242
5.8.2 混淆電路 245
5.8.3 不經(jīng)意傳輸 250
5.8.4 同態(tài)加密 253
5.8.5 安全多方計算與區(qū)塊鏈 254
參考文獻 255
習題 266
第6章 區(qū)塊鏈中的高級密碼協(xié)議 267
6.1 可驗證延遲函數(shù) 267
6.1.1 可驗證延遲函數(shù)基本概念 267
6.1.2 陷門可驗證延遲函數(shù)構造 269
6.1.3 可驗證延遲函數(shù)在區(qū)塊鏈中的應用 271
6.2 Fabric MSP成員關系服務提供商機制 272
6.2.1 MSP基本概念 272
6.2.2 MSP結構 276
6.2.3 MSP證書簽發(fā)、驗證與撤銷 278
6.2.4 MSP在區(qū)塊鏈中的應用 279
6.3 Identity Mixer匿名認證體系 280
6.3.1 Identity Mixer基本概念 280
6.3.2 Identity Mixer協(xié)議 281
6.3.3 Identity Mixer在區(qū)塊鏈中的應用 284
6.4 環(huán)保密交易RingCT協(xié)議 284
6.4.1 環(huán)保密交易基本概念 284
6.4.2 環(huán)保密交易1.0版 285
6.4.3 環(huán)保密交易2.0版 288
6.4.4 環(huán)保密交易3.0版 293
6.4.5 環(huán)保密交易在區(qū)塊鏈中的應用 299
6.5 zk-SNARK協(xié)議 299
6.5.1 zk-SNARK基本概念 299
6.5.2 zk-SNARK通用構造 300
6.5.3 zk-SNARK實現(xiàn) 301
6.5.4 zk-SNARK在區(qū)塊鏈中的應用 305
6.6 Bulletproofs協(xié)議 305
6.6.1 Bulletproofs基本概念 306
6.6.2 Bulletproofs構造 306
6.6.3 Bulletproofs在區(qū)塊鏈中的應用 310
6.7 MimbleWimble協(xié)議 310
6.7.1 MimbleWimble基本概念 310
6.7.2 MimbleWimble構造 311
6.7.3 MimbleWimble在區(qū)塊鏈中的應用 315
6.8 時空證明 315
6.8.1 時空證明基本概念 315
6.8.2 時空證明構造 316
6.8.3 時空證明在中區(qū)塊鏈的應用 321
參考文獻 321
習題 326
附表 328
附表A 比特幣腳本操作碼 328
附表B 以太坊字節(jié)操作碼: 以太坊虛擬機字節(jié)碼和對應的gas開銷 332
索引 336
“密碼理論與技術叢書”已出版書目