推薦序
前 言
第1章 區(qū)塊鏈基礎 1
1.1 區(qū)塊鏈常用名詞解釋 2
1.2 區(qū)塊鏈的發(fā)展歷程 4
1.3 區(qū)塊鏈概念 7
1.3.1 區(qū)塊鏈是什么 7
1.3.2 區(qū)塊鏈的特性 7
1.3.3 區(qū)塊鏈分類 8
1.3.4 區(qū)塊鏈構建信任 9
1.3.5 區(qū)塊鏈的社會價值 10
1.4 區(qū)塊鏈核心技術 10
1.4.1 綜述 10
1.4.2 區(qū)塊鏈結構 15
1.4.3 智能合約 17
1.4.4 跨鏈技術 20
1.4.5 ILP詳解及應用 26
1.5 熱門區(qū)塊鏈平臺對比分析 31
1.5.1 分析背景 31
1.5.2 平臺簡介 31
1.5.3 類別對比 33
1.5.4 共識機制對比 34
1.5.5 性能對比 35
1.5.6 隱私保護對比 36
1.5.7 智能合約對比 37
1.5.8 技術路線對比 37
1.5.9 經濟模型對比 38
第2章 分布式系統(tǒng)技術 41
2.1 一致性問題 41
2.1.1 問題挑戰(zhàn) 42
2.1.2 一致性的要求 42
2.1.3 一致性模型 43
2.2 一致性的共識算法 45
2.2.1 問題挑戰(zhàn) 45
2.2.2 常見算法 45
2.2.3 理論界限 48
2.3 F?lP不可能原理 49
2.4 CAP原理 49
2.4.1 CAP原理定義 49
2.4.2 應用場景 50
2.5 ACID原則 51
2.6 可靠性指標 52
2.7 小結 53
第3章 密碼學安全技術 54
3.1 Hash算法與數字摘要 54
3.1.1 Hash定義 55
3.1.2 常見算法 55
3.1.3 性能 56
3.1.4 數字摘要 56
3.1.5 Hash攻擊與防護 56
3.1.6 區(qū)塊鏈中的Hash應用 57
3.2 加密算法 57
3.2.1 加解密系統(tǒng)基本組成 57
3.2.2 對稱加密算法 58
3.2.3 非對稱加密算法 59
3.2.4 選擇明文攻擊 60
3.2.5 混合加密機制 60
3.2.6 離散對數與DH密鑰交換協(xié)議 61
3.2.7 區(qū)塊鏈加密技術 62
3.3 消息認證碼與數字簽名 64
3.3.1 消息認證碼 64
3.3.2 數字簽名 64
3.3.3 安全性 65
3.3.4 區(qū)塊鏈數字簽名 65
3.4 數字證書 66
3.4.1 X.509證書規(guī)范 66
3.4.2 證書格式 67
3.4.3 證書信任鏈 68
3.5 PKI體系 69
3.5.1 PKI基本組件 69
3.5.2 證書的簽發(fā) 69
3.5.3 證書的撤銷 71
3.6 Merkle樹結構 71
3.6.1 快速對比大量數據 72
3.6.2 快速定位修改 72
3.6.3 零知識證明 72
3.7 布隆過濾器 72
3.7.1 基于Hash值的快速查找 73
3.7.2 更高效的布隆過濾器 73
3.8 同態(tài)加密 73
3.8.1 定義 73
3.8.2 問題與挑戰(zhàn) 74
3.8.3 函數加密 75
3.9 其他問題 75
3.9.1 零知識證明概述 75
3.9.2 量子密碼學 75
3.9.3 社交工程學 76
3.9.4 安全多方計算 76
3.10 小結 76
第4章 構建Fabric區(qū)塊鏈網絡 78
4.1 超級賬本Fabric簡介 78
4.2 Fabric特性和架構設計 80
4.2.1 Fabric特性 80
4.2.2 Fabric系統(tǒng)架構 82
4.3 Fabric部署 85
4.3.1 單節(jié)點部署 85
4.3.2 多節(jié)點區(qū)塊鏈網絡部署 90
4.4 Fabric開發(fā) 97
4.4.1 ChainCode開發(fā) 97
4.4.2 應用開發(fā)示例 117
4.5 Fabric方案設計 125
4.5.1 數據庫選用方案 125
4.5.2 私鑰證書管理方案 127
4.5.3 數據上鏈方案 132
4.5.4 背書驗證方案 133
第5章 Fabric源代碼解析 135
5.1 概述 135
5.1.1 源碼中的簡拼 136
5.1.2 源碼中的慣例 137
5.1.3 源碼目錄的基本結構 138
5.2 peer命令結構 138
5.2.1 peer目錄結構 138
5.2.2 第三方包 139
5.2.3 peer命令結構解析 140
5.2.4 子命令結構解析 140
5.3 日志系統(tǒng) 142
5.3.1 go-logging簡介 142
5.3.2 f?logging 142
5.4 配置系統(tǒng) 143
5.4.1 viper簡介 143
5.4.2 viper搜索路徑和文件 144
5.4.3 InitViper 144
5.4.4 安全文件配置 145
5.4.5 命令選項配置 145
5.4.6 環(huán)境變量配置 146
5.5 賬本 146
5.5.1 賬本簡介 146
5.5.2 數據存儲服務對象 149
5.5.3 四類賬本 151
5.6 加密服務 171
5.6.1 BCCSP的接口和選項 172
5.6.2 SW實現方式 174
5.6.3 PKCS11實現方式 177
5.6.4 BCCSP工廠 179
5.7 chaincode 180
5.7.1 chaincode元數據 180
5.7.2 chaincode元工具 184
5.7.3 SCC的注冊和部署 185
5.7.4 ACC的安裝和部署 190
5.8 Orderer服務 199
5.8.1 簡介 199
5.8.2 模塊 200
5.8.3 配置 201
5.8.4 模塊初始化 202
5.8.5 建立連接 204
5.8.6 Broadcast 205
5.8.7 Orderer 206
5.8.8 Deliver 209
5.8.9 orderer共識機制 210
5.9 channel 213
5.9.1 目錄 213
5.9.2 配置文件 214
5.9.3 命令 215
第6章 區(qū)塊鏈政務數據共享及服務 220
6.1 背景 220
6.2 現有系統(tǒng)面臨的挑戰(zhàn) 221
6.3 業(yè)務需求 221
6.4 系統(tǒng)總體架構設計 222
6.4.1 系統(tǒng)架構設計 222
6.4.2 邏輯架構視圖 224
6.4.3 邏輯組網示例 225
6.4.4 物理組網示例 226
6.5 證照辦件方案描述 227
6.5.1 場景描述 227
6.5.2 辦件消息發(fā)布 228
6.5.3 可訂閱消息頻道查詢 229
6.5.4 辦件消息訂閱 229
6.6 文件共享方案 230
6.6.1 場景描述 230
6.6.2 云存儲方案 230
6.6