Ethereum 2.0 (Serenity)

以太坊网络是世界上最大和最广泛使用的区块链网络之一。它也是世界上最大的开源项目之一,其中go-ethereum是Github上最大的项目之一。自2015年首次发布以来,以太坊一直朝着成为去中心化全球计算机的最终目标迈进,有朝一日可以取代我们日常生活中使用的许多集中式应用程序。然而,在实现这一目标之前,以太坊社区和网络仍有许多工作要做。本文将简要介绍以太坊迄今为止的进展,然后讨论该网络即将推出的备受期待的发布。此版本称为Ethereum2.0或Serenity(从现在开始可互换使用)。这将是以太坊社区有史以来实施的最大,最全面的更新。

以太坊发展的四个阶段

当以太坊网络于2015年首次推出时,该项目的长期路线图分为四个阶段。每个阶段由一组以太坊改进提案(EIP)定义。这些是由以太坊社区提出并批准的提案。这些提案为各种以太坊客户和开发人员制定了指导方针。例如,以太坊的当前版本被称为君士坦丁堡,它是通过总共四个EIP创建的,旨在提高网络的安全性,隐私性和可扩展性。

以太坊的第一阶段被称为Frontier。该版本于2015年发布,是该网络的第一个实时版本。Frontier允许用户和开发人员挖掘以太网,构建Dapps和工具,并尝试新平台。

以太坊发展的第二阶段是Homestead。Homestead于2016年3月发布,是以太坊网络的第一个生产版本。它为协议提供了许多改进,这些协议将成为未来升级和提高交易速度的基础。

以太坊发展的第三阶段和当前阶段称为大都会(Metropolis)。大都会分为两个版本,拜占庭(Byzantium)和君士坦丁堡(Constantinople)。Byzantium于2017年10月发布,比以前的版本更轻,更快,更安全。一些特定的升级包括更可预测的天然气价格和更容易的开发人员编程。Byzantium还通过允许以太坊开发人员对zk-SNARK进行有效的链式验证(零知识简洁的非交互式知识论证)来改善隐私。虽然乍一看,zk-SNARKs的首字母缩略词可能看起来很复杂,但系统使用了一个相对简单的概念,即零知识证明。这种方法可以证明一个陈述的真实性而不会泄露除该陈述试图证明之外的任何其他内容。例如,我可以向朋友证明我知道手机的密码,而不是实际泄露密码给他们。拜占庭更新了一个称为“难度炸弹”的采矿调整,随着时间的推移,这将使采矿变得更加困难,以期过渡到桩系统的证据(稍后将详细介绍)。君士坦丁堡旨在进一步巩固这些改进。虽然君士坦丁堡的最初发布日期定于2018年11月,但以太坊领导人和开发商决定将其发布推迟到2019年。该分支最终于2019年2月28日在7,280,000区块发布。

以太坊的第四个和暂定的最后阶段已被称为以太坊2.0或宁静(Serenity)。这是迄今为止最雄心勃勃的升级,应该可以改善网络的几乎所有方面。Eth2.0将在2019年至2021年之间分四个阶段发布,尽管此时间表可能会发生变化。为了充分了解Eth2.0的重要性和重要性,我们首先需要研究当前以太坊网络面临的主要问题,即Eth2.0试图解决的问题。

以太坊面临的当前问题

目前以太坊网络面临的最重要的一个问题是可扩展性。以太坊网络支持数百个去中心化的应用程序,并且需要每秒处理大量交易。添加更多节点不会增加网络的可扩展性,因为每个节点都需要验证每个交易。更多地使用以太坊网络,包括创建更多Dapps和执行更多交易,导致交易的时间和成本持续增加。这使得以太坊网络变得更慢,使用起来也更不方便。在最近的速度测试中,网络每秒仅管理20次交易(各种来源已经说明去年每秒12到45次交易)。相比之下,PayPal和Visa等集中式网络分别定期执行193和1667次交易,Visa的最大容量接近24,000。为了实现大规模采用,大规模提高可扩展性的努力是以太坊2.0发展的核心。在调查了其他几个选项之后,以太坊团队决定将一个名为分片的过程作为网络可扩展性的最佳解决方案。等离子链和状态通道等脱链解决方案也可能用于减轻主网络负载,进一步提高可扩展性。我将在未来几周内发布关于分片和可扩展性的新文章。查看更多详细信息。

Eth2.0将解决的另一个主要问题是效率和环境可持续性。与比特币和许多其他区块链网络一样,以太坊目前依赖于工作证明(PoW)共识协议来确保其网络的安全性。PoW系统涉及许多拥有连接到区块链网络的计算机硬件的矿工。矿工因将硬件用于网络而获得奖励。算法为每个新块设置目标值,矿工竞争成为第一个找到此目标并附加新块的人。为此,他们通过哈希函数运行建议的块的头数据以及随机的“随机值”,该哈希函数将返回固定长度的加扰数字串。如果不满足目标值,则更改随机数并重新运行哈希函数。矿工重新运行哈希函数,直到其中一个生成与指定目标匹配的哈希值。此时,新块将广播到网络上的每个节点以验证并添加到其分类帐,并且成功的矿工获得了他们工作的小余额。

PoW系统的一个主要好处是验证新块是否属于链是一个非常快速和相对简单的过程。然而,为了确保网络的安全性并防止欺诈,矿工找到正确的哈希输入在计算上是昂贵的。事实上,只有一个矿工会找到正确的哈希,因此所有其他人所做的工作实际上并没有被使用,这加剧了这种情况。因此,PoW共识需要大量的计算能力和电力,效率非常低。 在撰写本文时,以太坊网络上的每笔交易都使用大约29千瓦时(千瓦时),足以为普通美国家庭供电24小时!以太坊矿山使用的电力每年可为652,669个美国家庭提供电力。每年,以太坊采矿的能源消耗量与玻利维亚相当。这显然是一个重大问题。以太坊的PoW协议所需的过高能量会降低采矿的盈利能力,并对环境和系统的长期可持续性产生严重的负面影响。

PoW协议非常重要,因为它们可以创建早期的区块链网络,但效率非常低。他们也容易受到市场垄断的影响,因为他们赋予拥有更多资源的行为者不公平的优势。富裕而强大的个人和组织可以提供更多更快,更强大的计算机,这使他们有更高的机会成功解决每个加密难题并获得奖励。例如,大约65%的比特币采矿由5个采矿集团完成,他们理论上可以联合起来控制超过50%的市场。比特币矿工使用昂贵且专业的专用集成电路(ASIC),这导致了比特币采矿的工业化和部分集中化。由于以太坊采矿通常使用许多家用计算机中的图形处理单元(GPU)进行,因此集中采矿的风险并不像比特币那么大。然而,最近已经为以太坊发布了ASIC,由于目前依赖的PoW协议,以太网采矿仍然处于集中化和垄断的危险之中。这造成了比特币,以太坊和其他集团的局面kchain网络并不像它们原先预期的那样去中心化,这会危及它们的独立性和实用性。Eth2.0旨在将网络从工作证明协议转变为称为Casper的股权证明(PoS)协议,该协议旨在解决效率和可持续性问题。由于2017年通过拜占庭更新引入的炸弹采矿调整困难,这种转变将变得越来越重要。炸弹将使采矿以太越来越困难,直到它最终变得不可行。这个装置是为了预期Serenity从PoW过渡到PoS而引入的,这也是为什么更新对于以太坊社区如此重要的另一个原因。我将发表一篇文章,详细介绍Casper以及未来几周向PoS的过渡。

Eth2.0将解决的最后一个主要问题是速度和可用性。这与通过分片解决的可伸缩性问题有关但不相同。分片的引入应该消除交易速度和吞吐量的最重要瓶颈,但另一个瓶颈是由以太坊虚拟机(EVM)本身引起的。EVM本质上是以太坊的底层结构,它执行代码并允许网络正常运行。EVM负责以太坊网络的内部状态及其所有计算。EVM还确保以下内容准确无误:帐户信息,如余额,当前汽油价格,地址和区块信息。此外,机器必须跟踪以下组件:块信息,存储状态,帐户状态和运行时环境信息。虚拟机还处理所有以Solidity/Vyper编写并编译为唯一EVM字节码的以太坊智能合约。然后,合同由网络上的每个节点执行由于它负责以太坊网络的许多重要方面,因此虚拟机能够执行任务的速度对网络本身的整体速度和可用性产生重大影响。Eth提升了这一瓶颈的解决方案2.0被称为Ewasm(以太坊)。

Wasm是W3C社区组开放标准指令集,目前由Google,Mozilla,Microsoft和Apple的工程师开发。除了提高速度和吞吐量之外,Ewasm还将提高以太坊网络的安全性和可用性,并赋予其他一些好处。我将发布一篇文章,探讨未来几周Ewasm的细节,敬请关注!

Eth 2.0的其他目标

正如我们现在所知,Ethereum2.0正在设计中解决当今以太坊的主要问题。然而,创新并不止于此。宁静也正在建设中,以满足几个更普遍的设计目标。由于Casper和Sharding的引入会产生许多新的复杂系统,因此Eth2.0的主要设计目标之一是尽可能降低网络复杂性,即使这会导致效率的降低。这是可能的,因为Sharding,Casper和Ewasm所允许的吞吐量和效率的大幅提高将使效率的小幅下降失去平衡,以减轻这些相同系统所需的额外复杂性。另一个主要的设计目标是使用密码学和设计允许大量验证者参与的技术,包括总计和每笔交易。同样的第三个目标是创建一个允许标准消费者笔记本电脑处理和验证单个分片的系统。这两个目标都旨在确保网络保持安全和去中心化。

