https://qkl.myqqex.com

以太坊进化之路:ETH2.0工程指南

以太坊进化之路:ETH2.0工程指南


关于以太坊2.0

以太坊2.0是计划中的以太坊替代方案。在接下来的几年里,以太坊2.0的设计人员打算将以太坊的共识系统和状态完全纳入其中。由于以太坊2.0的范围如此广泛,我们无法准确地说出其将包括哪些,或者不包括哪些。我们确实有了一些关于以太坊2.0的规范,并且有非常多的团队在致力于开发早期的实现。此时,以太坊2.0设计人员暂规划中的设计,包括分片、Casper、状态租赁以及eWASM虚拟机。初步的客户端测试正在进行当中,预计开发者将在三个月内(2019年第1季度)推出一款轻功能的以太坊2.0测试网。起初,以太坊2.0将从以太坊主链中获取以太币,但设计师最终计划使以太坊2.0成为主链,而以太坊1.X则作为其管理下的分片链。

 

这对工程师来说意味着什么?

如果你是一名Solidity或Dapp开发人员,并且希望部署以太坊2.0智能合约,那么你将需要学习很多的东西。以太坊2.0完全替代了以太坊,它将改变我们在编写智能合约时所做的很多假设。计划中的以太坊2.0多阶段推出计划,更新是产品发布周期,而不是升级周期。我们为以太坊1.X编写的工具和智能合约,可能需要为以太坊2.0完成重设计和重写。幸运的是,我们有几年的时间来准备生态系统。为了帮助大家实现这一目标,我想讨论一下当前的路线图,并介绍一些工程上的影响。

分阶段推出

目前,分片路线图(以太坊2.0路线图的2倍)列出了七个阶段。其中,只有Phase 0(阶段0)有一个充实的规范,并且定期会被更新。而 Phase 1(阶段1)规范的精确度要低得多,似乎还没有得到积极的开发。在第一阶段之后,路线图就变成了目标列表,而不是技术文档。例如,在Phase 2(阶段2),路线图链接到ethreaser.ch的次数,将是链接到github的三倍。因为任何进一步的讨论,看起来都像是推测,而不是工程,所以我们的具体讨论,仅限于阶段0、阶段1以及阶段2,并且我们已包含了一些关于后期可能方向的粗略概述。

以太坊进化之路:ETH2.0工程指南


下面我们将介绍各个阶段的发展状态。

阶段0——信标链(Beacon Chain)


阶段0引入了“信标链”。以太坊2.0的设计者希望把信标链打造成以太坊2.0生态系统的中心,并成为所有其他分片的安全和验证根源。一旦信标链被部署完成后,它将运行Casper FFG这一PoS机制。信标链的早期迭代设计得尽可能简单,这就是为什么阶段0不支持智能合约、账户、资产转移,并且不包括任何分片的原因。信标链上的以太币不能在链上转移,这意味着用户不能将其存入交易所。

BETH:新的以太币

信标ETH(BETH)是信标链上的被验证者唯一使用的新资产,它是通过两种方式创建的:1)作为验证信标链的奖励(以及阶段1之后的分片),2)任何以太坊1.x的用户都可以通过以太坊1.x合约购买BETH。合约将此称为“保证金”。工程师可能会注意到合约没有撤销功能。这是因为在第0阶段,我们无法从信标链中撤回BETH。也就是说,一旦存储在以太坊1.x验证者注册合约中,以太坊1.x的以太币就会被有效地烧掉。信标链验证者查看合约,并向信标链提交存款信息,信标链将向存款人发放新的BETH。因此,我们的目标就是:当存款人将以太币发送到验证者注册合约后不久,其就会收到信标链发布的相应数量的BETH。对存款的临时审查是可能的,但根据Casper的规则,永久审查不太可能会发生。

以太币在信标链上的传输,需要等到Phase 2(第二阶段),我相信在以太坊1.X完全折叠到分片生态系统之前,我们不会有任何办法将BETH移回到以太坊1.X。鉴于阶段0不完整,且不存在可靠的阶段1规范,我们可合理地假设,BETH作为独立且不可转让的资产的时间,将至少持续2年的时间。一旦阶段2完成,BETH将可以转移到分片上,或者从分片转移出去;然而,以太币将不会。这不太可能造成严重的经济困难。

在过去,很多交易所通过IOU(欠条)的方式,将类似BETH的token预先进行了交易。例如,在Tezos众筹期间,Hitbit和BitMEX交易所就推出了相应的期货市场。如果市场对BETH有交易需求,我们可能会看到一些交易所会支持BETH的托管交易和投资。然而,市场对BETH的需求似乎存在着一些问题。因为ETH到BETH的单向1:1挂钩,使得BETH有了最高限价,这并不是一个好的投资标的。也就是说,BETH 的价值永远不可能超过以太币,并可能会低于以太币。

