这书全方位详细介绍了区块链技术的基础理论和实践活动,包含了了解区块链技术的精彩内容。在阅读文章完这书后,用户将可以深层次知道区块链技术的內部原理,并具有开发设计区块链技术程序流程的工作能力。这书包括了与区块链技术有关的全部主题风格,涉及到密码学、数字货币、虚拟币、以太坊等,及其用以区块链开发设计的各种各样服务平台和专用工具。
这书详尽论述了与区块链开发设计有关的基础解决方法,包括区块链、区块链技术、密码学和基础技术性、虚拟币、取代币、区块链、以太坊、超級帐簿等內容。除此之外,这书还出示了相对的实例、编码,以协助用户深化了解有关计划方案的保持全过程。
这书合适做为高等学校电子计算机及有关技术专业的教材内容和课堂教学教材,也可做为有关开发者的自学教材和参考手册。
目录
- 第1章 区块链 1
- 1.1 分布式系统 2
- 1.1.1 CAP定理 3
- 1.1.2 拜占庭将军问题 4
- 1.1.3 一致性 4
- 1.2 区块链发展史 5
- 1.2.1 电子现金 6
- 1.2.2 电子现金的概念 6
- 1.3 区块链简介 8
- 1.3.1 区块链技术的各种定义 9
- 1.3.2 区块链中的一般元素 10
- 1.3.3 区块链特性 11
- 1.3.4 区块链技术应用 13
- 1.3.5 区块链发展层次 13
- 1.4 区块链类型 14
- 1.4.1 公有区块链 14
- 1.4.2 私有区块链 14
- 1.4.3 半私有区块链 15
- 1.4.4 侧链技术 15
- 1.4.5 许可账本 15
- 1.4.6 分布式账本 15
- 1.4.7 共享账本 15
- 1.4.8 全私有和专有区块链 15
- 1.4.9 标记化区块链 16
- 1.4.10 无代币区块链 16
- 1.4.11 区块链中的共识 16
- 1.5 CAP定理和区块链 18
- 1.6 区块链的优点和局限性 18
- 1.7 区块链技术的限制和挑战 19
- 1.8 本章小结 20
- 第2章 去中心化 21
- 2.1 基于区块链的去中心化 21
- 2.2 去中心化方法 23
- 2.2.1 非中介化 23
- 2.2.2 竞争 23
- 2.3 去中心化流程 24
- 2.4 区块链和完整的生态圈去中心化操作 25
- 2.4.1 存储 25
- 2.4.2 通信 26
- 2.4.3 计算 27
- 2.5 智能合约 28
- 2.6 去中心化组织 28
- 2.7 去中心化自治组织 29
- 2.8 去中心化自治企业 29
- 2.9 去中心化自治社会 30
- 2.10 去中心化应用程序 30
- 2.10.1 去中心化应用程序的需求条件 30
- 2.10.2 DAPP操作 31
- 2.11 去中心化平台 31
- 2.12 本章小结 32
- 第3章 密码学和基本技术 33
- 3.1 简介 33
- 3.1.1 数学知识 33
- 3.1.2 密码学 35
- 3.1.3 保密性 35
- 3.1.4 完整性 35
- 3.1.5 认证 35
- 3.1.6 不可否认性 36
- 3.1.7 问责制 36
- 3.2 密码原语 37
- 3.2.1 对称加密 38
- 3.2.2 块密码 39
- 3.2.3 数据加密标准 42
- 3.2.4 高级加密标准(AES) 42
- 3.3 非对称加密 45
- 3.3.1 整数分解 47
- 3.3.2 离散对数 47
- 3.3.3 椭圆曲线 47
- 3.4 公钥和私钥 48
- 3.4.1 RSA 48
- 3.4.2 离散对数问题 54
- 3.4.3 密码原语 62
- 3.4.4 哈希函数 62
- 3.4.5 椭圆曲线数字签名算法(ECDSA) 71
- 3.5 金融市场和交易 76
- 3.5.1 交易 77
- 3.5.2 交易所 77
- 3.5.3 交易的生命周期 78
- 3.5.4 订单预期者 79
- 3.5.5 市场操控 79
- 3.6 本章小结 79
- 第4章 比特币 81
- 4.1 比特币概述 82
- 4.1.1 比特币的概念 83
- 4.1.2 密钥和地址 83
- 4.1.3 比特币中的公钥 84
- 4.1.4 比特币中的私钥 84
- 4.1.5 比特币货币单位 85
- 4.1.6 Base58Check编码 85
- 4.1.7 虚地址 86
- 4.2 交易/事务 87
- 4.2.1 交易的生命周期 87
- 4.2.2 交易的结构 87
- 4.2.3 交易类型 90
- 4.3 区块链 94
- 4.3.1 区块链结构 94
- 4.3.2 区块头结构 94
- 4.3.3 创始区块 96
- 4.3.4 比特币网络 103
- 4.3.5 钱包 109
- 4.4 比特币支付 112
- 4.4.1 比特币投资和比特币交易 113
- 4.4.2 比特币安装 114
- 4.4.3 比特币编程和命令行接口 120
- 4.4.4 比特币改进协议(BIP) 120
- 4.5 本章小结 121
- 第5章 替代币 123
- 5.1 理论基础 125
- 5.1.1 工作量证明的替代方案 125
- 5.1.2 难度调整和目标重定位算法 128
- 5.2 比特币中的限制条件 130
- 5.2.1 隐私和匿名性 130
- 5.2.2 比特币上的扩展协议 131
- 5.2.3 替代币的开发 133
- 5.3 域名币 135
- 5.4 莱特币 140
- 5.5 素数币 142
- 5.5.1 素数币交易 143
- 5.5.2 挖掘规则 144
- 5.6 Zcash 145
- 5.6.1 Zcash交易 146
- 5.6.2 挖掘规则 147
- 5.6.3 GPU挖掘 150
- 5.7 本章小结 152
- 第6章 智能合约 153
- 6.1 发展历史 153
- 6.2 定义 153
- 6.3 李嘉图合约 155
- 6.3.1 智能合约模板 158
- 6.3.2 Oracle 159
- 6.3.3 Smart Oracle 160
- 6.3.4 在区块链上发布智能合约 160
- 6.3.5 DAO 161
- 6.4 本章小结 161
- 第7章 以太坊 163
- 7.1 简介 163
- 7.1.1 以太坊客户端和发布 163
- 7.1.2 以太坊栈 164
- 7.2 以太坊区块链 164
- 7.2.1 货币(ETH和ETC) 165
- 7.2.2 分叉 165
- 7.2.3 gas 166
- 7.2.4 共识机制 166
- 7.2.5 世界状态 167
- 7.2.6 交易 168
- 7.2.7 合约生成型交易 170
- 7.2.8 消息调用型交易 171
- 7.3 以太坊区块链中的元素 172
- 7.3.1 以太坊虚拟机 172
- 7.3.2 执行环境 173
- 7.3.3 操作码及其含义 176
- 7.4 预编译合同 182
- 7.4.1 椭圆曲线公钥恢复函数 182
- 7.4.2 SHA256位哈希函数 182
- 7.4.3 RIPEMD160位哈希函数 182
- 7.4.4 恒等函数 182
- 7.5 账户 183
- 7.6 区块 183
- 7.6.1 区块头 184
- 7.6.2 创始区块 185
- 7.6.3 交易收据 186
- 7.6.4 交易验证和执行 186
- 7.6.5 区块验证机制 187
- 7.7 Ether 189
- 7.7.1 gas 189
- 7.7.2 费用标准 190
- 7.8 消息 190
- 7.9 挖掘 191
- 7.9.1 Ethash 192
- 7.9.2 CPU挖掘 192
- 7.9.3 GPU挖掘 193
- 7.9.4 挖掘设备 194
- 7.10 客户端和矿工 196
- 7.11 贸易与投资 204
- 7.12 黄皮书 205
- 7.13 以太坊网络 206
- 7.13.1 MainNet 206
- 7.13.2 TestNet 206
- 7.13.3 专用网络 206
- 7.14 所支持的协议 207
- 7.15 以太坊应用程序 208
- 7.16 可扩展性和安全问题 208
- 7.17 本章小结 208
- 第8章 以太坊开发 211
- 8.1 配置开发环境 211
- 8.1.1 TestNet(Ropsten) 211
- 8.1.2 配置PrivateNet 212
- 8.1.3 启动私有网络 214
- 8.1.4 在PrivateNet上运行Mist 218
- 8.1.5 利用Mist部署合约 219
- 8.2 开发工具和客户端 223
- 8.2.1 开发语言 224
- 8.2.2 编译器 224
- 8.2.3 工具和库 228
- 8.2.4 EthereumJS 230
- 8.2.5 合约的开发和部署 231
- 8.3 Solidity语言 231
- 8.3.1 值类型 232
- 8.3.2 字面值 233
- 8.3.3 枚举值 234
- 8.3.4 函数类型 234
- 8.3.5 引用类型 234
- 8.3.6 映射 235
- 8.3.7 全局变量 236
- 8.3.8 控制结构 236
- 8.4 引入Web3 241
- 8.4.1 POST请求 247
- 8.4.2 HTML和JavaScript前端 248
- 8.4.3 开发框架 255
- 8.5 本章小结 281
- 第9章 超级账本 283
- 9.1 项目 283
- 9.1.1 Fabric 283
- 9.1.2 Sawtooth lake 283
- 9.1.3 Iroha 284
- 9.1.4 Blockchain explorer 284
- 9.1.5 Fabric链式工具 284
- 9.1.6 Fabric SDK Py 284
- 9.1.7 Corda 285
- 9.2 超级账本协议 285
- 9.2.1 参考架构 285
- 9.2.2 需求条件 286
- 9.2.3 隐私和保密性 286
- 9.2.4 身份 287
- 9.2.5 可审核性 287
- 9.2.6 互操作性 287
- 9.2.7 可移植性 287
- 9.3 Fabric 287
- 9.4 Hyperledger Fabric 288
- 9.4.1 Fabric体系结构 288
- 9.4.2 Fabric组件 291
- 9.5 Sawtooth lake 293
- 9.5.1 PoET 293
- 9.5.2 交易族 293
- 9.5.3 Sawtooth中的共识机制 295
- 9.5.4 开发环境 295
- 9.6 Corda 298
- 9.6.1 体系结构 299
- 9.6.2 组件 300
- 9.6.3 开发环境 302
- 9.7 本章小结 303
- 第10章 替代区块链方案 305
- 10.1 区块链 305
- 10.2 平台 318
- 10.2.1 BlockApps 318
- 10.2.2 Eris 324
- 10.3 本章小结 326
- 第11章 货币之外的区块链技术 327
- 11.1 物联网 327
- 11.2 政府机构 344
- 11.2.1 边境管理 344
- 11.2.2 选票机制 346
- 11.2.3 身份证 346
- 11.2.4 其他领域 347
- 11.3 保健事业 347
- 11.4 金融行业 348
- 11.4.1 保险行业 348
- 11.4.2 交易后的结算 349
- 11.4.3 防范金融犯罪 349
- 11.5 媒体行业 350
- 11.6 本章小结 350
- 第12章 可扩展性和其他挑战 351
- 12.1 可扩展性 351
- 12.1.1 增加区块链尺寸 352
- 12.1.2 减少区块间隔时间 352
- 12.1.3 可逆的Bloom查找表 353
- 12.1.4 分片技术 353
- 12.1.5 状态通道 353
- 12.1.6 私有区块链 354
- 12.1.7 权益证明 354
- 12.1.8 侧链 354
- 12.1.9 子链 354
- 12.1.10 树形链 354
- 12.2 隐私性 356
- 12.2.1 不可区分性混淆技术 356
- 12.2.2 同态加密 356
- 12.2.3 零知识证明 356
- 12.2.4 状态通道 357
- 12.2.5 安全的多方计算 357
- 12.2.6 通过硬件提供保密性 357
- 12.2.7 Coinjoin 357
- 12.2.8 机密交易 358
- 12.2.9 MimbleWimble 358
- 12.3 安全性 358
- 12.3.1 智能合约安全性 359
- 12.3.2 Why3形式验证 360
- 12.3.3 Oyente工具 361
- 12.4 本章小结 362
- 第13章 发展现状和未来趋势 365
- 13.1 新趋势 365
- 13.1.1 基于应用程序的区块链(ASBC) 365
- 13.1.2 企业级区块链 365
- 13.1.3 私有区块链 366
- 13.1.4 初创公司 366
- 13.1.5 浓厚的研究兴趣 366
- 13.1.6 标准化 367
- 13.1.7 改进措施 367
- 13.1.8 具体实现 368
- 13.1.9 企业联合体 368
- 13.1.10 解决方法 368
- 13.1.11 技术融合 368
- 13.1.12 教育发展状况 368
- 13.1.13 就业前景 369
- 13.1.14 密码经济学 369
- 13.1.15 密码学研究 369
- 13.1.16 新的编程语言 369
- 13.1.17 硬件研究和开发 370
- 13.1.18 形式方法和以及安全研究 370
- 13.1.19 区块链的替代方案 370
- 13.1.20 互操作性 371
- 13.1.21 区块链服务 371
- 13.1.22 减少耗电量 371
- 13.2 改进协议 371
- 13.2.1 BIP 372
- 13.2.2 EIP 373
- 13.3 其他挑战性问题 374
- 13.4 负面影响 375
- 13.5 区块链研究 376
- 13.5.1 智能合约 376
- 13.5.2 中心化问题 376
- 13.5.3 加密功能的局限性 376
- 13.5.4 共识算法 376
- 13.5.5 可扩展性 377
- 13.5.6 代码混淆 377
- 13.6 重要项目实例 377
- 13.6.1 以太坊上的Zcash 377
- 13.6.2 CollCo 377
- 13.6.3 Cello 378
- 13.6.4 Qtum 378
- 13.6.5 Bitcoin-NG 378
- 13.6.6 Solidus 378
- 13.6.7 Hawk 378
- 13.6.8 Town-Crier 378
- 13.6.9 SETLCoin 379
- 13.6.10 TEEChan 379
- 13.6.11 Falcon 379
- 13.6.12 Bletchley 379
- 13.6.13 Casper 380
- 13.6.14 Metropolis 380
- 13.7 其他工具 380
- 13.7.1 Microsoft Visual Studio的Solidity扩展 380
- 13.7.2 MetaMask 380
- 13.7.3 Stratis 381
- 13.7.4 Embark 381
- 13.7.5 DAPPLE 381
- 13.7.6 Meteor 381
- 13.7.7 uPort 381
- 13.7.8 INFURA 382
- 13.8 与其他行业的结合 382
- 13.9 未来发展 383
- 13.10 本章小结 384