诺邦在线 首页 资讯信息行业动态

大神给你介绍以太坊2.0是什么?分成几个阶段?

2019-1-21 10:14 166 0 来自: 36氪
简介
ETH2.0 是以太坊的计划替代方案。在接下来的几年里,ETH2.0 的开发者们打算将现在以太坊的共识系统以及状态完全纳入其中。由于其范围如此广泛,我们也无法准确地传达出 ETH2.0 将会包含或不包含的具体内容。确实,我 ...

大神给你介绍以太坊2.0是什么?分成几个阶段?

编者按:近日,“以太坊君士坦丁堡分叉”成为区块链领域热门话题,而作为以太坊的计划替代方案,真正的“硬菜”——ETH2.0也将逐渐揭开面目。抛开对于枯燥术语定义的解读, James Prestwich讨论下当前的以太坊路线图。同时,他脑洞大开,在这些具体讨论中设想关于以太坊后期阶段可能方向。文章来自Medium,以下为编译全文。

作者 | James Prestwich

编译 | 袁辉腾

编辑 | 卢晓明

ETH2.0 是什么?

ETH2.0 是以太坊的计划替代方案。在接下来的几年里,ETH2.0 的开发者们打算将现在以太坊的共识系统以及状态完全纳入其中。由于其范围如此广泛,我们也无法准确地传达出 ETH2.0 将会包含或不包含的具体内容。确实,我们已建构部分切实可行的操作规范,同时也有相当多的团队力量致力于开发早期的实现。ETH2.0 开发者暂时计划包括分片技术(Sharding)、Casper协议、状态租赁(State Rent)、以太坊虚拟机 EVM 的升级项目 eWASM。

如今,ETH2.0 初始客户端已经上线测试,并预计在三个月内(2019 年第一季度)推出轻量级 ETH2.0 测试网络。首先,ETH2.0 会让以太坊链中的以太币映射过去,但 ETH2.0 设计者最终计划通过将 ETH2.0 成为主链,而 Ethereum 1.X 则是其管理下的分支链来改变这种局面。

对工程师意味着什么?

如果你是专业的 Solidity 程序员或 Dapp 开发人员,并且是部署 ETH2.0 智能合约“铁杆粉丝”。那么,你可能需要进行大量的更新迭代。ETH2.0 是以太坊的完全替代品,其将推翻我们在编写智能合约时所做的诸多假设。其计划的多年阶段性推出并不像是升级周期,更像是一个产品发布周期。我们为 ETH1.X 编写的工具和智能合约或需要推倒重来。幸运的是,我们有几年的时间来建构这个生态系统。

为了推动这项工作,我打算讨论下当前的路线图,并介绍一些工程上的影响。

分阶段推出

目前,分片路线图(ETH2.0 路线图的两倍)列出了七个阶段。只有阶段 0 有明确的规范,并定期更新阶段 1 规范的严格性、准确性要低很多,且可能处于消极的开发状态。从阶段 1 后,路线图转变为目标列表,而不再是技术文档。

举个例子,在阶段 2 中,路线图链接到 ethresear.ch 的次数是链接到 Github 的三倍。由于未来的任何一步都更像是推测,而不是工程,因此我们的具体讨论仅限于阶段0、1、2。同时,在这些具体讨论中也涉及几个关于后期阶段可能方向的粗略轮廓概述。

大神给你介绍以太坊2.0是什么?分成几个阶段?

阶段 0: 信标链( The Beacon Chain)

阶段 0 引入了“信标链”,(Odaily星球日报注:信标链是一条全新的区块链,并且在新的以太坊中占据核心位置。这条链承担的其中一个职能是让验证者可以参与质押系统、替代矿工的角色而成为链的构建者。另一个职能是存储分片状态的索引)。ETH2.0 设计者希望信标链能够成为 ETH2.0 生态系统的核心,成为其他分片的安全和验证的根源。信标链部署完毕后,将使用 PoW/PoS 混合机制的 Casper the Friendly Finality Gadget(Casper FFG)进行股权证明。

