本书是校企(嘉兴职业技术学院与嘉兴市长三角区块链技术研究院)合作的成果,融入了区块链技术企业的最新技术应用。本书阐述了区块链技术应用的相关知识,主要涵盖区块链基础知识、区块链的密码学基础、P2P网络、共识算法、智能合约、区块链技术应用案例及区块链测试与安全等内容。本书内容通俗易懂,理实结合,体现了区块链技术架构和技术组成的任务驱动。本书内容安排合理,每章均配有思维导图,内容循序渐进,体现了问题导向和“做中学”的思想,实用性强。
肖文红,男,硕士,嘉兴职业技术学院网络技术与物联网应用教研室主任,主要负责网络技术与无线传感网的教学与科研工作。
第1单元 区块链基础知识 1
任务1.1 区块链概述 2
1.1.1 区块链的发展阶段 3
1.1.2 中央银行数字货币 4
任务1.2 区块链技术特性 5
1.2.1 去中心化 5
1.2.2 透明性 6
1.2.3 可靠性 7
1.2.4 不可篡改性 7
1.2.5 可追溯性 8
任务1.3 区块链分类 9
1.3.1 公有链 9
1.3.2 联盟链 9
1.3.3 私有链 10
任务1.4 区块链体系结构 10
单元小结 12
习题 13
第2单元 区块链的密码学基础 14
任务2.1 密码学概述 15
2.1.1 密码学的发展阶段 15
2.1.2 密码体制的基本组成 16
任务2.2 对称密钥及其典型算法 17
任务2.3 非对称密钥及其典型算法 18
任务2.4 哈希函数、梅克尔树与数字签名 19
2.4.1 哈希函数 19
2.4.2 梅克尔树 20
2.4.3 数字签名 22
任务2.5 数字证书 23
2.5.1 PKI 23
2.5.2 证书生命周期管理 24
2.5.3 证书链 25
单元小结 26
习题 26
第3单元 P2P网络 27
任务3.1 P2P网络的基础知识 28
3.1.1 P2P网络的定义 28
3.1.2 P2P网络的特点 29
3.1.3 P2P网络分类 29
任务3.2 P2P网络通信协议 35
3.2.1 非结构化P2P网络使用的洪泛算法及其变种 35
3.2.2 结构化P2P网络使用的路由算法 38
任务3.3 P2P网络在区块链上的应用 42
3.3.1 P2P网络在比特币中的应用 42
3.3.2 P2P网络在以太坊中的应用 45
单元小结 47
习题 47
第4单元 共识算法 48
任务4.1 分布式共识算法背景——一致性问题 49
4.1.1 拜占庭将军问题 50
4.1.2 共识算法的定义 51
4.1.3 Fischer-Lynch-Paterson定理 52
任务4.2 几种共识算法 53
4.2.1 共识算法分类 54
4.2.2 BFT 54
4.2.3 CFT 58
4.2.4 PoW 60
4.2.5 PoS 61
单元小结 63
习题 63
第5单元 智能合约 64
任务5.1 智能合约简介 65
5.1.1 智能合约的定义及发展历程 65
5.1.2 智能合约分类 66
5.1.3 智能合约的实现机制 67
任务5.2 智能合约开发 68
5.2.1 案例设计 69
5.2.2 编程语言 70
5.2.3 开发平台 71
5.2.4 执行机制 71
任务5.3 智能合约部署与测试 76
5.3.1 Solidity 集成开发工具 Remix 76
5.3.2 智能合约部署 76
5.3.3 智能合约测试 80
单元小结 81
习题 81
第6单元 区块链技术应用案例 82
任务6.1 区块链架构 83
任务6.2 区块链开发框架 85
任务6.3 开发环境部署 85
任务6.4 区块链技术应用案例1 90
6.4.1 电商联盟平台模型 90
6.4.2 人机交互界面 92
6.4.3 智能合约开发 96
6.4.4 后端服务开发 106
任务6.5 区块链技术应用案例2 107
6.5.1 电商联盟平台模型 107
6.5.2 人机交互界面 108
6.5.3 智能合约开发 110
6.5.4 后端服务开发 118
单元小结 124
习题 124
第7单元 区块链测试与安全 125
任务7.1 通用测试方法 126
7.1.1 基本概念 126
7.1.2 区块链通用测试方法 130
任务7.2 通用报告规范 144
任务7.3 区块链安全要求、安全测试方法及相关法律法规 146
7.3.1 区块链安全要求 146
7.3.2 区块链安全测试方法 154
7.3.3 相关法律法规 157
任务7.4 测试用例设计 176
7.4.1 搭建环境 177
7.4.2 编写待测试的合约代码 177
7.4.3 设计测试用例 178
7.4.4 编写测试代码 179
7.4.5 编译与部署智能合约 181
7.4.6 执行测试用例 181
7.4.7 分析和记录测试结果 184
任务7.5 网络攻击 184
7.5.1 女巫攻击 184
7.5.2 重放攻击 186
7.5.3 重入攻击 188
任务7.6 智能合约安全测试 193
7.6.1 静态安全扫描 193
7.6.2 渗透测试 198
任务7.7 区块链相关法律法规 201
单元小结 204
习题 204