第1章 区块链基础 1
1.1 区块链常用名词解释 2
1.2 区块链的发展历程 4
1.3 区块链概念 7
1.3.1 区块链是什么 7
1.3.2 区块链的特性 7
1.3.3 区块链分类 8
1.3.4 区块链构建信任 9
1.3.5 区块链的社会价值 10
1.4 区块链核心技术 10
1.4.1 综述 10
1.4.2 区块链结构 15
1.4.3 智能合约 17
1.4.4 跨链技术 20
1.4.5 ILP详解及应用 26
1.5 热门区块链平台对比分析 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章 分布式系统技术 41
2.1 一致性问题 41
2.1.1 问题挑战 42
2.1.2 一致性的要求 42
2.1.3 一致性模型 43
2.2 一致性的共识算法 45
2.2.1 问题挑战 45
2.2.2 常见算法 45
2.2.3 理论界限 48
2.3 F1P不可能原理 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 区块链中的Hash应用 57
3.2 加密算法 57
3.2.1 加解密系统基本组成 57
3.2.2 对称加密算法 58
3.2.3 非对称加密算法 59
3.2.4 选择明文攻击 60
3.2.5 混合加密机制 60
3.2.6 离散对数与DH密钥交换协议 61
3.2.7 区块链加密技术 62
3.3 消息认证码与数字签名 64
3.3.1 消息认证码 64
3.3.2 数字签名 64
3.3.3 安全性 65
3.3.4 区块链数字签名 65
3.4 数字证书 66
3.4.1 X.5 09证书规范 66
3.4.2 证书格式 67
3.4.3 证书信任链 68
3.5 PKI体系 69
3.5.1 PKI基本组件 69
3.5.2 证书的签发 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 同态加密 73
3.8.1 定义 73
3.8.2 问题与挑战 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区块链网络 78
4.1 超级账本Fabric简介 78
4.2 Fabric特性和架构设计 80
4.2.1 Fabric特性 80
4.2.2 Fabric系统架构 82
4.3 Fabric部署 85
4.3.1 单节点部署 85
4.3.2 多节点区块链网络部署 90
4.4 Fabric开发 97
4.4.1 ChainCode开发 97
4.4.2 应用开发示例 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 日志系统 142
5.3.1 go-logging简介 142
5.3.2 flogging 142
5.4 配置系统 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 环境变量配置 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章 区块链政务数据共享及服务 220
6.1 背景 220
6.2 现有系统面临的挑战 221
6.3 业务需求 221
6.4 系统总体架构设计 222
6.4.1 系统架构设计 222
6.4.2 逻辑架构视图 224
6.4.3 逻辑组网示例 225
6.4.4 物理组网示例 226
6.5 证照办件方案描述 227
6.5.1 场景描述 227
6.5.2 办件消息发布 228
6.5.3 可订阅消息频道查询 229
6.5.4 办件消息订阅 229
6.6 文件共享方案 230
6.6.1 场景描述 230
6.6.2 云存储方案 230
6.6.3 云存储安全保障方案 231
6.7 证照共享方案 232
6.7.1 政务服务数据标准 232
6.7.2 数据上传 235
6.7.3 数据查询 235
6.8 系统接口设计 238
6.8.1 保存政务服务数据 238
6.8.2 批量保存政务服务数据 239
6.8.3 查询政务服务数据 240
6.8.4 发送消息 241
6.8.5 获取附件 242
6.8.6 获取可订阅消息 245
6.9 系统功能设计 246
6.9.1 总体功能结构 246
6.9.2 政务服务数据业务功能 247
6.9.3 平台管理功能 251
6.9.4 系统管理功能 255
6.10 智能合约设计 257
6.10.1 智能合约多层结构设计 257
6.10.2 智能合约模块设计 258
6.10.3 智能合约二次开发 264
6.11 平台的可视化部署 266
6.12 政务数据的三权关系 268
第7章 区块链应用设计 270
7.1 区块链在数字商票中的应用 270
7.1.1 简述 270
7.1.2 区块链解决的关键问题 270
7.1.3 方案描述 270
7.1.4 小结 275
7.2 区块链在文化交易中的应用 275
7.2.1 简述 275
7.2.2 区块链解决的关键问题 275
7.2.3 方案描述 276
7.2.4 小结 280
7.3 区块链在烟草溯源中的应用 280
7.3.1 简述 280
7.3.2 区块链解决的关键问题 280
7.3.3 方案描述 281
7.3.4 小结 284
7.4 区块链在海事稽查中的应用 285
7.4.1 简述 285
7.4.2 区块链解决的关键问题 285
7.4.3 方案描述 286
7.4.4 小结 288
7.5 区块链在教育领域的应用 289
7.5.1 简述 289
7.5.2 区块链解决的关键问题 289
7.5.3 方案描述 289
7.5.4 小结 290
7.6 区块链在审计领域的应用 290
7.6.1 背景 290
7.6.2 区块链解决的关键问题 291
7.6.3 方案描述 292
7.6.4 小结 292
7.7 区块链身份认证 293
7.7.1 背景 293
7.7.2 区块链解决的关键问题 295
7.7.3 方案整体架构 296
7.7.4 小结 299
7.8 区块链在数据流通中的应用 299
7.8.1 背景 299
7.8.2 区块链解决的关键问题 300
7.8.3 方案整体架构 302
7.8.4 小结 304
7.9 区块链在供应链金融中的应用 304
7.9.1 背景 304
7.9.2 区块链解决的关键问题 304
7.9.3 方案整体架构(以物流为例) 305
7.9.4 小结 306
第8章 区块链未来展望 307
8.1 区块链与人工智能的关系 307
8.2 区块链与大数据 314
8.3 区块链即服务 316
8.3.1 概念 316
8.3.2 原理 316
8.3.3 IBM区块链服务 317
8.3.4 微软区块链服务 324
8.3.5 小结 328
8.4 GDPR对区块链的影响 329
8.5 区块链面临的挑战 332
8.5.1 待解决的四大难题 332
8.5.2 性能问题及解决建议 334
8.5.3 安全问题及解决建议 337
参考文献 340