显然,像“信标链”的这种早期迭代在设计之初就尽可能简单,这也是阶段 0 并不支持智能合约、账户、资产转移,也不包括任何分片的原因。同时,基于信标链上的以太币也无法实现链上转移,这意味着用户不能将其存入交易所。

BETH:新的以太币

作为一种新资产类型,Beacon ETH(BETH)仅由信标链上的 Stakers(持币者或用户)使用。BETH 能够以下两种方式创建。

  • 作为验证信标链的奖励(以及阶段 1 之后的分片);

  • 任何 ETH1.X 用户可以通过 ETH1.X 合约购买 1 个 ETH 的 BETH,合约将其称为“存款/充值“(Deposit)。

工程师可能会注意到,合约内并未提到撤销功能。这是由于阶段 0,用户无法从信标链中撤回 BETH。也就是说,用户一旦在存储在 ETH1.X 验证者注册合约中,ETH1.X 以太币则被销毁。信标链验证者会观察该合约,并向信标链提交充值信息,信标链将向充值用户发行新的 BETH。

因此,在 ETH 发送给验证注册合约不久,用户便会收到信标链发布的对应数量的 BETH。这一过程中,可以对充值进行临时审查,但根据 Casper 协议规定,不能对其进行永久性审查。

一直到阶段 2,以太币才能够在信标链上进行传输。在我看来,在 ETH1.X 没有完全融入分片生态系统之前,没有任何办法可以将 BETH 移回 ETH1.X。鉴于阶段 0 并不完整,且不存在可靠明确的阶段 1 规范,因此可以合理的假设:BETH 作为独立切不可转让的资产类型至少还需两年。当阶段 2 完成,BETH 实现分片转移自然“水到渠成”,但 ETH 却不会,而这并不会造成不可逆的经济困难。

过去,一些类似 BETH 这种低功能的 Token项目已通过 IOU(欠条)在交易所进行交易。例如,在 Tezos 众筹期间,其就曾推出 HitBit 和 BitMEX XTZ 期货市场。因此,若是对 BETH 存在需求,我们应该致力于构建一个支持受托管 BETH 的交易和入股(Staking)的交易所生态系统。然而,用户当下对于 BETH 的需求或许存在怀疑。由于从 ETH 到 BETH 的单向挂钩导致 BETH 价格上限为1 ETH,BETH 并不是一个绝佳的投资标的。换言之,BETH 永远不会比 ETH 更值钱,甚至有可能价值更低。

0 阶段+:入股(staking)

在信标链上,用户可以投注 32 个 BETH 保证金成为验证者。在阶段 0 中,验证者只需管理信标链即可;而从阶段 1 伊始,验证者在管理信标链的同时,还将管理 1024 条分片链。信标链以及每一条分片链将使用 Casper FFG 来完成出块。FFG 是一种权益证明算法(Proof of Stake),用于对链上不良行为实施罚没(即削减权益)。

细心的读者会发现 FFG 在分片路线图的“以太坊 3.0”部分的表兄弟 Casper CBC。虽然对 FFG(当然还有 CBC)的细致解读已超出本文的讨论范围。若是感兴趣,可以阅读以太坊创始人 V 神(Vitalik Buterin)关于混合 PoW / FFG 的说明,以及其关于最小化削减条件 FFG 论文

用户(stakers)需做些什么?

分片目的在于节点之间分割(Split)分片的状态信息,而无需要求任何节点都同时具备网络的全部图景。基于此,验证者不会验证所有分片。相反,信标链将协调其他分片的验证,所有验证者将进行信标链的验证。

经过一个固定时期(64 个块或约 6.4 分钟),信标链将对验证者进行“洗牌”,并将其随机分配给分片。分配给分片的一组验证者被称为委员会(Committee),其中包括 128 名委员。在阶段 0 中,委员会机制意味着信标链大约每隔 6 分钟就需要选择可用的验证者,随后在接下来的 6 分钟内组成一个完整的委员会;在阶段 1 中,信标链将 1024 个分片指定一个验证者委员会。指定的过程是极其复杂的,涉及多阶段随机数生成过程以及可验证的延迟函数,从而能够阻止试图操纵委员会遴选的过程。

