区块链技术指南pdf扫描版
分享到:
区块链技术指南是一本区块链技术介绍及指导手册,由国内区块链领域专家邹均,张海宁,唐屹,李磊等共同编著。本书从技术层面全面揭示了区块链技术秘密,内容涵盖了区块链的基础概念、核心概念、架构、底层算法、应用开发、典型的区块链解决方案、常见问题等读者关心的技术与应用,为读者进行区块链实践展示了一个全景图,是区块链学习、研究、开发的好帮手,非常适合每一个架构师下载阅读。
张海宁:VMware中国研发中心云原生应用首席架构师,西蒙弗雷泽大学计算机科学硕士,多年软件全栈开发经验,Harbor企业级容器Registry开源项目负责人,Cloud.Foundry中国社区早的技术布道师之一,国内早的iOS开发者。在VMware公司先后负责开源PaaS平台Cloud.Foundry、大数据虚拟化、软件定义存储VSAN等领域的技术布道和解决方案推广。目前着重关注区块链、容器和云计算等领域的研究和开发工作。之前曾担任IBM软件工程师、Sun公司解决方案架构师等职务。
唐屹:广州大学教授、理学博士,专注于区块链安全与应用、网络信息安全、分布式计算等,为国外知名安全公司开发过椭圆曲线密码软件,获密码科技进步二等奖(省部级)。主持或参与完成多项自然科学基金与人才计划等重点项目。
李磊:合肥工业大学副教授,Macquarie大学博士。擅长数据挖掘、社会计算、智能计算。获2011年澳洲优博士论文提名,并多次担任IEEE国际会议的程序委员会委员及组织者。在社会计算和区块链等领域发表论文40余篇,被引用350余次。
刘天喜:深圳拓邦股份有限公司总经理助理,高级工程师、北京大学博士。在移动通信、集成电路、移动互联网、物联网等领域深耕多年,擅长技术产业研究、行业分析和战略规划,主导或参与中国工程院、中央网信办、工信部、国资委等十余项产业研究课题。发表学术论文10余篇。 陈晖:区块链PPk开源项目发起人和主要开发者、巴比特网站专栏作者与区块链技术版版主。对网络与通信技术有深入实践与研究,十余年的软件研发和项目管理经验。通过深度实践以比特币为代表的数字加密货币领域,率先提出“区块链网络通信”将大化发挥区块链革命性价值的观点,并着力以开放开源项目的形式推动区块链与网络通信领域融合的技术创新和应用发展。
曲烈:Macquarie大学博士,曾任Macquarie大学研究员、助教。从事信息安全、密码学、区块链、服务计算以及信息系统等领域的研究。多次在国际知名会议和期刊发表论文,并受邀宣讲。
郑晓明:中国电信云计算分公司工程师、Macquarie大学博士,专注于云计算、云存储、监控系统、推荐系统、模式识别等,近期研究区块链相关技术。
系统讲解区块链核心概念、架构、底层算法、应用开发、典型项目与应用、常见问题等读者最为关心的技术与应用
第一部分为基础和入门(第1~2章),着重是区块链入门介绍,并讲解区块链基础,包括区块链的概念、种类、比特币交易、区块链的一些基础概念等,为后面深入介绍区块链技术做铺垫。
第二部分为架构和技术篇(第3~10章):详细讲解了以下方面。
区块链1.0/2.0/3.0架构,以及互联链架构属性与特点剖析,做到宏观理解与认识。
区块链基于的密码学原理和典型的算法,了解区块链开发安全之道。
区块链中常用的共识算法与作用,了解区块链价值传递与弱中心化之基石。
比特币开发指南,帮助初学者入门。
以太坊上的智能合约开发要领,为以后应用打下基础。
HyperLedger开源项目及其架构,掌握主流的项目与应用。
区块链上常见的问题,包括TheDAO攻击的源码级分析。
典型解决方案:以闪电网络为主的支付方案;以标识登记为主的开源ODIN解决方案。
第三部分为回顾和展望(第11章),从架构变革的角度探讨IT发展的原动力,并提供对区块链对未来IT发展的一些展望。
序一:什么是区块链
序二:区块链——未来已来,只是尚未流行
序三:区块链——连接虚拟与现实
序四:区块链——转型之擎
前言
第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
1900年9月8日,一场4级强度的飓风横扫德克萨斯州的加尔维斯顿。这个位于墨西哥湾的岛城,靠近德克萨斯海岸,在灾难来临前拥有37?000人口和光明的经济前景。飓风猛烈攻击了这个毫无防备的低海拔城市,给该市带来了巨大的毁坏。飓风风速为每小时225千米,毁掉了3600座建筑,使占整个城市3/4的12个街区彻底消失,死亡人数为8000~10?000人。是迄今为止,美国历史上死亡人数最多的自然灾害。
而2016年8月2日在中国华南沿海登录的“妮妲”台风,风力14级,最高风速每小时151.2千米,台风过境的广东、广西、湖南、贵州、云南5省(自治区),虽然也造成了重大经济损失,但在人员伤亡统计报告中,只有1人失踪。
这两次自然灾害的结果如此不同,归功于人类掌握了计算这个神奇工具。在妮妲形成过程中,美国、日本、中国气象监控部门就不断跟踪,通过监控数据,气象数学模型和强大的计算能力,对台风进行了准确的预报和预警。在台风到来前,有关部门做了积极准备,7.6万人得以紧急转移安置,使得损失得以降到最低。
今天,IT已经渗透到各行各业,人们已经能近距离接触无人驾驶、机器人、虚拟现实(Virtual.Reality)、增强现实(Augmented.Reality)等先进技术,当人们在享受IT给人们生活带来的各种便利和好处的时候,也日益感受到来自不当使用科技所带来的挑战。例如,国内日益猖獗的电信诈骗,全球范围内黑客的攻击和安全勒索,以及未来基因技术和AI(人工智能)技术给人类所带来的伦理、生活和工作方面的全方位冲击,都使得有识之士开始思考如何应对科技发展所带来的风险。
一直以来,笔者对计算技术有一种既感恩又敬畏的情结。首先感恩我们的时代,计算技术的发展使我们避过很多前人无法避过的灾难;但高速发展的计算技术必然导致机器的智能超过人类自身,因此而产生的未来不确定性也使笔者的敬畏之心油然而生。
笔者也一直有一个预感,未来可能需要针对IT,特别是与业务结合紧密的云计算和智能设备建立监管、问责的机制。笔者的意思不完全是对从事IT或智能设备的人进行监管问责,甚至要考虑对智能设备进行自动问责。这个看似荒谬的想法促使笔者选择了云计算的问责机制(Accountability in Cloud Services)作为博士研究方向。
所谓云计算的问责机制(Accountability),指的是在云计算架构中,能建立一个自动化的问责机制。该机制包括形式化的标准服务合同定义,服务合同的发布,服务合同执行的监控,合同违约方的自动发现,违约方的罚则和执行,以及合同双方争议的仲裁。举个例子来说,今天公有云的提供商,都没有提供能让电脑理解的云服务合同。合同双方的责任、义务和权利没有精确的界定;云服务提供商的服务好坏,是否遵从合同,都没有自动化的方法去检测;服务故障责任也没有办法界定;出现争议也只能靠人工去解决。而云计算的问责机制,旨在建立一个自动化的体系来让电脑自动规范电脑的行为。
可想而知,这个研究课题非常有挑战。在博士研究的过程中,笔者也走了很多弯路,一直没有找到好的解决方法,直到三年前接触到比特币,突然意识到区块链技术是提供问责机制的最理想平台。这是因为区块链技术中的防伪、防篡改、交易可追溯、数字签名和智能合约技术提供了一个公正、可问责(Accountable)、自动执行的技术平台
基础。
但是区块链目前还停留在概念炒作阶段,很多关注点还停留在金融应用,特别是虚拟货币方面的应用。笔者认为,区块链未来可能最适合作智能设备的“警察”,为物联网和智能设备的自治管理提供一个基础平台。区块链技术应该推广应用到除金融外的行业,因此萌生了写这本书的念头,作为博士研究工作的一个延续。
而写这本书的另一个原因,也是深感在学习区块链技术过程中碰到的参考资料不足的痛苦,希望能整理过去的学习所得,对区块链初学者有所帮助。
从2008年中本聪发表比特币白皮书算起,区块链技术才走过短短8年的时间。虽然区块链1.0、2.0和3.0的架构理念已经提出并得到一定程度上的认可,但区块链的技术发展仍然处于初级阶段,区块链的应用还刚起步,成熟的区块链应用除了比特币系统,还寥寥无几。在这种情况下写关于区块链的书籍,其实面临一个两难境况。一是区块链的技术变化快,像个移动的靶子;可供参考的资料又少,要准确把握一个快速变化的技术非常困难,而且受限于写笔者的水平,实践经验,写出来的书难免有很多错误,弄不好会贻笑大方。而另一方面,正因为变化快,资料少,广大区块链技术爱好者又渴望能找到一本对他们学习、理解、掌握区块链架构和技术有所帮助的书。
目前在市场上的区块链书籍大致分为两类:一类是以梅兰妮·斯万(Melanie.Swan)的《区块链:新经济蓝图及导读》为代表的,谈区块链对整个宏观层面所带来的革命性影响的战略性书籍;一类是以安德鲁·安东普洛斯(Andreas.M.Antonpulos)的《精通比特币》,以及普林斯顿大学以阿文·拿瑞延南(Arvind.Narayanan)为首编著的《比特币和密码学技术》为代表的专注于比特币的技术性书籍。这些书籍满足了目前市场上一部分对区块链在行业中的应用有兴趣的偏业务的人士,以及对比特币技术有兴趣的偏技术的人士的需求。
在这两类书籍所覆盖的市场中,其实还有一个很大的空白。我们发现,在对整个区块链架构(包括区块链1.0、2.0和3.0)进行系统性剖析,包括对其中关键技术(密码学、共识算法)等进行系统性论述,对不同的区块链架构形式(联盟链、公共链、私有链、侧链、多链、互联链等)进行系统性介绍的书好像还没有。而这样的书对理解、普及区块链技术,推动区块链应用落地可能会有所帮助。因此,与其等待这样的书籍出现,不如自己行动,为区块链技术的推广尽绵薄之力。笔者也就自不量力,把可能被同行笑话的风险置之脑后,鼓起勇气集合几个对区块链着迷、志同道合的朋友,在条件不成熟,时间比较仓促的情况下,经过不少不眠之夜的努力,克服重重困难,特别是在机械工业出版社华章分社编辑高婧雅的大力协助下,完成了该书。
本书的缺点是显而易见的。
一是因资料匮乏、技术变化快而难免出现技术错误。因此,本书的目的,主要是抛砖引玉,欢迎读者多提宝贵意见,争取在下一版本能纠正大部分的错误,不断完善、提升本书的质量。
二是缺少应用案例。其实目前网上的应用案例也有不少,但是我们认为,如果只是拿别人在网上的案例加工修改,从深度、广度方面都经不起推敲,起不了真正案例的作用。除非由真正落地该应用案例的主要负责人来写,才能使读者有真正的收获。受限于我们的人脉圈子和条件,目前只能请到PPKpub.org开源社区组织者陈晖先生来写一个区块链在标识注册方面的应用案例。在此鸣谢陈晖先生的大力支持,将来也欢迎有更多的区块链应用的领军团队提供应用案例,在未来更新的版本中补上在应用案例方面的
短板。
本书特色
1)和目前市场上主流的区块链书籍强调区块链去中心化的概念,以及对业界带来的革命性影响不同,本书主要是从技术的角度,介绍区块链的基础概念,特别是对区块链的架构进行了详细的剖析。
2)对区块链的关键技术,包括区块链架构(1.0、2.0、3.0)、密码学和共识算法等做了一个详尽的介绍。
3)提供了比特币开发指南,通过以太坊智能合约开发来帮助初学者入门。本书也用专门一章来讨论区块链的常见问题,包括对近期发生的DAO攻击事件,都有详细的分析。
4)在区块链技术落地方面,本书也提供比较典型的区块链解决方案,包括支付和标识登记方面的解决方案。
5)以独特的架构演进对IT发展的影响为切入点,给读者展示一个全新观察整个IT历史的视角,并在这个视角下探讨区块链技术在未来IT发展中的影响和地位。
本书中一些实操的例子和章节,比较适合区块链初学者和程序员,可以成为区块链入门的书;架构剖析和深入分析方面的章节,比较适合IT架构师,以及区块链技术爱好者来深入了解区块链架构特点和技术细节,对设计区块链的解决方案有所帮助;解决方案和常见问题章节有助于区块链从业人员全面了解区块链应用落地方面的情况。最后一章是从架构视角对IT发展的一些观察,仅供喜爱思考的IT从业者参考。
读者对象
区块链从业者
IT架构师
区块链应用开发人员
对区块链技术感兴趣的人员
如何阅读本书
本书分为三大部分,共11章。
第一部分介绍基础和入门,包括以下2章内容。
第1章 本书的开篇,首先介绍区块链的定义和特点,并简单介绍了区块链的主要类型,然后通过介绍购买、存储和交易比特币等实际使用场景来让读者对区块链有所体验,然后再探讨一些关于区块链的常见问题。
第2章 介绍区块链的基础概念,为后面深入介绍区块链技术做铺垫。
第二部分介绍架构和核心技术,包括以下8章内容:
第3章 详细介绍区块链1.0、2.0、3.0典型架构,同时介绍了互联链的概念和架构。
第4章 详细介绍了区块链涉及的密码学原理和典型的算法。
第5章 介绍了在区块链架构中常用的共识算法。
第6章 提供比特币开发指南,通过实际案例来帮助初学者入门。
第7章 提供以太坊上的智能合约开发指南,帮助初学者掌握智能合约的开发要领。
第8章 详细介绍HyperLedger开源项目及其架构。
第9章 讨论区块链上常见的问题,包括最近出现的The DAO攻击的源码级分析。
第10章 讨论区块链上的典型解决方案,一个是以闪电网络为主的支付方案,另一个是以标识登记为主的开源ODIN解决方案。
第三部分为回顾和展望,即第11章,主要回顾IT架构演进历史并展望未来区块链对IT发展的影响。
勘误和支持
由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎通过微信或邮件进行讨论。你可以通过微信、微博,或者发送邮件到邮箱联系到我,期待能够得到你们的真挚反馈,在技术之路上互勉共进。
区块链技术指南禁用于商业用途!如果您喜欢《区块链技术指南》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
区块链技术指南作者简介:
邹均:中关村区块链产业联盟专家、服务合约(Service.Contract)方向博士,关注与实践区块链技术与应用。擅长云计算、大数据、软件定义存储。现为海纳云CTO,曾任IBM澳洲金融行业首席软件架构师、多个云计算公司高管,是融智北京高端外国专家。在国际会议期刊发表论文20余篇,获2015年澳中校友会ICT和媒体类别杰出校友奖,区块链相关论文获2016年IEEEICWS佳博士论文奖。张海宁:VMware中国研发中心云原生应用首席架构师,西蒙弗雷泽大学计算机科学硕士,多年软件全栈开发经验,Harbor企业级容器Registry开源项目负责人,Cloud.Foundry中国社区早的技术布道师之一,国内早的iOS开发者。在VMware公司先后负责开源PaaS平台Cloud.Foundry、大数据虚拟化、软件定义存储VSAN等领域的技术布道和解决方案推广。目前着重关注区块链、容器和云计算等领域的研究和开发工作。之前曾担任IBM软件工程师、Sun公司解决方案架构师等职务。
唐屹:广州大学教授、理学博士,专注于区块链安全与应用、网络信息安全、分布式计算等,为国外知名安全公司开发过椭圆曲线密码软件,获密码科技进步二等奖(省部级)。主持或参与完成多项自然科学基金与人才计划等重点项目。
李磊:合肥工业大学副教授,Macquarie大学博士。擅长数据挖掘、社会计算、智能计算。获2011年澳洲优博士论文提名,并多次担任IEEE国际会议的程序委员会委员及组织者。在社会计算和区块链等领域发表论文40余篇,被引用350余次。
刘天喜:深圳拓邦股份有限公司总经理助理,高级工程师、北京大学博士。在移动通信、集成电路、移动互联网、物联网等领域深耕多年,擅长技术产业研究、行业分析和战略规划,主导或参与中国工程院、中央网信办、工信部、国资委等十余项产业研究课题。发表学术论文10余篇。 陈晖:区块链PPk开源项目发起人和主要开发者、巴比特网站专栏作者与区块链技术版版主。对网络与通信技术有深入实践与研究,十余年的软件研发和项目管理经验。通过深度实践以比特币为代表的数字加密货币领域,率先提出“区块链网络通信”将大化发挥区块链革命性价值的观点,并着力以开放开源项目的形式推动区块链与网络通信领域融合的技术创新和应用发展。
曲烈:Macquarie大学博士,曾任Macquarie大学研究员、助教。从事信息安全、密码学、区块链、服务计算以及信息系统等领域的研究。多次在国际知名会议和期刊发表论文,并受邀宣讲。
郑晓明:中国电信云计算分公司工程师、Macquarie大学博士,专注于云计算、云存储、监控系统、推荐系统、模式识别等,近期研究区块链相关技术。
区块链技术指南编辑推荐:
区块链专家联袂推荐,资深区块链践行者联合撰写,从技术层面全面解密区块链技术系统讲解区块链核心概念、架构、底层算法、应用开发、典型项目与应用、常见问题等读者最为关心的技术与应用
区块链技术指南内容简介:
本书分为三大部分,共计11章内容。第一部分为基础和入门(第1~2章),着重是区块链入门介绍,并讲解区块链基础,包括区块链的概念、种类、比特币交易、区块链的一些基础概念等,为后面深入介绍区块链技术做铺垫。
第二部分为架构和技术篇(第3~10章):详细讲解了以下方面。
区块链1.0/2.0/3.0架构,以及互联链架构属性与特点剖析,做到宏观理解与认识。
区块链基于的密码学原理和典型的算法,了解区块链开发安全之道。
区块链中常用的共识算法与作用,了解区块链价值传递与弱中心化之基石。
比特币开发指南,帮助初学者入门。
以太坊上的智能合约开发要领,为以后应用打下基础。
HyperLedger开源项目及其架构,掌握主流的项目与应用。
区块链上常见的问题,包括TheDAO攻击的源码级分析。
典型解决方案:以闪电网络为主的支付方案;以标识登记为主的开源ODIN解决方案。
第三部分为回顾和展望(第11章),从架构变革的角度探讨IT发展的原动力,并提供对区块链对未来IT发展的一些展望。
区块链技术指南目录:
本书作者序一:什么是区块链
序二:区块链——未来已来,只是尚未流行
序三:区块链——连接虚拟与现实
序四:区块链——转型之擎
前言
第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
区块链技术指南前言/序言:
为什么要写这本书?1900年9月8日,一场4级强度的飓风横扫德克萨斯州的加尔维斯顿。这个位于墨西哥湾的岛城,靠近德克萨斯海岸,在灾难来临前拥有37?000人口和光明的经济前景。飓风猛烈攻击了这个毫无防备的低海拔城市,给该市带来了巨大的毁坏。飓风风速为每小时225千米,毁掉了3600座建筑,使占整个城市3/4的12个街区彻底消失,死亡人数为8000~10?000人。是迄今为止,美国历史上死亡人数最多的自然灾害。
而2016年8月2日在中国华南沿海登录的“妮妲”台风,风力14级,最高风速每小时151.2千米,台风过境的广东、广西、湖南、贵州、云南5省(自治区),虽然也造成了重大经济损失,但在人员伤亡统计报告中,只有1人失踪。
这两次自然灾害的结果如此不同,归功于人类掌握了计算这个神奇工具。在妮妲形成过程中,美国、日本、中国气象监控部门就不断跟踪,通过监控数据,气象数学模型和强大的计算能力,对台风进行了准确的预报和预警。在台风到来前,有关部门做了积极准备,7.6万人得以紧急转移安置,使得损失得以降到最低。
今天,IT已经渗透到各行各业,人们已经能近距离接触无人驾驶、机器人、虚拟现实(Virtual.Reality)、增强现实(Augmented.Reality)等先进技术,当人们在享受IT给人们生活带来的各种便利和好处的时候,也日益感受到来自不当使用科技所带来的挑战。例如,国内日益猖獗的电信诈骗,全球范围内黑客的攻击和安全勒索,以及未来基因技术和AI(人工智能)技术给人类所带来的伦理、生活和工作方面的全方位冲击,都使得有识之士开始思考如何应对科技发展所带来的风险。
一直以来,笔者对计算技术有一种既感恩又敬畏的情结。首先感恩我们的时代,计算技术的发展使我们避过很多前人无法避过的灾难;但高速发展的计算技术必然导致机器的智能超过人类自身,因此而产生的未来不确定性也使笔者的敬畏之心油然而生。
笔者也一直有一个预感,未来可能需要针对IT,特别是与业务结合紧密的云计算和智能设备建立监管、问责的机制。笔者的意思不完全是对从事IT或智能设备的人进行监管问责,甚至要考虑对智能设备进行自动问责。这个看似荒谬的想法促使笔者选择了云计算的问责机制(Accountability in Cloud Services)作为博士研究方向。
所谓云计算的问责机制(Accountability),指的是在云计算架构中,能建立一个自动化的问责机制。该机制包括形式化的标准服务合同定义,服务合同的发布,服务合同执行的监控,合同违约方的自动发现,违约方的罚则和执行,以及合同双方争议的仲裁。举个例子来说,今天公有云的提供商,都没有提供能让电脑理解的云服务合同。合同双方的责任、义务和权利没有精确的界定;云服务提供商的服务好坏,是否遵从合同,都没有自动化的方法去检测;服务故障责任也没有办法界定;出现争议也只能靠人工去解决。而云计算的问责机制,旨在建立一个自动化的体系来让电脑自动规范电脑的行为。
可想而知,这个研究课题非常有挑战。在博士研究的过程中,笔者也走了很多弯路,一直没有找到好的解决方法,直到三年前接触到比特币,突然意识到区块链技术是提供问责机制的最理想平台。这是因为区块链技术中的防伪、防篡改、交易可追溯、数字签名和智能合约技术提供了一个公正、可问责(Accountable)、自动执行的技术平台
基础。
但是区块链目前还停留在概念炒作阶段,很多关注点还停留在金融应用,特别是虚拟货币方面的应用。笔者认为,区块链未来可能最适合作智能设备的“警察”,为物联网和智能设备的自治管理提供一个基础平台。区块链技术应该推广应用到除金融外的行业,因此萌生了写这本书的念头,作为博士研究工作的一个延续。
而写这本书的另一个原因,也是深感在学习区块链技术过程中碰到的参考资料不足的痛苦,希望能整理过去的学习所得,对区块链初学者有所帮助。
从2008年中本聪发表比特币白皮书算起,区块链技术才走过短短8年的时间。虽然区块链1.0、2.0和3.0的架构理念已经提出并得到一定程度上的认可,但区块链的技术发展仍然处于初级阶段,区块链的应用还刚起步,成熟的区块链应用除了比特币系统,还寥寥无几。在这种情况下写关于区块链的书籍,其实面临一个两难境况。一是区块链的技术变化快,像个移动的靶子;可供参考的资料又少,要准确把握一个快速变化的技术非常困难,而且受限于写笔者的水平,实践经验,写出来的书难免有很多错误,弄不好会贻笑大方。而另一方面,正因为变化快,资料少,广大区块链技术爱好者又渴望能找到一本对他们学习、理解、掌握区块链架构和技术有所帮助的书。
目前在市场上的区块链书籍大致分为两类:一类是以梅兰妮·斯万(Melanie.Swan)的《区块链:新经济蓝图及导读》为代表的,谈区块链对整个宏观层面所带来的革命性影响的战略性书籍;一类是以安德鲁·安东普洛斯(Andreas.M.Antonpulos)的《精通比特币》,以及普林斯顿大学以阿文·拿瑞延南(Arvind.Narayanan)为首编著的《比特币和密码学技术》为代表的专注于比特币的技术性书籍。这些书籍满足了目前市场上一部分对区块链在行业中的应用有兴趣的偏业务的人士,以及对比特币技术有兴趣的偏技术的人士的需求。
在这两类书籍所覆盖的市场中,其实还有一个很大的空白。我们发现,在对整个区块链架构(包括区块链1.0、2.0和3.0)进行系统性剖析,包括对其中关键技术(密码学、共识算法)等进行系统性论述,对不同的区块链架构形式(联盟链、公共链、私有链、侧链、多链、互联链等)进行系统性介绍的书好像还没有。而这样的书对理解、普及区块链技术,推动区块链应用落地可能会有所帮助。因此,与其等待这样的书籍出现,不如自己行动,为区块链技术的推广尽绵薄之力。笔者也就自不量力,把可能被同行笑话的风险置之脑后,鼓起勇气集合几个对区块链着迷、志同道合的朋友,在条件不成熟,时间比较仓促的情况下,经过不少不眠之夜的努力,克服重重困难,特别是在机械工业出版社华章分社编辑高婧雅的大力协助下,完成了该书。
本书的缺点是显而易见的。
一是因资料匮乏、技术变化快而难免出现技术错误。因此,本书的目的,主要是抛砖引玉,欢迎读者多提宝贵意见,争取在下一版本能纠正大部分的错误,不断完善、提升本书的质量。
二是缺少应用案例。其实目前网上的应用案例也有不少,但是我们认为,如果只是拿别人在网上的案例加工修改,从深度、广度方面都经不起推敲,起不了真正案例的作用。除非由真正落地该应用案例的主要负责人来写,才能使读者有真正的收获。受限于我们的人脉圈子和条件,目前只能请到PPKpub.org开源社区组织者陈晖先生来写一个区块链在标识注册方面的应用案例。在此鸣谢陈晖先生的大力支持,将来也欢迎有更多的区块链应用的领军团队提供应用案例,在未来更新的版本中补上在应用案例方面的
短板。
本书特色
1)和目前市场上主流的区块链书籍强调区块链去中心化的概念,以及对业界带来的革命性影响不同,本书主要是从技术的角度,介绍区块链的基础概念,特别是对区块链的架构进行了详细的剖析。
2)对区块链的关键技术,包括区块链架构(1.0、2.0、3.0)、密码学和共识算法等做了一个详尽的介绍。
3)提供了比特币开发指南,通过以太坊智能合约开发来帮助初学者入门。本书也用专门一章来讨论区块链的常见问题,包括对近期发生的DAO攻击事件,都有详细的分析。
4)在区块链技术落地方面,本书也提供比较典型的区块链解决方案,包括支付和标识登记方面的解决方案。
5)以独特的架构演进对IT发展的影响为切入点,给读者展示一个全新观察整个IT历史的视角,并在这个视角下探讨区块链技术在未来IT发展中的影响和地位。
本书中一些实操的例子和章节,比较适合区块链初学者和程序员,可以成为区块链入门的书;架构剖析和深入分析方面的章节,比较适合IT架构师,以及区块链技术爱好者来深入了解区块链架构特点和技术细节,对设计区块链的解决方案有所帮助;解决方案和常见问题章节有助于区块链从业人员全面了解区块链应用落地方面的情况。最后一章是从架构视角对IT发展的一些观察,仅供喜爱思考的IT从业者参考。
读者对象
区块链从业者
IT架构师
区块链应用开发人员
对区块链技术感兴趣的人员
如何阅读本书
本书分为三大部分,共11章。
第一部分介绍基础和入门,包括以下2章内容。
第1章 本书的开篇,首先介绍区块链的定义和特点,并简单介绍了区块链的主要类型,然后通过介绍购买、存储和交易比特币等实际使用场景来让读者对区块链有所体验,然后再探讨一些关于区块链的常见问题。
第2章 介绍区块链的基础概念,为后面深入介绍区块链技术做铺垫。
第二部分介绍架构和核心技术,包括以下8章内容:
第3章 详细介绍区块链1.0、2.0、3.0典型架构,同时介绍了互联链的概念和架构。
第4章 详细介绍了区块链涉及的密码学原理和典型的算法。
第5章 介绍了在区块链架构中常用的共识算法。
第6章 提供比特币开发指南,通过实际案例来帮助初学者入门。
第7章 提供以太坊上的智能合约开发指南,帮助初学者掌握智能合约的开发要领。
第8章 详细介绍HyperLedger开源项目及其架构。
第9章 讨论区块链上常见的问题,包括最近出现的The DAO攻击的源码级分析。
第10章 讨论区块链上的典型解决方案,一个是以闪电网络为主的支付方案,另一个是以标识登记为主的开源ODIN解决方案。
第三部分为回顾和展望,即第11章,主要回顾IT架构演进历史并展望未来区块链对IT发展的影响。
勘误和支持
由于笔者的水平有限,编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎通过微信或邮件进行讨论。你可以通过微信、微博,或者发送邮件到邮箱联系到我,期待能够得到你们的真挚反馈,在技术之路上互勉共进。
免责声明:
区块链技术指南来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。区块链技术指南禁用于商业用途!如果您喜欢《区块链技术指南》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
展开更多
区块链技术指南pdf扫描版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: