带你读《深入理解以太坊》之一:以太坊概述

本文涉及的产品
公网NAT网关,每月750个小时 15CU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 这是一本从原理和实践两个层面系统、深入讲解以太坊技术的专著,从设计理念、技术架构、共识算法、智能合约、以太坊虚拟机、开发工具、DApp开发、企业以太坊解决方案、跨链技术等近10个方面进行了详细讲解,既适合初学者系统学习以太坊的原理和应用开发,又适合有一定基础的开发者深入掌握以太坊的底层运行机制。

区块链技术丛书
点击这里查看第二章
点击这里查看第三章
深入理解以太坊
image.png
王欣 史钦锋 程杰 著

第1章

以太坊概述
本章将主要概述以太坊技术的历史背景、发展过程和技术特性。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 验证失败。区块生成,也就是我们通常所说的记账,在比特币网络中是通过工作量证明来保证的。当网络中多个节点同时生成最新区块时,长度最长的链会作为选择结果,因为最长的链代表投入算力最多,最能代表大多数节点的意志。所以多个最新区块的信息将被保留一段时间,直到判断出哪一条链更长。


image.png

一个节点必须拥有网络中 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)“股份授权证明机制”(Delegate Proof of Stake,DPoS),则不需要采取这样的挖矿方式。
区块链是比特币的底层技术,但其应用的真实价值远远超过电子货币系统。我们认为比特币是区块链 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、Java、JavaScript、Haskell 和 Rust)实现,获得了完善的开源社区支持。
在软件开发之外,发布一个新的数字货币及其底层区块链需要协调大量的资源,包括建立由开发者、矿工、投资人和其他干系人组成的生态圈。2014年6月,以太坊发布了以太币的预售计划,预售的资金由位于瑞士楚格的以太坊基金会经营管理。从2014年7月开始,以太坊进行了为期42天的公开代币预售,总共售出60,102,216个以太币,接收到比特币31,591个,折合市场价值18,439,086美元。该笔资金一部分用于支付项目前期法务咨询和开发代码的费用,其他部分则用于维持项目后续的开发。根据CoinTelegraph的报道,以太坊作为最成功的众筹项目之一,将会被载入史册。
在以太坊成功预售之后,开发工作由一个名为 ETH DEV 的非盈利组织进行管理, Vitalik Buterin、Gavin Wood 和 Jeffery Wilcke 出任总监职务。ETH DEV 团队的工作非常出色,频繁向开发社区提交技术原型(Proof-of-Concept)以用于功能评估,同时在讨论版发表了大量的技术文章介绍以太坊的核心思想。这些举措吸引了大量用户,同时也推动了项目自身的快速发展,为整个区块链领域带来了巨大的影响。时至今日,以太坊的社区影响力也丝毫没有减弱的趋势。
2014年11月,ETHDEV组织了DEVCON-0开发者大会。全世界以太坊社区的开发者聚集在德国柏林,对各种技术问题进行了广泛讨论。其中一些主要的对话和演示为后续的以太坊技术路线奠定了坚实的基础。
2015年4月,DEVgrants项目宣布成立。该项目为以太坊平台以及基于平台的应用项目开发提供了资金支持。几百名为以太坊做出贡献的开发者获得了相应的奖励。直到今天,这个组织还在发挥作用。
经历了2014年和2015年两年的开发,第9代技术原型测试网络Olympic开始公测。为鼓励社区参与,以太坊核心团队对于拥有丰富测试记录或成功侵入系统的开发者安排了重金奖励。与此同时,团队也邀请了多家第三方安全公司对协议的核心组件(以太坊虚拟机、网络和PoW共识)进行了代码审计。正因如此,以太坊的协议栈正在不断完善,各方面的功能也变得更加安全、可靠。
2015年7月30日,以太坊Frontier网络发布。开发者们开始在Frontier网络上开发去中心化应用,矿工开始加入网络进行挖矿。矿工一方面通过挖矿得到代币奖励,另一方面也提升了整网的算力,降低了被黑客攻击的风险。Frontier是以太坊发展过程中的第一个里程碑,虽然它在开发者心目中的定位是beta版本,但在稳定性和性能方面的表现其远远超出了任何人的期望,从而吸引了更多的开发者加入构建以太坊生态的行列。
2015年11月,DEVCON-1开发者大会在英国伦敦举行,在为期5天的会议内举办了100多项专题演示、圆桌会议和总结发言,共吸引了400多名参与者,其中包含开发者、学者、企业家和公司高管。具有代表性的是,包含UBS、IBM和微软在内的大公司也莅临现场并对项目展示了浓厚的兴趣。微软还正式宣布将在其Azure云平台上提供以太坊BaaS服务。通过这次盛会,以太坊真正让区块链技术成为整个行业的主流,同时也牢牢树立了其在区块链技术社区的中心地位。
2016年3月14日(π日),以太坊平台的第二个主要版本Homestead对外发布,其同时也是以太坊发布的第一个正式版本。它包括几处协议变更和网络设计变更,使网络进一步升级成为可能。Homestead在区块高度达到1,150,000时,系统会自动完成升级。Homestead引入了EIP-2、EIP-7和EIP-8在内的几项后向不兼容改进,所以其是以太坊的一次硬分叉。所有以太坊节点均需提前完成版本升级,从而与主链的数据保持同步。
2016年6月16日,DEVCON-2开发者大会在中国上海举行,会议的主题聚焦在智能合约和网络安全上。然而,出乎所有人意料之外的是,在会议的第二天发生了区块链历史上最严重的攻击事件。The DAO项目编写的智能合约由于存在重大缺陷而遭受黑客攻击,导致360万以太币资产被盗。最终通过社区投票决定在区块高度达到1,920,000时实施硬分叉,分叉后The DAO合约里的所有资金均被退回到众筹参与人的账户。众筹人只要调用withdraw方法,即可用DAO币换回以太币。The DAO 是人类尝试完全自治组织的一次艰难试验, 因为在技术上存在缺陷,理念上和现行的政治、经济、道德、法律等体系不能完全匹配,最终以失败告终。The DAO也为我们提供了很多可借鉴的经验,例如智能合约漏洞的处理,代码自治和人类监管之间的平衡等。
The DAO事件之后,以太坊的技术体系更加趋于完善。2017年年初,摩根大通、芝加哥交易所集团、纽约梅隆银行、汤森路透、微软、英特尔、埃森哲等20多家全球顶尖金融机构和科技公司成立企业以太坊联盟。2017年9月18日,以太坊开发团队开始测试“大都会”(Metropolis)版本的第一阶段:拜占庭分叉。2017年10月16日,主网在4,370,000区块高度成功完成拜占庭分叉。此次硬分叉将为智能合约的开发者提供灵活的参数;同时,为后期大都会升级引入zkSnarks零知识证明等技术做了准备;延迟引爆难度炸弹,将冰河期推迟1年;也使挖矿难度显著降低,从而明显提高了以太坊平台的交易速度,使对应的矿工们挖矿的收益从每区块5个以太币降低到3个。而大都会版本的第二阶段—君士坦丁堡硬分叉也已经在2019年3月顺利完成。
2017 年 11 月 1 日,DEVCON-3 开发者大会在墨西哥海边小城坎昆召开,历时 4 天。参会人数爆增到 1800 人,是 DEVCON-2 的两倍。大会上 Vitalik Buterin对PoS共识和分片的开发现状做了介绍。其余参会者的主题演讲也十分精彩,共达128场之多,覆盖PoS共识、形式化证明、智能合约、zkSNARKs零知识证明、Whisper和Swarm组件、数字钱包、DApp等重要技术方向。
以太坊规划的最终版本为Serenity。在此阶段,以太坊将彻底从PoW转换到PoS(权益证明)。这似乎是一个长期过程,但并不是那么遥远。PoW是对计算能力的严重浪费。从PoW的约束中解脱出来,网络将更加快速,对新用户来说更加易用,更能抵制挖矿的中心化等。这将与智能合约对区块链的意义一样巨大。转换到PoS以后,之前的挖矿需求将被终止,新发行的以太币数量也会大大降低,甚至不再增发新币。