委员会将负责保护其分片的安全性、活跃度以及完整性,同时还需证实(Attest)信标链上的分片状态,其存在的重要性不言而喻,ETH2.0 因此会随机进行委员会的选择,并经常轮换委员会成员。同时,这也是信标链能够知悉分片状态的唯一方式,反之亦然。

从所有的验证池中随机选择验证者,可以做大限度地减少委员会作为一个整体撒谎或欺骗的可能性。委员会的轮换也能够降低糟糕的委员会可能造成的伤害。换句话说,对于目的不纯或者试图利益最大化的验证者很难将委员会作为攻击网络任何部分的工具。退一步讲,假如验证者获得对分片委员会的控制权,其能够控制的区块也不会超过 64 个

PoS证明的影响有哪些?

虽然,ETH1.X 的工作量证明(Proof of Work)与 ETH2.0 权益证明(Proof-of-Stake)之间的哲学差异记录是一个持续过程,但值得注意的是,一些 PoW/PoS 特性的差异确实会直接影响到工程师。例如,PoW 链支持无状态简化支付验证(SPV)工作量证明的非交互式证明(NIPoPoW)远程状态跟踪,但 PoS 则禁止任何低状态通信。主观性阻碍轻状态(State-light)查看证明(Attestations)。

换句话说,关于权益证明的远程状态证明将包含 PoW 无状态 SPV 验证大致相同的数据量,但需要对整个 PoS 历史进行预先验证。相比之下,无状态 SPV 验证不需要其他信息进行验证。这意味着在主观权益证明环境中,跨分片或跨链应用程序功能减少,但开销增加。

阶段 1:分片

阶段 1 旨在就分片链的内容达成共识,并非对其意义达成共识。换言之,这是一次对分片结构的“试运行”,而不是尝试使用分片进行扩容(Scale)。信标链将分片链视为没有结构或意义简单的位(Bit)集合。分片链尚未拥有账户、资产或智能合约。分片验证者是由信标链为每个时间段(Epoch)的分片进行随机选择产生的。其仅仅对每个块的内容达成一致。在分片中出现什么信息并不重要,只要所有委员会成员达成共识,并定期更新分片上的信标链即可。

通过一个称为交联(Crosslinking)的过程,分片验证者可以验证分片的内容及状态。简单来说,委员会必须在信标链中包含关于分片(例如根哈希)的可验证信息。在阶段 2 甚至更高阶段,交联将支持跨分片通信(Cross-Shard Communication)。信标链从多个委员会收到给定交联的准确性证据后,信标链就可以相信交联是分片的真实表示,而无需验证整个分片。如果委员会对交联的有效性存在分歧,即很明显其中一个委员会是错误的,验证者应该予以罚没。

这是所有分片的安全根源,即其验证者的不当行为最终会被信标链发现并受到惩罚。

阶段 1 并不存在任何特别有趣的内容。从根本上说,这只是用于交联的引导阶段,也可以说是分片引用信标链的对称机制。设计者们似乎对这些工作机制充满信心,这些机制开放问题主要围绕规范和策略实施。鉴于阶段 0 花费一年多的时间才达到合理的规范水平,阶段 1 估计亦是如此。

有趣的是,阶段 0 的实现与规范的制定同时推进。即使当下——距离测试网络还不到三个月的时间,阶段 0 规范也会定期修改。对于时间线的预估也意味着未来 ETH2.0 阶段在开发时间上会存在极大的差异。乐观主义者告诉我 6 个月就已足够,但在我看来,在看到阶段 0 进入测试之后,阶段 1 需要 12 个月至 18 个月的开发周期。

大神给你介绍以太坊2.0是什么?分成几个阶段?

阶段 2:智能合约

最终,阶段 2 会带来一个与我们所熟悉的以太坊相似的系统。随着阶段 2 发布,分片链从简单的数据容器过渡至结构化的链状态。此时,新的以太币 BETH 可实现转让,并且将重新引入智能合约。每个分片将基于 eWASM(我们称之为“EVM2”)管理一个虚拟机。