阶段0+——分片

用户可在信标链上押入 32 BETH,然后成为一名验证者。在阶段0中,验证者将只管理信标链。从第一阶段开始,验证者还将管理1024条分片链。信标链(以及每个分片链)将使用 Casper FFG机制来确定区块。Casper FFG是一种针对链中止和审查等不良行为实施权益削减惩罚的一种PoS算法。敏锐的读者会注意到,FFG的"表兄"Casper CBC,列在了分片路线图的“以太坊3.0”部分。(全面讨论FFG以及CBC不在本文的范畴,我建议大家阅读一下Vitalik关于混合PoW和FFG的笔记,以及他撰写的关于最小化削减条件和FFG论文的 medium文章。

验证者(staker)做些什么?

分片的目的,在于跨节点分割状态信息,而不需要任何节点拥有网络的完整图像。因此,没有验证者会验证所有分片。相反,信标链将协调所有其他分片的验证,所有验证者将验证这一信标链。每个时间段(64个区块或6.4分钟),信标链将洗牌验证者,并将其分配给一个分片。分配给分片的一组验证者,被称为委员会。委员会会有128名成员。在阶段0中,这意味着每6分钟,信标链将选择可用的验证者,而在接下来的6分钟内组成一个委员会。在阶段一,信标链将为1024个分片指定一个验证者委员会。精确的方法是复杂的。它包括一个多阶段随机数生成过程以及一个可验证的延迟函数,以进一步挫败操纵委员会选择过程的尝试。

以太坊2.0随机选择委员会,并且经常因关键工作而轮换委员会。各委员会负责维护其分片的安全、活性及完整性,并在信标链上证明分片状态。它们是信标链了解分片状态的唯一方法,反之亦然。从所有验证者池中随机地选择它们,可最大限度地降低整个委员会说谎或作弊的可能性。而轮换他们,往往是为了减轻一个坏委员会可能造成的伤害。换句话说,存有恶意或寻求利润最大化的验证者,很难成为委员会成员,并对网络发起攻击。此外,即便他们有机会能够控制一个分片委员会,这个控制的时间也不会超过64个区块(6.4分钟)。

对于工程师的PoS证明

虽然以太坊1.x的工作量证明(PoW)和以太坊2.0的权益证明之间的哲学差异是一个持续的过程,但值得注意的是,一些些pow/pos特性差异,确实直接会影响到工程师。例如,虽然PoW链支持无状态SPV证明,以及NiPoPow总结的远程状态跟踪,但PoS禁止了任何低状态通信。主观性阻碍了轻状态认证。换言之,关于PoS的远程状态证明,将包含与POW无状态SPV证明大致相同数量的数据,但需要预先验证整个PoS历史。相反,无状态SPV证明不需要其他信息来验证。这意味着在主观的PoS环境中,交叉分片或交叉链应用降低了功能性,并增加了管理开销。

阶段1——分片

阶段1的目标,是关于分片链的内容达成共识,而不是就其意义达成共识。换言之,这是对分片结构的一次试运行,而不是尝试使用分片进行扩容。信标链将把分片链视为没有结构或意义的简单位集合。分片链还没有账户、资产或智能合约。分片验证者是由信标链随机为每个时期的每个分片选择的,它们只是对每个区块的内容达成一致。只要所有的委员会达成共识,并定期更新分片上的信标链,那么分片区块中出现的信息就不重要了。

分片验证程序通过一个称为交联(crosslinking)的过程来验证分片中的内容和状态。简单地说,委员会必须在信标链中包含关于分片的可验证信息(如merkle根)。在阶段二或更高阶段,交联将支持交叉分片通信。一旦信标链收到来自多个委员会的某一特定交联的准确性证据,信标链就可以信任该交联是分片的真实代表,而无需验证整个分片。如果委员会不同意交联的有效性,很明显,这个委员会是错误的,应该被惩罚。这是所有分片的安全性根源:验证者错误的行为,最终会被发现,并会受到信标链的惩罚。

阶段1并没有什么特别有趣的内容。从根本上说,它是用于交联的引导阶段,也是分片引用信标链的对称机制。设计者们似乎相信这些机制会起作用。主要的开放性问题,围绕规范和实现策略展开。考虑到阶段0已经花费了大约一年的时间来达到合理的规范水平,我认为阶段一会花费差不多的时间。有趣的是,阶段0 的实现与规范同时发生。即使在今天,在距离以太坊2.0测试网发布还不到3个月的时间,阶段0度规范也会定期进行更改。这意味着,未来以太坊2.0在开发时间上会有非常大的差异。虽然乐观主义者告诉我说需要六个月的时间,但我们其实很容易可以预想到,在阶段0进入测试后,阶段一还需要经历12-18个月的开发时间。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。