1.3 以太坊核心技术

1.3.1 智能合约

以太坊是可编程的区块链。它并不是为用户提供一系列预先设定好的操作(例如,比特币交易),而是允许用户按照自己的意愿创建复杂的操作。这样一来,以太坊就可以作为通用去中心化区块链平台。20 世纪 90 年代,Nick Szabo 首次提出了智能合约的理念。由于缺少可信的执行环境,智能合约并没有被应用到实际产业之中。自比特币诞生后,人们认识到比特币的底层技术区块链天生可以为智能合约提供可信的执行环境。以太坊首先看到了区块链和智能合约的契合,并致力于成为智能合约的最佳运行平台。
从技术方面来看,以太坊利用图灵完备的虚拟机(EVM)实现对任意复杂代码逻辑(即智能合约)的解析。开发者能够使用类似 JavaScript(Solidity)或 Python(Serpent)的语法创建出可以在以太坊虚拟机上运行的应用。结合点对点网络,每个以太坊节点都运行着虚拟机并执行相同的指令。因此,人们有时也形象地称以太坊为“世界电脑”。这个贯穿整个以太坊网络的大规模并行运算并没有使运算更高效,而是使在以太坊上的运算比在传统“电脑”上更慢更昂贵。然而,这种架构可以带给以太坊极强的容错性,保证区块链上的数据一致、不可篡改。
从应用方面来看,智能合约是一种用计算机语言取代法律语言去记录条款的合约。如果区块链是一个数据库,那么智能合约就是能够使区块链技术应用到现实当中的应用层。传统意义上的合同一般与执行合同内容的计算机代码没有直接联系。纸质合同在大多数情况下是被存档的,而软件会执行用计算机代码形式编写的合同条款。智能合约的潜在好处包括:降低合约签订、执行和监管方面的成本;相比其他合约,智能合约可以极大地降低人力成本。
图1-2就是一个智能合约模型:一段代码被部署在分布式共享账本上,它可以维持自己的状态,控制自己的资产和对接收到的外界信息或者资产进行回应。