除了解决具体问题和解决更普遍的问题之外,Serenity还有两个长期设计目标,旨在预测未来可能出现的潜在问题。第一种方法是以这样的方式设计版本,即在主要分区的情况下网络将能够保持活动状态,或者如果很大比例的节点同时脱机。在Devcon 2018的演讲中,以太坊开发人员Justin Drake解释了团队如何希望Eth2.0能够“在第三次世界大战中幸存”或类似的情况,其中高达80%的节点同时脱机。这也是在其他不太极端的情况下很重要。例如,一场或多场与气候变化有关的重大灾害可能会在数小时内摧毁大部分节点,或者中国或美国等大国可能决定禁止以太坊和其他区块链网络,并试图消除他们国家的节点。

Eth2.0预期的另一个突发事件是量子计算的出现。目前,美国,中国和其他主要大国和企业之间正在进行一场技术竞赛,成为第一个发明量子计算机的人。在这一点上,问题不是如果,而是何时。无论什么时候出现,量子计算机都会比最先进的传统计算机强大得多。这将使大多数现有的网络安全,包括加密和区块链技术,相对无防御和容易破解。因此,新的和未来的区块链网络必须尽一切可能(在传统二进制计算的限制范围内)来防止量子计算机的可能性。Ethereum github repo中规定的Eth2.0的最终设计目标是:“选择所有组件,使其具有量子安全性,或者在可用时可以轻松换出量子安全对应物。”

从宁静中可以期待什么

这一切都非常令人兴奋,但Eth 2.0何时会上线?不幸的是,答案仍然是…….我们不知道!然而,在Devcon 2018的一次演讲中,Vitalik说Serenity“真的不是那么遥远。”他还解释了“以太坊2.0是如何……我们多年来一直在讨论的一系列不同功能的组合,研究了几年,积极建立了几年,最终将在一个有凝聚力的整体中聚集在一起。“威廉·塞尔格似乎同意Serenity处于开发和测试的最后阶段时,他在撰写大发布之前的最终调整。” 似乎Eth2.0的第0阶段处于开发和测试的最后阶段,但我们仍然不确定在发布之前我们需要等待多长时间。我们知道Serenity正在与当前的以太坊主链分开开发,并且最初将与它并行运行。稍后,目前的以太坊区块链将被纳入新的区块链,可能作为单一的大型智能合约。我们也知道,当Eth2.0发布时,它将在四个连续阶段推出。阶段0将以信标链PoS系统为特征。它还不会支持Dapps,但会为以下阶段奠定基础。阶段1将支持Dapps并将分片作为数据链引入。网络数据将被拆分为分片,但网络状态将继续存储在旧的以太坊区块链中,并且尚未进行分片。阶段2将完全分片,将启用状态执行并允许智能合约。在这一点上,Eth2.0将具有上面讨论的所有主要功能。第3阶段及以后将包括迭代,改进和其他技术。每个阶段实施后,Eth2.0预计将具有以下功能:完全分片的区块链,纯PoS共识协议,更快的同步确认时间约8-16秒和“经济终结”可以在10-20分钟内实现。Vitalik认为Serenity是“真正意义上的世界计算机。”我希望你和Eth 2.0一样兴奋。

======================================================================

分享一些比特币、以太坊、EOS、Fabric等区块链相关的交互式在线编程实战教程:

  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • c#比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在C#代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是C#工程师不可多得的比特币开发学习课程。
  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • Flutter以太坊开发详解,本课程详细讲解如何使用为Flutter应用增加以太坊区块链支持,课程内容即涉及以太坊中的核心概念,例如账户管理、状态与交易、智能合约开发与交互、过滤器和事件等,同时也详细说明如何在Flutter应用中使用Dart开发语言与以太坊进行交互,是Flutter工程师学习以太坊应用开发的不二选择。
  • ERC721以太坊通证实战,课程以一个数字艺术品创作与分享DApp的实战开发为主线,深入讲解以太坊非同质化通证的概念、标准与开发方案。内容包含ERC-721标准的自主实现,讲解OpenZeppelin合约代码库二次开发,实战项目采用Truffle,IPFS,实现了通证以及去中心化的通证交易所。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS入门教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • 深入浅出玩转EOS钱包开发,本课程以手机EOS钱包的完整开发过程为主线,深入学习EOS区块链应用开发,课程内容即涵盖账户、计算资源、智能合约、动作与交易等EOS区块链的核心概念,同时也讲解如何使用eosjs和eosjs-ecc开发包访问EOS区块链,以及如何在React前端应用中集成对EOS区块链的支持。课程内容深入浅出,非常适合前端工程师深入学习EOS区块链应用开发。
  • Hyperledger Fabric 区块链开发详解,本课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、nodejs链码与应用开发的操作实践,是Nodejs工程师学习Fabric区块链开发的最佳选择。
  • Hyperledger Fabric java 区块链开发详解,课程面向初学者,内容即包含Hyperledger Fabric的身份证书与MSP服务、权限策略、信道配置与启动、链码通信接口等核心概念,也包含Fabric网络设计、java链码与应用开发的操作实践,是java工程师学习Fabric区块链开发的最佳选择。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是Ethereum 2.0 (Serenity)