在这个阶段,EVM2 将支持我们熟悉的账户、合约、状态以及其他抽象内容。然而,大量的幕后更改可能会破坏大多数现有工具。幸运的是,eWASM 技术团队已为 Solc 编译器、以太坊的开发和测试框架 Truffle、Ganache 做了一些基础工作。在阶段 2 的测试网络之前或期间,我们能够看到最常用的工具移植于此支持 EVM2。

状态租赁(State Rent)或包含在阶段 2,这也对当前 Solidity 编程语言工程师们提出一些有意思的挑战。状态租赁并不是无限期地存储代码和数据,而是要求合约开发者以及用户在一段时间内为 EVM2 存储付费。通过确保未使用的信息随着时间的推移而脱离状态来防止状态膨胀,最终实现其目标——让用户而不是让整个节点来支付状态成本。人们为此提出不同的模式,“百家争鸣”,但仍没有明确的定论。

随着一些以太坊升级计划推进,以及著名以太坊核心开发者极力举荐,状态租赁可能是不同路线图中唯一重叠的部分。因此,我强烈建议计划在当前部署的合约上对状态租赁的支持,并设计模型,以便未来将状态租赁转移至用户。虽然我们还不曾参透状态租赁的精确设计,但当下能做的是应该为成本制定具体计划。

此外,我们并不知道阶段 2 的最终归处,其依然处于早期的研究阶段,包括几个尚未解决的主要问题。鉴于非正式规范和开发过程,以及阶段 2 在阶段 1 的拓展范围。在 2020 年之前启动阶段 2 似乎并不合理。也就是说,虽然 ETH2.0 或在今年推出,但预计 ETH2.0 版本至少要到 2020 年才能支持资产转移或智能合约。

阶段 3:链下状态存储

现在,为了更好地讨论智能合约,我们将几乎完全跳过阶段 3。

通过尽可能多地将状态转移至链下,阶段 3 尽可能减少链上状态。链上存储时并不用存储整个状态,只需将一些状态信息和聚合器(聚合器是表示长数据列表的短数据;Merkle 树即为聚合器的一种)进行存储。用户将负责在链下存储完整的状态。

当用户与状态进行交互时,其会在交易中包含当前状态的证明。这样,运行验证节点的资源要求便会相对低很多。如今已经出现一些聚合器的设计,其存在不同特性和性能特征,但目前尚未作出具体选择。在这个阶段,由于链不再能够保证数据的可用性,我们会停止使用链上通信来进行用户协调。在阶段 3 中,维护和获取链下状态将成为限制设计 DApp 的关键性因素之一。

阶段 4:分片智能合约

然而,一个不可逾越的问题依然存在。虽然 ETH2.0 合约与以太坊的合约同样强大,但其必然会被绑定到一个分片上,且永远无法与另一个分片上的合约进行直接交互。这是分片的直接结果,分片目的在于在分片之间实现状态分割,而无需直接了解其他分片。通过分割状态以及尽可能的减少验证者的工作量来实现拓展。

直接交互需要直接知识储备。根据设计,分片不具有其他分片的直接知识。它仅通过与信标链的跨链通信来了解其他分片。因此,当用户要进行跨分片交互时,就必须等待信标链。具体来说,这意味着如果在分片 A 上部署 SafeMath 模块,分片 B 上的用户必须等待访问,或者在分片 B 上部署新的 SafeMath 模块。

像 SafeMath 这样的简单实用程序将被部署到每个分片,即 1024 个分片上会部署 1024 个SafeMath。但是像 Maker 或 Compound 这样的市场呢?#DeFi 对可组合金融的允诺或许会变得难以跨越分片边界。

收藏 邀请

鲜花

握手

雷人

路过

鸡蛋

相关分类

精彩阅读

广告位

关注我们:锦文与你快乐分享

官方微信

APP下载

全国服务热线:

0312-2335877    0312-2339711

地址:河北省定州市北城区大道观街

Email:jwkj@dzjwkj.com

Powered by Dzjwkj! X3.2© 2013-2018 Jinwen Inc.  定州锦文科技有限公司 版权所有   

定州锦文科技有限公司   冀ICP备17008983号-11