image.png

1.3.2 PoS

以太坊另一个重要的核心技术就是共识算法的改进。比特币在区块生成过程中使用了工作量证明(Proof of Work)共识机制,一个符合要求的区块Hash由 N 个前导零构成,零的个数取决于网络的难度值。要得到合理的区块Hash需要经过大量的枚举计算,计算时间取决于机器的Hash运算速度。在股权证明(Proof of Stake)共识中,验证人轮流提议新块并对下一个块投票,每个验证人的投票权重取决于其持币量的大小(即股权)。验证人为区块链网络提供出块服务,网络也会对验证人返回奖励,而且这种奖励也实现了对攻击者的经济制约。
PoS的明确优点包括安全性、降低集权风险和提高能源效率。PoS可以灵活地、明确地设计对拜占庭行为(即不遵循协议)进行的惩罚。这使得协议设计者能够对网络中各种行为的不对称风险和收益回报情况进行更多的控制。提高安全性的另一个方面是增加网络攻击的成本,因此具有明确惩罚(可能在比PoW更严重的级别上)的能力可以增加网络的安全性(即经济安全)。在PoS的情况下,一美元就是一美元。这样的好处是,你不能通过汇集在一起,使得一美元的价值变得更多。你也不能开发或购买专用集成电路(ASIC),从而在技术上占有优势。所以,PoS不同于PoW挖矿收入的累计分配方式,采用了比例分配(成熟的去中心化的身份管理服务使得按比例分配收益成为可能)。
以太坊要实现的PoS机制被命名为Capser(名字源于20世纪90年代的一部电影《鬼马小精灵》),它实际上是由以太坊团队正在积极研究的两个主要项目组成,即Casper FFG和 Casper CBC。虽然是独立的两套实现,但它们有着一样的目标:将以太坊的工作量证明转到 PoS。
友好的终结工具 Casper FFG 又名“ Vitalik’s Casper”,是一种混合 PoW / PoS的共识机制,它是以太坊首个通向PoS的候选方法。更具体地说,FFG 在工作量证明(如以太坊的Ethash PoW链)的基础上,实施了权益证明。简单地说,区块链将用熟悉的Ethash PoW 算法增加区块,但是每50块有一个PoS“检查点”,通过网络验证人来评估区块的最终有效性。
Casper CBC 又称“Vlad’s Casper”,与传统协议的设计方式不同:1)协议在开始阶段是部分确定的;2)其余部分协议则以证明能够满足所需 / 必需属性的方式得到(通常协议被完全定义,然后被测试以满足所述属性)。在这种情况下,得出完整协议的一种方法是实现所预计的安全性(一个理想的对手),或者提出合理的错误估计,或者列举潜在的未来错误估计。更具体地说,Vlad的工作侧重于设计协议,扩展单个节点对安全性估计的局限视角, 以实现共识安全性。
退后一步,FFG更侧重于通过多步骤过渡为以太网络引入PoS。通过以一步一步迭代的方式来实现,逐步增加PoS在网络中的作用。相比之下,CBC着重于通过建设得出安全证明的正式方法。尽管令人困惑,但解决这个问题的不同方法创造了两个不同的工程。Casper的最终形式可能来自于对FFG和CBC的互相学习。

1.4 以太坊系统架构

