转载至: https://www.jb51.net/books/681821.html
下载链接: 点我一键跳转到 下载链接
下载声明: 本资料仅供个人学习和研究使用,不能用于商业用途,请在下载后24小时内删除。如果喜欢,请购买正版!
本书详细阐述了与区块链开发相关的基本解决方案,主要包括区块链、去中心化、密码学和基本技术、比特币、替代币、智能合约、以太坊、超级账本等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
第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