《精通区块链开发技术》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)伊姆兰·巴希尔著;王烈征译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302499831
  • 页数:384 页
图书介绍:本书从区块链的技术基础开始,教你们密码学的基本原理,以及它如何保证数据安全。您将了解加密货币背后的机制,以及如何使用分布式虚拟机以太坊来开发应用程序。你将探索不同的区块链解决方案,并对Hyperledger进行独家预览,这是IBM和Linux基金会即将推出的区块链解决方案。你还将展示如何实现区块链以外的区块链,以及区块链的可控性,以及这一迷人而强大的技术的未来范围。

第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