以太坊项目定义了一套完整的软件协议栈。它是去中心化的,也就是说以太坊网络是由多个相同功能的节点组成的,并没有服务器和客户端之分。以太坊协议栈的总体架构图如图1-3所示。

image.png

其中,最上层是 DApp 应用模块,用于实现区块链之上的业务逻辑;其次是智能合约层,通过合约的编写和调用,实现图灵完备的编程操作;再接下来就是 EVM 和 RPC,EVM负责解析和执行合约操作,RPC则提供外部访问能力;然后是核心层,分为区块链协议、共识算法、挖矿管理、分布式网络核心组件;最底层就是一些基础库,比如P2P通信协议、加密算法库、LevelDB数据库、HTTP、solidy语言支持以及Math运算支持。
从逻辑分层的角度来看,图1-4将以太坊分为应用层、合约层、激励层、共识层、网络层和数据层。其中,应用层对应DApp应用模块;合约层对应EVM和RPC能力接入;激励层则涉及矿工账户管理,代币转移模块;共识层包含共识算法和引擎;网络层指的是P2P接入和消息交互;最下面的是数据层,负责处理链相关数据结构,持久化功能。

image.png

1.5 以太坊社区

以太坊的项目背后并不是一个实体化的技术公司,而是由分布在世界各地的专家组成的技术社区,通过网络通信工具进行沟通、讨论和视频会议等。

  1. Reddit 讨论版
    以太坊的Reddit是一个包罗万象的网络论坛,关于以太坊的大部分讨论都发生在这里,很多核心开发者也会踊跃参与其中。你可以在这里找到新闻、媒体、通告、技术讨论等各个主题的相关内容。这也是一个可以自由提问获得帮助的理想场所,问题回复的时间非常快。需要注意的是,在论坛中发帖之前,请仔细阅读相关规则,链接为https://www.reddit.com/r/ethereum/comments/3auc97/ethereum_subreddit_rules/

Reddit论坛的主题具体如下。
□以太币交易、价格和市场:https://www.reddit.com/r/ethtrader/
□以太币挖矿:https://www.reddit.com/r/EtherMining/
□以太坊应用交易:https://www.reddit.com/r/ethmarket/
□投资者新闻和前景展望:https://www.reddit.com/r/ethinvestor/

  1. Slack问答
    以太坊在 Stack 上建立了另外一个问答社区,这里也是讨论技术问题最好的地方。同时帮助回答问题还能为以太坊爱好者募集积分,真是一举两得的好事情。链接为 https:// ethereum.stackexchange.com/。
  2. Gitter聊天室
    以太坊社区每天的实时通信使用了Gitter工具,这是一个虚拟化的协同工作环境,开发者都会挂在上面,更有效率地获得帮助甚至手把手的指导。Gitter用户直接使用GitHub账户就可以登录,不同的Gitter频道会对应不同的代码库或者兴趣主题,建议用户在加入之前选择正确的讨论版。比较有名的频道列举如下:

□以太坊 Go 客户端:https://gitter.im/ethereum/go-ethereum
□以太坊 C++ 客户端:https://gitter.im/ethereum/cpp-ethereum
□以太坊 JavaScript API:https://gitter.im/ethereum/web3.js
□智能合约 Solidity 语言:https://gitter.im/ethereum/solidity
□以太坊钱包 mist:https://gitter.im/ethereum/mist
□以太坊轻客户端:https://gitter.im/ethereum/light-client
□以太坊学术研究:https://gitter.im/ethereum/research
□以太坊治理:https://gitter.im/ethereum/governance
□Whisper 通信模块:https://gitter.im/ethereum/whisper
□Swarm 存储模块:https://gitter.im/ethereum/swarm
□以太坊改进建议(EIP):https://gitter.im/ethereum/EIPs
□以太坊 JavaScript 库:https://gitter.im/ethereum/ethereumjs
□P2P 网络和协议框架:https://gitter.im/ethereum/devp2p

  1. EIP
    EIP 机制设置的目的是为了更有效地协调非正式协议改进方面的工作。参与者首先提出改进建议并提交到 EIP 数据库中。通过基本的筛选之后,改进建议将以编号的方式记录并在草案论坛中进行发表。一个 EIP 正式生效需要得到社区成员的支持以及以太坊共识参与人的支持。EIP 的讨论一般会在上面提到的 Gitter 聊天室中进行。

5.线下会议
线下会议也是以太坊社区成员采用的一种高效的沟通方式,会议的组织和筹备都通过
meetup 网站进行管理,链接为 https://www.meetup.com/topics/ethereum/

1.6 以太坊路线图

