深入理解以太坊pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:深入理解以太坊pdf/doc/txt格式电子书下载
推荐语:
作者:王欣,史钦锋,程杰
出版社:机械工业出版社
出版时间:2019-01-01
书籍编号:30448132
ISBN:9787111614920
正文语种:中文
字数:234404
版次:1
所属分类:互联网+-电子商务
版权信息
书名:深入理解以太坊
作者:王欣 史钦锋 程杰
ISBN:9787111614920
版权所有 · 侵权必究
前言
2017年年初,IBM宣布在德国慕尼黑设立物联网事业部,旨在围绕区块链、安全,通过Watson物联网技术,从嵌在机器、汽车、无人驾驶飞机、滚珠轴承、设备部件甚至医院中的数十亿传感器中获取实时数据,构建全新的物联网。
身处物联网行业的我,隐约感觉到区块链将会成为新的研究方向,为传统行业带来新的助力。随后,我查阅了大量相关资料,想尽可能多地了解区块链。一个偶然的机会,我结识了南京一家区块链初创公司的技术负责人,并受邀加入他们的团队,开始全身心投入区块链行业中。
我的初始工作围绕以太坊开源项目展开,范围包括白皮书、黄皮书、源码、工具、共识算法、智能合约、雷电网络、零知识证明等。短短几个月的时间,我学习到的新知识比过去几年加起来还要多。没过几个月,本书的另外两位作者史钦锋和程杰也加入团队,并一起成立了以太坊技术研究小组。在大家的共同努力下,我们从理论到实践,完整地总结出一套借助以太坊技术实现区块链应用落地的技术方案。
一路走来,我们深深感受到区块链理论涉及的概念之多,技术涉及的门类之广。这对于一个初学者来说实属不易。另外,一些不法分子利用区块链技术创新之名,行招摇撞骗、掳掠钱财之实。作为相关从业人员,我们有能力,也有必要尽自己的微薄之力,将自己所学和心得体会用文字记录下来,让广大的读者客观理性地认识这个新事物。如若读者能就其中一两点产生共鸣,激发创新、创造的热情,那实在是意外的收获。
本书仅仅针对以太坊开源项目。回想笔者的工作经历,虽然也接触过其他项目,但总体比较来看,以太坊是最适合初学者入门的技术栈。因为以太坊技术社区在全球范围最完善,参考资料多;以太坊核心团队最具备极客精神,开发速度快;以太坊主网上线运行时间长,经历了最严苛的安全性检验;以太坊的目标最远大,它要成为世界的计算机。
本书共分11章。书中不仅归纳总结了以太坊项目的整体现状,也对未来的发展和技术走向进行了总体预测和分析。
第1章 从比特币说起,谈以太坊项目的起源,对项目整体情况做了概述。
第2章 从理论入手,介绍了以太坊知识体系的诸多概念,比如密码学、共识和图灵完备特性。
第3章 从架构入手,介绍了以太坊设计的整体思路、模块划分以及核心功能实现。
第4章 讨论共识,共识是区块链最核心的问题,共识的设计也是区块链的难点所在。从PoW到PoA,再到PoS,我们比较了各种共识算法的优缺点,也分析了不同算法的适用场景。
第5~7章 围绕智能合约展开讨论。智能合约是以太坊的最大创新点,它将区块链变成了可以服务任何行业、任何场景的可编程平台。从开发步骤、技术原理到底层实现,覆盖了智能合约软件支持的方方面面。对于偏向区块链技术应用的开发者,我们建议将学习重点放在第5章;对于偏向底层的区块链协议开发者,相信第6、7章会带给你不少收获。
第8章 指导读者熟练掌握以太坊周边的工具,在不开发代码的情况下,完成与以太坊网络的交互。
第9章 介绍了以太坊技术的企业级应用以及企业以太坊联盟的标准化进展。
第10章 对跨链方案进行了探讨。由于目前跨链技术还不成熟,本章仅对大体的技术方向做了介绍。跨链也被视为后以太坊时代的区块链技术热点,将引领区块链3.0时代的到来。
第11章 分析了以太坊现阶段面临的发展瓶颈,并对可能的解决方案进行了展望。
本书内容包罗万象,有项目概述、架构设计、实现细节和开发方法,适合对区块链理论和实现感兴趣的读者阅读,也适合作为技术手册,供读者遇到具体问题时查阅参考。由于区块链技术发展迅速,水平有限,书中难免存在错误或不当之处,希望得到广大读者的批评指正。后续,我们将通过线上专栏(https://zhuanlan.zhihu.com/c_210509549)的方式,保持和读者的沟通,并针对大家感兴趣的话题进行讨论。
感谢带领我进入区块链行业的技术大咖Denny,感谢曾经一起工作的同事,也感谢为本书出版费尽心血的华章出版社的各位老师。在本书的编写过程中,占用了很多陪伴家人的时间,但得到了家人充分的鼓励与支持,深深地感谢他们。
王欣
本章总体介绍了以太坊技术的历史背景、发展过程和技术特性。1.1节从比特币的起源引入区块链的概念及其商业价值;1.2节描述了以太坊项目的历史发展过程;1.3节重点分析了以太坊的核心技术——智能合约和PoS共识算法;1.4节对以太坊的架构进行了总体概述;1.5节介绍了以太坊社区的协作方式;1.6节回顾了以太坊的路线图和现阶段的发展目标;最后是本章小结。
1.1 区块链起源
2008年,通货膨胀造成的经济危机在全球范围爆发。当人们还在为货币的未来而感到担忧时,一个叫“中本聪”(Satoshi Nakamoto)的人悄无声息发表的一篇名为《比特币:一种点对点的电子现金系统》的论文引起了金融界的广泛关注。文中提出一种点对点的数字货币,该货币可以独立于任何国家、任何机构之外存在,不受第三方机构管束,且因其数字算法的特殊性,很难被不法分子伪造,这就是后来被人们所熟知的“比特币”。
中本聪的论文中首次出现了区块链(Blockchain)的概念,并给出通过时间戳和工作量证明(Proof of Work)共识机制解决双花(Double Spending)和拜占庭将军问题的设计思路,即保证同一笔比特币不会同时出现在两个地址。与此同时,所有节点都可以让其他节点接收到自己的真实意图,保持行动一致。2009年,理论变成了现实,比特币网络成功创建,“创世区块”也正式诞生。
为了避免出现双花问题,一笔交易的接收人必须能够证明在当前交易发生之前,交易发起人并没有将同一笔交易发给另外一个人。这样就要求接收人知道所有的交易记录。因此,在区块链上所有交易必须公开,并且这些交易数据被网络证明是真实有效的。
区块链中每个包含时间戳的交易数据块被计算出hash值,同时该hash值被存入下一包含时间戳的交易数据块中,如此反复,生成链式数据结构(如图1-1所示)。这样,一旦下一个区块确认生成,之前所有的区块信息(包括交易的内容和交易顺序)都不可修改,否则将导致hash验证失败。区块生成,也就是我们通常所说的记账,在比特币网络中通过工作量证明保证。当网络中多个节点同时生成最新区块时,长度最长的链会作为选择结果,因为最长的链代表投入算力最多,最能代表大多数节点的意志。所以多个最新区块的信息将被保留一段时间,直到判断出哪一条链更长。
图1-1 区块链的哈希链式结构
一个节点必须拥有网络中51%以上的算力才有能力篡改一个区块并重新生成后面所有的区块,它还需要保证后面区块产生的速度比其他节点更快。在庞大的比特币网络中,能拥有如此惊人的算力几乎是不可能的。
我们看到比特币系统设计得非常精妙:没有中心化的管理方,数据很难被篡改,抗攻击能力强。回看历史,在比特币诞生之前,人们在这一领域不断探索,其中许多学术贡献也为比特币的成型铺平了道路。
·比特币实现的基于零信任基础且真正去中心化的分布式系统,其实是为了解决30多年前由Leslie Lamport等人提出的拜占庭将军问题,即将军中各地军队彼此取得共识、决定是否出兵的过程延伸至运算领域,设法建立具有容错特性的分布式系统,即使部分节点失效仍可确保基于零信任基础的节点达成共识,实现信息传递的一致性。
·工作量证明机制则是采用由Adam Back在1997年所发明的Hashcash算法,此算法依赖成本函数的不可逆特性,实现容易被验证但很难被破解的特性,最早被应用于过滤垃圾邮件。
·隐私安全技术可回溯到1982年David Chaum提出的注重隐私的密码学网路支付系统,之后David Chaum在1990年基于这个理论打造出不可追踪的eCash中心化网络。
·交易加密采用的椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA),可追溯回1985年Neal Koblitz和Victor Miller提出的椭圆曲线密码学(Elliptic curve cryptography,ECC)及加密算法。相较于RSA算法,采用ECC的好处在于可以使用较短的密钥达到相同的安全强度。到了1992年,由Scott Vanstone等人提出ECDSA。
·最后,再来看共识机制。1990年,Leslie Lamport提出具有高容错特性的数据一致性算法Paxos。1991年,Stuart Haber与W.Scott Stornetta提出用时间戳保证数字文件安全的协议。1998年,Wei Dai发表匿名的分散式电子现金系统B-money,引入工作量证明机制,强调点对点交易和不可窜改特性。然而B-money中并未采用Adam Back提出的Hashcash算法。同年,Nick Szabo发表去中心化的数字货币系统Bit Gold,参与者可贡献算力。到了2005年,Hal Finney提出可重复使用的工作量证明机制(Reusable Proofs of Work,RPOW),结合B-money与Adam Back提出的Hashcash演算法来创造数字货币。
综上所述,区块链是用分布式数据库识别、传播和记载信息的智能化对等网络,包含以下几个主要特性:
·分布式去中心化:区块链中每个节点和矿工都必须遵循同一记账交易规则,而这个规则是基于密码算法而不是信用,同时每笔交易需要网络内其他用户的批准,所以不需要一套第三方中介结构或信任机构背书。
·无须信任系统:区块链网络通过算法的自我约束,使任何恶意欺骗系统的行为都会遭到其他节点的排斥和抑制。参与人不需要信任任何人,但随着参与节点增加,系统的安全性反而增加,同时数据内容可以做到完全公开。
·不可篡改和加密安全性:区块链采取单向哈希算法,同时每个新产生的区块严格按照时间线形顺序推进,时间的不可逆性导致任何试图入侵篡改区块链内数据信息的行为都很容易被追溯,导致被其他节点排斥,从而限制相关不法行为。
区块链最重要的是解决了中介信用问题。在过去,两个互不认识的人要达成协作是很难的,必须要依靠第三方。比如支付行为,过去任何一次转账行为,必须要有银行或者支付宝这样的机构存在。但是通过区块链技术,通过比特币,人类第一次实现了在没有任何中介机构参与的情况下,完成双方可以互信的转账行为。这是区块链的重大突破。
并非所有区块链项目都会采用类似于比特币这样的“工作量证明”方式,这更多出现在早期的区块链项目中。如果采取其他证明机制,如“权益证明(Proof of Stake,PoS)”“股份授权证明机制(DPoS,Delegate Proof of Stake)”,都是不需要采取这样的挖矿方式。
区块链是比特币的底层技术,但其应用的真实价值远超过电子货币系统。我们认为比特币是区块链1.0系统,当通过智能合约(Smart Contract)实现货币以外的区块链应用时,即进入了区块链2.0系统。
1.2 以太坊发展之路
比特币是第一个可靠的去中心化解决方案。随后,人们的注意力开始迅速转向如何将比特币底层的区块链技术应用于货币以外的领域。以太坊就是这样一个开放的区块链平台。它与比特币一样,是由遍布全球的开发者合作构建的开源项目,不依赖任何中心化的公司或组织。但与比特币不同的是,以太坊更加灵活,可以为开发者带来更方便、更安全的区块链应用开发体验。
2013年底,以太坊的创始人Vitalik Buterin提出了让区块链本身具备可编程能力来实现任意复杂商业逻辑运算的想法,并随后发布了以太坊白皮书。白皮书中描述了包括协议栈和智能合约架构等内容的具体技术方案。2014年1月,在美国迈阿密召开的北美比特币大会上,Vitalik正式向外界宣布以太坊项目的成立。同年,Vitalik Buterin联合Gavin Wood和Jeffery Wilcke开始开发通用的、无须信任的下一代智能合约平台。2014年4月,Gavin发表了以太坊黄皮书,明确定义了以太坊虚拟机EVM的实现规范。随后,该技术规范被7种编程语言(C++、Go、Python、
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询