描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111606147
编辑推荐
1)知名专家联袂推荐,实力专家联合撰写,全面性、透彻性毋庸置疑 2)深度讲解区块链核心技术、平台与应用开发,涵盖架构、共识、加密、P2P、比特币、以太坊、Hyperledger、EOS、潜力框架、问题与测评等
内容简介
全书分为三篇。核心技术篇(第1-6章):介绍区块链的沿革、社会价值,以及核心技术,包括架构、共识算法、加密算法、P2P网络等。实战篇(第7-9章):介绍区块链主流平台的架构、原理与基本应用。进阶篇(第10-12章):介绍富有特色和潜力的区块链平台、常见的问题以及区块链的测评细节。
目 录
目 录?Contents
作者简介
序一 处于“十字路口”的区块链技术及其应用
序二 用发展的眼光看待区块链
序三 区块链与系统安全
前言
篇 核心技术篇
第1章 互联网下半场的主角——区块链 2
1.1 当代互联网的局限 3
1.2 计算模式的演变 4
1.2.1 分布式计算的出现 4
1.2.2 分布式计算的挑战 5
1.2.3 比特币“突围” 6
1.2.4 比特币的局限 8
1.3 区块链的演化路径 9
1.3.1 区块链与互联网意义 9
1.3.2 区块链概念的提出 9
1.3.3 区块链的社会价值和意义 9
1.4 小结 12
第2章 区块链基本概念 13
2.1 区块链技术研究缘由 13
2.1.1 区块链用例描述:比特币 14
2.1.2 区块链需要研究哪些关键技术 17
2.2 区块链模型 18
2.2.1 数据区块 20
2.2.2 链式结构 21
2.2.3 Merkle树 22
2.3 网络通信层关键技术 22
2.4 数据安全与隐私保护关键技术 26
2.5 共识层关键技术 32
2.6 区块链技术标准 33
2.7 小结 34
第3章 区块链架构 36
3.1 区块链架构和传统IT架构的异同 36
3.2 区块链架构模型 37
3.2.1 区块链系统的共性 37
3.2.2 区块链的差异性 40
3.3 区块链的参考模型 42
3.3.1 一个参考架构 42
3.3.2 区块链高阶架构模型 43
3.3.3 区块链跨链本质与架构模型 52
3.3.4 区块链部署模型 56
3.4 区块链的数据模型 58
3.5 区块链的能力模型 62
3.6 小结 64
第4章 密码学 65
4.1 哈希算法 66
4.1.1 密码学哈希函数简介 66
4.1.2 哈希函数的性质及应用 67
4.1.3 区块链中的哈希函数 69
4.2 Merkle树 70
4.2.1 哈希指针 70
4.2.2 Merkle哈希树 72
4.3 公钥密码算法 73
4.3.1 密码算法简介 73
4.3.2 公钥密码算法 74
4.3.3 区块链中使用的椭圆曲线 75
4.3.4 数字证书 75
4.4 数字签名 76
4.4.1 数字签名简介 76
4.4.2 数字签名标准与ECDSA算法 77
4.4.3 其他的数字签名方法 78
4.5 零知识证明 79
4.6 区块链中的隐私问题 80
4.7 小结 82
第5章 共识算法 83
5.1 分布式共识算法背景 83
5.1.1 拜占庭将军问题 85
5.1.2 共识系统的基本定义 88
5.1.3 Fisher-Lynch-Paterson定理 89
5.1.4 CAP定理 91
5.2 强一致性非拜占庭共识算法 93
5.2.1 Viewstamped Replicaton 93
5.2.2 Paxos共识算法 96
5.2.3 其他类Paxos共识协议 98
5.2.4 强一致性非拜占庭共识算法小结 100
5.3 强一致性拜占庭容错共识算法 101
5.4 非强一致共识算法 PoW机制 104
5.5 PoS机制 110
5.5.1 点点币PoS机制 111
5.5.2 NXT PoS机制 112
5.5.3 Tendermint PoS机制 113
5.5.4 Ethereum Casper PoS机制 116
5.5.5 LPoS机制 117
5.5.6 DPoS机制 117
5.6 Ripple共识算法 118
5.7 小结 120
第6章 P2P网络 122
6.1 P2P网络简介 122
6.2 P2P网络核心数据结构与算法 127
6.2.1 P2P网络数据结构与算法 127
6.2.2 主流数据结构DHT与算法 128
6.2.3 区块链P2P网络协议 136
6.3 小结 147
第二篇 实战篇
第7章 比特币 150
7.1 比特币的特点 150
7.2 比特币的P2P网络 153
7.2.1 点对点的钱包节点分类 153
7.2.2 全节点的分布式存储 154
7.2.3 交易和区块在节点间的传播同步 156
7.3 比特币的发行机制 157
7.3.1 总量上限2100万的实现 157
7.3.2 打包区块的原理 158
7.3.3 矿池与矿工的关系 161
7.4 比特币的账号系统 163
7.4.1 私钥与公钥 163
7.4.2 签名信息与校验签名 165
7.4.3 脑口令 165
7.4.4 荣耀地址与批量地址 167
7.4.5 多重签名地址 168
7.4.6 隔离验证SW地址 177
7.5 比特币的生态系统 177
7.6 开发实施一个比特币存证应用 179
7.6.1 环境准备 179
7.6.2 示例程序 182
7.7 小结 184
第8章 以太坊 185
8.1 以太坊关键概念 186
8.2 以太坊的架构 188
8.2.1 以太坊数据模型 189
8.2.2 以太坊的应用架构 195
8.3 以太坊智能合约 197
8.3.1 合约类型和调用示例 197
8.3.2 合约编译和部署过程 199
8.3.3 Solidity高级合约语言 201
8.3.4 案例:构建、编译与部署一个智能合约 203
8.4 以太坊适用场景剖析 216
8.5 小结 217
第9章 超级账本Fabric 218
9.1 Fabric基础架构 219
9.1.1 架构概述 219
9.1.2 主要组件 220
9.1.3 P2P网络 221
9.1.4 通道 222
9.1.5 分布式账本 222
9.1.6 共识机制 223
9.1.7 智能合约(链码) 224
9.1.8 成员服务提供者 225
9.1.9 交易流程 225
9.2 架构详细原理 227
9.2.1 成员身份管理 227
9.2.2 通道的结构 232
9.2.3 链码 238
9.3 应用开发流程 245
9.3.1 前期准备 246
9.3.2 定义Fabric集群 246
9.3.3 启动Fabric集群 248
9.3.4 链码设计 248
9.3.5 链码部署 251
9.3.6 SDK简介 251
9.3.7 应用的API开发 254
9.3.8 界面开发 257
9.3.9 集成 260
9.3.10
作者简介
序一 处于“十字路口”的区块链技术及其应用
序二 用发展的眼光看待区块链
序三 区块链与系统安全
前言
篇 核心技术篇
第1章 互联网下半场的主角——区块链 2
1.1 当代互联网的局限 3
1.2 计算模式的演变 4
1.2.1 分布式计算的出现 4
1.2.2 分布式计算的挑战 5
1.2.3 比特币“突围” 6
1.2.4 比特币的局限 8
1.3 区块链的演化路径 9
1.3.1 区块链与互联网意义 9
1.3.2 区块链概念的提出 9
1.3.3 区块链的社会价值和意义 9
1.4 小结 12
第2章 区块链基本概念 13
2.1 区块链技术研究缘由 13
2.1.1 区块链用例描述:比特币 14
2.1.2 区块链需要研究哪些关键技术 17
2.2 区块链模型 18
2.2.1 数据区块 20
2.2.2 链式结构 21
2.2.3 Merkle树 22
2.3 网络通信层关键技术 22
2.4 数据安全与隐私保护关键技术 26
2.5 共识层关键技术 32
2.6 区块链技术标准 33
2.7 小结 34
第3章 区块链架构 36
3.1 区块链架构和传统IT架构的异同 36
3.2 区块链架构模型 37
3.2.1 区块链系统的共性 37
3.2.2 区块链的差异性 40
3.3 区块链的参考模型 42
3.3.1 一个参考架构 42
3.3.2 区块链高阶架构模型 43
3.3.3 区块链跨链本质与架构模型 52
3.3.4 区块链部署模型 56
3.4 区块链的数据模型 58
3.5 区块链的能力模型 62
3.6 小结 64
第4章 密码学 65
4.1 哈希算法 66
4.1.1 密码学哈希函数简介 66
4.1.2 哈希函数的性质及应用 67
4.1.3 区块链中的哈希函数 69
4.2 Merkle树 70
4.2.1 哈希指针 70
4.2.2 Merkle哈希树 72
4.3 公钥密码算法 73
4.3.1 密码算法简介 73
4.3.2 公钥密码算法 74
4.3.3 区块链中使用的椭圆曲线 75
4.3.4 数字证书 75
4.4 数字签名 76
4.4.1 数字签名简介 76
4.4.2 数字签名标准与ECDSA算法 77
4.4.3 其他的数字签名方法 78
4.5 零知识证明 79
4.6 区块链中的隐私问题 80
4.7 小结 82
第5章 共识算法 83
5.1 分布式共识算法背景 83
5.1.1 拜占庭将军问题 85
5.1.2 共识系统的基本定义 88
5.1.3 Fisher-Lynch-Paterson定理 89
5.1.4 CAP定理 91
5.2 强一致性非拜占庭共识算法 93
5.2.1 Viewstamped Replicaton 93
5.2.2 Paxos共识算法 96
5.2.3 其他类Paxos共识协议 98
5.2.4 强一致性非拜占庭共识算法小结 100
5.3 强一致性拜占庭容错共识算法 101
5.4 非强一致共识算法 PoW机制 104
5.5 PoS机制 110
5.5.1 点点币PoS机制 111
5.5.2 NXT PoS机制 112
5.5.3 Tendermint PoS机制 113
5.5.4 Ethereum Casper PoS机制 116
5.5.5 LPoS机制 117
5.5.6 DPoS机制 117
5.6 Ripple共识算法 118
5.7 小结 120
第6章 P2P网络 122
6.1 P2P网络简介 122
6.2 P2P网络核心数据结构与算法 127
6.2.1 P2P网络数据结构与算法 127
6.2.2 主流数据结构DHT与算法 128
6.2.3 区块链P2P网络协议 136
6.3 小结 147
第二篇 实战篇
第7章 比特币 150
7.1 比特币的特点 150
7.2 比特币的P2P网络 153
7.2.1 点对点的钱包节点分类 153
7.2.2 全节点的分布式存储 154
7.2.3 交易和区块在节点间的传播同步 156
7.3 比特币的发行机制 157
7.3.1 总量上限2100万的实现 157
7.3.2 打包区块的原理 158
7.3.3 矿池与矿工的关系 161
7.4 比特币的账号系统 163
7.4.1 私钥与公钥 163
7.4.2 签名信息与校验签名 165
7.4.3 脑口令 165
7.4.4 荣耀地址与批量地址 167
7.4.5 多重签名地址 168
7.4.6 隔离验证SW地址 177
7.5 比特币的生态系统 177
7.6 开发实施一个比特币存证应用 179
7.6.1 环境准备 179
7.6.2 示例程序 182
7.7 小结 184
第8章 以太坊 185
8.1 以太坊关键概念 186
8.2 以太坊的架构 188
8.2.1 以太坊数据模型 189
8.2.2 以太坊的应用架构 195
8.3 以太坊智能合约 197
8.3.1 合约类型和调用示例 197
8.3.2 合约编译和部署过程 199
8.3.3 Solidity高级合约语言 201
8.3.4 案例:构建、编译与部署一个智能合约 203
8.4 以太坊适用场景剖析 216
8.5 小结 217
第9章 超级账本Fabric 218
9.1 Fabric基础架构 219
9.1.1 架构概述 219
9.1.2 主要组件 220
9.1.3 P2P网络 221
9.1.4 通道 222
9.1.5 分布式账本 222
9.1.6 共识机制 223
9.1.7 智能合约(链码) 224
9.1.8 成员服务提供者 225
9.1.9 交易流程 225
9.2 架构详细原理 227
9.2.1 成员身份管理 227
9.2.2 通道的结构 232
9.2.3 链码 238
9.3 应用开发流程 245
9.3.1 前期准备 246
9.3.2 定义Fabric集群 246
9.3.3 启动Fabric集群 248
9.3.4 链码设计 248
9.3.5 链码部署 251
9.3.6 SDK简介 251
9.3.7 应用的API开发 254
9.3.8 界面开发 257
9.3.9 集成 260
9.3.10
前 言
Preface?前 言为什么要写这本书2017年8月1日,在比特大陆(Bitmain)的大力推动下,比特币社区发生了比特币现金(BCH)分叉事件。比特币一分为二,BCH改变了中本聪原先制定的规则,将区块大小从1MB扩容到了8MB。后续比特币社区陆续有20多个分叉项目出现。与此同时,ICO项目在国内层出不穷,各种空气币、资金盘等借区块链圈钱诈骗的事件不断出现。2017年9月4日,中国人民银行等七部委,宣布ICO非法,关停国内的场内虚拟货币交易所,并责令各类ICO项目清退募集的虚拟货币。可以说,BCH分叉事件标志着区块链行业的发展从“春秋时代”过渡到“战国时代”。
另一方面,透过币圈纷繁喧嚣的现象,我们也要看到,近年来区块链技术发展进入一个百舸争流、百家争鸣的时代。以比特币为代表的区块链1.0和以以太坊为代表的区块链2.0虽然在数字资产发行方面取得了很大成功,但在区块链应用落地方面却非其所长。业界涌现出很多项目,都号称是区块链3.0的代表,争相提出新的共识机制、分片机制、数据结构、跨链协议、链下计算、状态通道、隐私保护算法、治理机制和安全措施等新技术。新的理念,像区块链操作系统、区块链中间件、区块链网络、分布式Oracle层出不穷。自笔者2016年出版《区块链技术指南》一书以来,区块链技术和应用已经有很大的发展,业内需要有一本更新的,更加全面、翔实地反映当前区块链技术现状的技术参考书。
早酝酿这本书是在2017年的5月中旬,由北邮在线董事长于斌和主任张权召集了几个区块链专家,讨论联合出书的可行性。自那以后,参与写作的各位作者开始了为期一年的漫长业余写作。其中所遇到的困难远远超出了当初的想象。也经常有朋友问,为什么要在区块链正值风口的时候,选择写书这种既缓慢又没有多少收益的事情,特别是笔者“重操旧业”,再作冯妇,又花一年时间来写第二本区块链技术的书呢?细想原因有三:一是兴趣使然;二是两年来来自读者的鼓励和鞭策使我不能停下脚步;三是世界上总得有人做苦差,不可能每个人都可以分得美差。每每想到此处,心中也就释然。
在利用业余时间写作的这一年,与其说是写作区块链图书的过程,不如说是一个不断学习和思考区块链,不断质疑、校正、改变自己区块链思想的过程。区块链在这个科技飞速发展、社会热点风云变幻的时代,能持续得到这么广泛和持久的关注,原因在于其独特的技术属性产生的魅力。它的点到点对等网络、去中心化的设计、信息防伪防篡改的保障、基于算法的共识机制,由此衍生出的价值传递能力,按规则客观、忠实、自动履行合约的能力,隐私保护的能力,透明、历史可追溯的特点,使它不仅可以像传统技术那样只是提升生产效率,更重要的是可以改变生产关系。
因此社会很多不同阶层、不同行业、不同群体的人士都很大程度上对区块链感兴趣,原因是从区块链中看到了他们的理想工具。监管机构和执法机构看到了区块链加强监管、追踪证据的可能性;技术社区看到了技术创新的一个新方向;IT从业人员看到职业发展的新方向;创业者看到了创业的新领域;投资者看到了致富的新捷径;知识产权保护者看到了区块链确权、存证、维权的前景;反数据垄断者看到了区块链的防止大平台垄断的希望;制度设计者和管理者看到了降低信任成本从而降低交易成本的潜力;改革者看到了用区块链来革除弊端,并在数字经济时代重构组织架构、重塑生产关系的前景。
所有这些扮演不同角色,怀揣不同目的和想法的群体都不约而同地关注区块链,因此可以想象,区块链领域是多么热闹。这里面会有真知、洞见;也有炒作、夸大、神化;甚至有歪曲、抹黑。没有先入为主的广大读者群体,希望看到的是一本还原区块链技术本质,不加修饰、点缀,甚至不掺杂主观思想的纯技术书籍。这也是笔者在写作过程中才发现的一个写作驱动点。
但从另一方面来看,每个区块链的观察者或从业者,都会有自己角度的观察和解读,甚至提炼成的观点和思想。这些观点和思想需要讨论,需要碰撞,需要形成共识。因此,笔者也愿借本书前言一隅,谈谈自己对区块链的看法。
笔者认为,从实质上看,区块链是一个带有共识机制的分布式计算机网络,而共识的结果形成一个不可篡改的档案库。共识机制是一套协议,也是一套规则。在这个分布式的计算机网络中,大部分节点都需要遵守这套规则。如果不是这样,这个区块链系统就不能正常工作。要保证系统能正常工作,共识机制的设计就很重要。它必须能激励参与节点遵守规则,同时好能惩罚不遵守规则的节点。需要共识的是每个节点中在某个时间点的状态,也就是说形成公认的、确定性的状态。在这里,可以把节点抽象成一个计算机科学里的概念——有限状态机(英文为Finite State Machine或Automata)。有限状态机指的是响应外界特定触发条件,并按一定规则做状态转换的抽象机器。例如我们日常所见的自动柜员机(ATM)就是一个有限状态机。它根据输入的指令,使系统内部发生相应的状态变化。以取钱为例,从等待输入到减少库存钞票、输出钞票,再回到等待输入等一系列状态变化。在ATM的这个例子中,系统变化的规则是由后台中心化的银行核心
另一方面,透过币圈纷繁喧嚣的现象,我们也要看到,近年来区块链技术发展进入一个百舸争流、百家争鸣的时代。以比特币为代表的区块链1.0和以以太坊为代表的区块链2.0虽然在数字资产发行方面取得了很大成功,但在区块链应用落地方面却非其所长。业界涌现出很多项目,都号称是区块链3.0的代表,争相提出新的共识机制、分片机制、数据结构、跨链协议、链下计算、状态通道、隐私保护算法、治理机制和安全措施等新技术。新的理念,像区块链操作系统、区块链中间件、区块链网络、分布式Oracle层出不穷。自笔者2016年出版《区块链技术指南》一书以来,区块链技术和应用已经有很大的发展,业内需要有一本更新的,更加全面、翔实地反映当前区块链技术现状的技术参考书。
早酝酿这本书是在2017年的5月中旬,由北邮在线董事长于斌和主任张权召集了几个区块链专家,讨论联合出书的可行性。自那以后,参与写作的各位作者开始了为期一年的漫长业余写作。其中所遇到的困难远远超出了当初的想象。也经常有朋友问,为什么要在区块链正值风口的时候,选择写书这种既缓慢又没有多少收益的事情,特别是笔者“重操旧业”,再作冯妇,又花一年时间来写第二本区块链技术的书呢?细想原因有三:一是兴趣使然;二是两年来来自读者的鼓励和鞭策使我不能停下脚步;三是世界上总得有人做苦差,不可能每个人都可以分得美差。每每想到此处,心中也就释然。
在利用业余时间写作的这一年,与其说是写作区块链图书的过程,不如说是一个不断学习和思考区块链,不断质疑、校正、改变自己区块链思想的过程。区块链在这个科技飞速发展、社会热点风云变幻的时代,能持续得到这么广泛和持久的关注,原因在于其独特的技术属性产生的魅力。它的点到点对等网络、去中心化的设计、信息防伪防篡改的保障、基于算法的共识机制,由此衍生出的价值传递能力,按规则客观、忠实、自动履行合约的能力,隐私保护的能力,透明、历史可追溯的特点,使它不仅可以像传统技术那样只是提升生产效率,更重要的是可以改变生产关系。
因此社会很多不同阶层、不同行业、不同群体的人士都很大程度上对区块链感兴趣,原因是从区块链中看到了他们的理想工具。监管机构和执法机构看到了区块链加强监管、追踪证据的可能性;技术社区看到了技术创新的一个新方向;IT从业人员看到职业发展的新方向;创业者看到了创业的新领域;投资者看到了致富的新捷径;知识产权保护者看到了区块链确权、存证、维权的前景;反数据垄断者看到了区块链的防止大平台垄断的希望;制度设计者和管理者看到了降低信任成本从而降低交易成本的潜力;改革者看到了用区块链来革除弊端,并在数字经济时代重构组织架构、重塑生产关系的前景。
所有这些扮演不同角色,怀揣不同目的和想法的群体都不约而同地关注区块链,因此可以想象,区块链领域是多么热闹。这里面会有真知、洞见;也有炒作、夸大、神化;甚至有歪曲、抹黑。没有先入为主的广大读者群体,希望看到的是一本还原区块链技术本质,不加修饰、点缀,甚至不掺杂主观思想的纯技术书籍。这也是笔者在写作过程中才发现的一个写作驱动点。
但从另一方面来看,每个区块链的观察者或从业者,都会有自己角度的观察和解读,甚至提炼成的观点和思想。这些观点和思想需要讨论,需要碰撞,需要形成共识。因此,笔者也愿借本书前言一隅,谈谈自己对区块链的看法。
笔者认为,从实质上看,区块链是一个带有共识机制的分布式计算机网络,而共识的结果形成一个不可篡改的档案库。共识机制是一套协议,也是一套规则。在这个分布式的计算机网络中,大部分节点都需要遵守这套规则。如果不是这样,这个区块链系统就不能正常工作。要保证系统能正常工作,共识机制的设计就很重要。它必须能激励参与节点遵守规则,同时好能惩罚不遵守规则的节点。需要共识的是每个节点中在某个时间点的状态,也就是说形成公认的、确定性的状态。在这里,可以把节点抽象成一个计算机科学里的概念——有限状态机(英文为Finite State Machine或Automata)。有限状态机指的是响应外界特定触发条件,并按一定规则做状态转换的抽象机器。例如我们日常所见的自动柜员机(ATM)就是一个有限状态机。它根据输入的指令,使系统内部发生相应的状态变化。以取钱为例,从等待输入到减少库存钞票、输出钞票,再回到等待输入等一系列状态变化。在ATM的这个例子中,系统变化的规则是由后台中心化的银行核心
评论
还没有评论。