以太坊的分阶段路线图大致可以表示如下。
□预发布第0阶段:Olympic测试网络–2015年5月发布。
□发布第1阶段:Frontier–2015年6月30日发布。
□发布第2阶段:Homestead–2016年3月14日发布。
□发布第3阶段:Metropolis–第一阶段2017年10月16日发布,第二阶段发布时间待定。
□发布第4阶段:Serenity–发布时间待定。
可以看到目前以太坊已经进入技术演进最关键的阶段。Metropolis 第二阶段的目标是把共识协议切换为 PoS。另外,通过分片或其他技术完成以太坊的网络扩容也势在必行。在隐私保护方面,以太坊正在积极尝试 zk-SNARKs 算法在交易和合约中的应用。

1.7 本章小结

本章用比较概括的方式,向读者介绍了以太坊区块链框架的方方面面,包括以太坊的项目成长历程、核心技术、整体架构、社区运营以及未来的发展目标。对于区块链的初学者,阅读完本章将建立起对共识算法、智能合约等核心概念的理解。通过深入后面章节的学习,读者将看到这些概念的具体原理和实现过程。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
高可用应用架构
欢迎来到“高可用应用架构”课程,本课程是“弹性计算Clouder系列认证“中的阶段四课程。本课程重点向您阐述了云服务器ECS的高可用部署方案,包含了弹性公网IP和负载均衡的概念及操作,通过本课程的学习您将了解在平时工作中,如何利用负载均衡和多台云服务器组建高可用应用架构,并通过弹性公网IP的方式对外提供稳定的互联网接入,使得您的网站更加稳定的同时可以接受更多人访问,掌握在阿里云上构建企业级大流量网站场景的方法。 学习完本课程后,您将能够: 理解高可用架构的含义并掌握基本实现方法 理解弹性公网IP的概念、功能以及应用场景 理解负载均衡的概念、功能以及应用场景 掌握网站高并发时如何处理的基本思路 完成多台Web服务器的负载均衡,从而实现高可用、高并发流量架构
相关文章
|
Rust JavaScript 前端开发
区块链开发(八)以太坊不同语言客户端地址
区块链开发(八)以太坊不同语言客户端地址
140 0
|
区块链 数据安全/隐私保护
比特币原理简介
一 什么是比特币 比特币(BTC)是基于区块链技术一种数字货币实现。 比特币网络是一个分布式的点对点网络,网络中的矿工通过挖矿来完成对交易记录。区块链网络提供了一个公共可见的记账本,任何人任何时候都可以查看此账本的信息。
3856 0
|
区块链
以太坊·将自定义数据写入到区块链中
本文讲述如何将数据保存到区块链中。
6511 0
|
前端开发 JavaScript 区块链
以太坊智能合约开发入门
以太坊合约就是以太坊区块链特定账户地址上的一串代码(functions)和数据(state)。合约账户不仅可以相互间通讯,还可以执行几乎所有的图灵完备计算。以太坊区块链上的合约代码是特定的二进制形式,被称作以太坊虚拟机(EVM)二进制代码。本文以最受欢迎的Solidity为例说明以太坊开发如何入门。
5598 0
|
存储 算法 区块链
以太坊原理简介
本文介绍以太坊的一些基础概念,以及基本原理。主要内容包括:以太坊是什么、以太坊网络、账户类型、账户状态、交易、费用、gas、叔块、以太坊区块链结构、以太坊结构
4005 0
|
存储 程序员 区块链
以太坊DApp如何用IPFS存储并调用数据
正在构建的一个Dapp。Dapp包括一些用户数据,如电子邮件、姓名和个人图片等。我想将用户数据内容存储在IPFS中,通过一个JSON对象,并用IPFS hash处理过。
4042 0
|
新零售 区块链 数据安全/隐私保护
深入浅出以太坊智能合约
Eth(以太坊)不知道你有没有听说过,ICO你一定听说过。但你知道ICO其实是借助Eth的智能合约实现的吗?什么是智能合约,Eth为啥这么火?智能合约的特点是什么,我怎么写智能合约?基于智能合约还有Dapp,即分布式app,Dapp又是什么? 本系列文章将全面讲述Ethereum的原理,特点和机制,以及涉及的各种概念。
1447 0
|
区块链 C# Windows
区块链培训学习资料(特别是以太坊)
一个适合区块链新手的以太坊DApp开发教程: http://xc.hubwiz.com/course/5a952991adb3847553d205d1 一个用区块链、星际文件系统(IPFS)、Node.
1590 0