区块链技术指南

区块链技术指南
编辑推荐
区块链专家联袂推荐,资深区块链践行者联合撰写,从技术层面全面解密区块链技术
系统讲解区块链核心概念、架构、底层算法、应用开发、典型项目与应用、常见问题等读者为关心的技术与应用
内容简介
区块链专家联袂推荐,资深区块链践行者联合撰写,从技术层面全面揭示区块链技术秘密。涵盖基础概念、架构、底层算法、应用开发、典型的区块链解决方案、常见问题等读者*为关心的技术与应用。 s 本书分为三大部分,共计 11 章内容。
第一部分为基础和入门(第 1~2 章),着重是区块链入门介绍,并讲解区块链基础,包括区块链的概念、种类、比特币交易、区块链的一些基础概念等,为后面深入介绍区块链技术做铺垫。
第二部分为架构和技术篇(第 3~10 章):详细讲解了以下方面。
区块链 1.0/2.0/3.0 架构,以及互联链架构属性与特点剖析,做到宏观理解与认识。
区块链基于的密码学原理和典型的算法,了解区块链开发安全之道。
区块链中常用的共识算法与作用,了解区块链价值传递与弱中心化之基石。
比特币开发指南,帮助初学者入门。
以太坊上的智能合约开发要领,为以后应用打下基础。
HyperLedger 开源项目及其架构,掌握主流的项目与应用。
区块链上常见的问题,包括 TheDAO 攻击的源码级分析。
典型解决方案:以闪电网络为主的支付方案;以标识登记为主的开源 ODIN 解决方案。
第三部分为回顾和展望(第 11 章),从架构变革的角度探讨 IT 发展的原动力,并提供对区块链对未来 IT 发展的一些展望。
作者简介
邹均,中关村区块链产业联盟专家、服务合约(ServiceContract)方向博士,关注与实践区块链技术与应用,现为海纳云 CTO。曾任 IBM 澳洲金融行业首席软件架构师。擅长云计算、大数据、软件定义存储。融智北京高端外国专家,在国际会议期刊发表论文 20 余篇。
张海宁,VMware 中国云原生应用首席架构师,Harbor 企业级开源容器 Registry 项目负责人,CloudFoundry 中国社区*早的技术布道师之一,多年软件开发经验。曾任 IBM 资深软件工程师、Sun 公司资深架构师等。目前着重关注容器、云计算和区块链领域的研究和开发。
唐屹,广州大学教授、理学博士,专注于网络信息安全、分布式计算、区块链安全及应用等,为国外知名安全公司开发过椭圆曲线密码软件,获密码科技进步二等奖(省部级)。多次主持或参与完成国家*科技与人才项目基金工作。
李磊,合肥工业大学副教授,Macquarie 大学博士。擅长数据挖掘、社会计算、智能计算。多次担任 IEEE 国际会议程序委员会委员与组织者,在社会计算和区块链等领域发表论文 40 余篇,被引用 350 余次。
目录
- 本书作者
- 序一:什么是区块链
- 序二:区块链——未来已来,只是尚未流行
- 序三:区块链——连接虚拟与现实
- 序四:区块链——转型之擎
- 前言
第 1 章 区块链和比特币初体验 / 1
- 1.1 区块链简介 / 1
- 1.1.1 区块链起源——比特币 / 1
- 1.1.2 区块链和区块链技术的涵义 / 2
- 1.1.3 区块链分类 / 2
- 1.1.4 区块链价值与应用 / 7
- 1.2 区块链体验 / 10
- 1.2.1 获取比特币的 3 种途径 / 11
- 1.2.2 通过交易所购买比特币 / 13
- 1.2.3 比特币钱包和地址 / 17
- 1.2.4 从交易平台提取比特币到钱包 / 20
- 1.2.5 比特币交易查询 / 22
- 1.3 本章小结 / 22
第 2 章 区块链基础 / 24
- 2.1 区块链技术 / 24
- 2.1.1 基本概念 / 25
- 2.1.2 框架与特点 / 32
- 2.1.3 区块链运作的核心技术 / 35
- 2.1.4 区块链交易流程 / 41
- 2.2 以太坊 / 42
- 2.2.1 什么是以太坊 / 42
- 2.2.2 以太坊技术 / 43
- 2.2.3 以太坊智能合约 / 48
- 2.2.4 以太坊的去中心化应用 / 50
- 2.3 基于区块链的电子货币 / 51
- 2.3.1 元币平台 / 51
- 2.3.2 代币 / 52
- 2.3.3 货币的未来 / 58
- 2.4 本章小结 / 58
第 3 章 区块链架构剖析 / 59
- 3.1 基本定义 / 59
- 3.2 区块链 1.0 架构:比特币区块链 / 61
- 3.2.1 比特币前端 / 63
- 3.2.2 比特币节点后端 / 66
- 3.3 区块链 2.0 架构:以太坊区块链 / 79
- 3.4 区块链 3.0 架构:超越货币、金融范围的区块链应用 / 87
- 3.5 互联链架构剖析 / 90
- 3.5.1 互联链背景 / 90
- 3.5.2 互联账本 / 91
- 3.5.3 互联账本协议组 / 92
- 3.5.4 互联账本各层协议关系 / 95
- 3.6 本章小结 / 96
第 4 章 区块链中的密码学技术 / 97
- 4.1 哈希算法 / 97
- 4.1.1 哈希函数的性质与应用 / 99
- 4.1.2 哈希指针链 / 101
- 4.2 Merkle 树 / 102
- 4.3 公钥密码算法 / 103
- 4.3.1 椭圆曲线密码算法 / 104
- 4.3.2 secp256k1 椭圆曲线 / 105
- 4.3.3 椭圆曲线签名与验证签名 / 106
- 4.4 本章小结 / 107
第 5 章 共识算法详解 / 109
- 5.1 拜占庭容错技术 / 109
- 5.1.1 拜占庭将军问题 / 110
- 5.1.2 拜占庭容错系统 / 112
- 5.1.3 实用的拜占庭容错系统 / 112
- 5.1.4 Raft 协议 / 114
- 5.2 PoW 机制 / 116
- 5.3 PoS 机制 / 122
- 5.4 DPoS 机制 / 123
- 5.5 Ripple 共识算法 / 124
- 5.6 小蚁共识机制 / 126
- 5.7 本章小结 / 127
第 6 章 比特币应用开发指南 / 129
- 6.1 以虚拟机方式搭建应用开发环境 / 129
- 6.1.1 下载和安装 Oracle VM VirtualBox / 129
- 6.1.2 以虚拟机方式安装 Ubuntu14.04 / 133
- 6.1.3 安装 Node.js 开发环境 / 138
- 6.1.4 安装 Docker 运行环境 / 138
- 6.1.5 安装和运行比特币测试网络 / 139
- 6.1.6 运行第一个示例程序 / 141
- 6.2 把握比特币“交易”数据结构 / 145
- 6.2.1 了解比特币的“交易”数据结构 / 145
- 6.2.2 交易记录的实例解析 / 146
- 6.2.3 运行示例程序 / 148
- 6.3 实战:多重签名交易 / 153
- 6.3.1 将 ODIN 标识注册到区块链上的实例解析 / 153
- 6.3.2 运行示例程序 / 156
- 6.4 本章小结 / 157
第 7 章 智能合约 / 158
- 7.1 智能合约简介 / 158
- 7.1.1 什么是智能合约 / 158
- 7.1.2 智能合约的历史 / 159
- 7.1.3 智能合约的优点和面临的风险 / 160
- 7.2 以太坊智能合约详解 / 161
- 7.2.1 以太坊上的账户 / 161
- 7.2.2 以太币和 Gas / 166
- 7.2.3 合约和交易 / 167
- 7.3 以太坊虚拟机 / 170
- 7.4 实例:在以太坊上开发实施智能合约 / 173
- 7.4.1 通过以太坊钱包部署智能合约 / 173
- 7.4.2 通过控制台部署智能合约 / 179
- 7.5 本章小结 / 183
第 8 章 超级账本项目 / 184
- 8.1 超级账本项目简介 / 184
- 8.1.1 项目背景 / 184
- 8.1.2 项目管理形式 / 185
- 8.1.3 项目的生命周期管理 / 186
- 8.1.4 项目发展状况 / 187
- 8.2 Fabric 项目 / 187
- 8.2.1 项目概述 / 187
- 8.2.2 应用场景 / 188
- 8.2.3 项目架构 / 189
- 8.2.4 部署方式 / 191
- 8.2.5 交易的执行 / 192
- 8.3 Sawtooth Lake 项目 / 193
- 8.3.1 项目概述 / 194
- 8.3.2 项目架构 / 194
- 8.4 本章小结 / 196
第 9 章 区块链常见问题 / 197
- 9.1 钱包的安全性问题 / 197
- 9.2 加密货币的交易方式 / 199
- 9.3 匿名性和隐私性 / 201
- 9.4 矿池算力集中的问题 / 203
- 9.5 51% 攻击问题 / 205
- 9.6 去中心化的自治组织 / 207
- 9.6.1 去中心化的自治组织简介 / 207
- 9.6.2 The DAO 项目 / 208
- 9.6.3 代码漏洞分析 / 210
- 9.6.4 解决方案 / 213
- 9.6.5 软分叉和硬分叉的影响 / 215
- 9.6.6 重放攻击 / 216
- 9.7 本章小结 / 219
第 10 章 区块链应用案例分析 / 220
- 10.1 闪电网络 / 220
- 10.1.1 闪电网络简介 / 220
- 10.1.2 支付通道的创建 / 221
- 10.1.3 支付通道的更新 / 223
- 10.1.4 支付网络的构建 / 223
- 10.1.5 支付通道的关闭 / 225
- 10.1.6 小结 / 226
- 10.2 ODIN:用区块链来替代 DNS / 226
- 10.2.1 ODIN 简介 / 227
- 10.2.2 实现功能 / 228
- 10.2.3 主要特点 / 229
- 10.2.4 ODIN 标识编码格式 / 229
- 10.2.5 ODIN 标识技术规范 / 232
- 10.2.6 使用示例 / 233
- 10.2.7 开放资源 / 234
- 10.2.8 问题与思考 / 234
- 10.3 本章小结 / 236
第 11 章 从架构变革看 IT 时代的演进 / 237
- 11.1 架构心得 / 237
- 11.1.1 架构和技术的关系 / 237
- 11.1.2 关于计算的观察 / 238
- 11.1.3 架构创新的神奇力量 / 238
- 11.1.4 冯·诺依曼架构 / 239
- 11.1.5 哈佛体系架构 / 240
- 11.1.6 有影响力架构的特点 / 240
- 11.1.7 从非生物计算到非生物智能 / 241
- 11.2 架构创新——IT 发展源源不断的动力 / 242
- 11.2.1 大中型机时代 / 243
- 11.2.2 开放时代的到来 / 243
- 11.2.3 客户端 / 服务端(CS)分布式时代 / 243
- 11.2.4 互联网时代 / 244
- 11.2.5 云计算、大数据时代 / 246
- 11.2.6 互联网 + 时代 / 250
- 11.2.7 区块链 + 时代 / 252
- 11.3 未来展望 / 254