以太坊2.0的阶段0是怎么回事
扫描二维码
随时随地手机看文章
随着信标链(beacon chain)的启动即将到来,Eth2 也越来越接近定局,现在是时候与社区同步有关 Eth2 的内在运作方式以及成为验证者的具体要求、激励机制和经验等信息了。本文将对 Eth2 进行高层面的概述,此文将构成与验证者相关的以太坊系列文章的基础。
Eth2 的研究工作已经进行很长一段时间了,相关工作在过去的几年中得到了显著改善。最初通过智能合约分开管理的分片设计 (sharding) 和权益证明( PoS) 工作现已转变为高度互联的设计,在效率、可扩展性和安全性方面得到了显著提升。
Eth2 的几个阶段
在 Eth2 的一些组件变得更加互连的同时,其他组件被分成了几个阶段,从而更好地管理 Eth2 的方方面面。撰写本文时,阶段0即将启动,开发人员们已经在对客户端软件进行最后的收尾工作了。与此同时,阶段1的规范已经完成,针对阶段2的研发工作也在积极开展了。
阶段0与信标链有关,信标链是 Eth2 的核心,它管理着验证者和分片的协调。信标链是事实的源泉,Eth2 的所有其他方面都从这里启动。
阶段1建立在此基础上,允许将数据被放入分片中。实现这一组件的复杂性比其他组件要小得多,因为阶段0已经为分片做了大部分基础工作。
阶段2将为 Eth2 增加执行功能,基本上就是将 Eth2 从一个强大的数据库升级为一个完全去中心化的计算平台。
阶段0是什么?
如前所述,信标链会追踪验证者集和分片链。在实践中,这意味着如果你 (周期性地) 追踪信标链上发生的事情,你就会知道足够的信息来验证 Eth2 中发生的任何事情。通过验证来信任。
为了使 PoS 系统能够正常运行,需要就哪些是验证者以及每个验证者的抵押情况等方面达成共识,这样才能知道他们的投票权重有多大,并根据他们的行为来按比例地进行奖励和/或惩罚。信标链也会管理 Eth2 中的分片部分,即信标链也负责将验证者分配到分片中并追踪每条分片当前的状态。
Eth2 与其他 PoS 系统的部分区别在于参与到 Eth2 协议中的验证者的绝对数量。与其他 PoS 系统中可能存在的数十个、数百个或者数千个参与验证者的情况不同,Eth2 扩展到了数十万甚至数百万的验证者。这种程度的去中心化之所以成为可能,得益于由诸多被称为委员会 (committees) 的验证者小组达成的中间共识。
本质上,信标链基于一定的随机性来将验证者分配到各个委员会中,委员会将负责评估哪些是 (以及哪些不是) 信标和分片链的一部分 (备注:也即对区块进行投票验证)。之后,每个委员会的投票将以加密的方式聚合成一个证明 (attestation),这意味着验证每个委员会的所有投票只是比检查单个投票略微麻烦一些。因此,只需考虑少数的聚合签名来评估许多验证者的投票,就可以核查信标链的有效性。
信标链也会追踪 Eth1 链和上面的抵押金,这样新的验证者就可以通过将 32 ETH 发送到部署在 Eth1 链上的抵押合约 (deposit contract) 来加入到 Eth2 系统中。信标链对 Eth1 链进行投票 (也即信标链对 Eth1 链上的 Staking 参与者的抵押进行投票验证) 带来的结果就是,Eth2 将在未来的某个时候,可以为区块属于 Eth1 权威链 (也即所谓的最长链) 的一部分提供经济保证,从而增强 Eth1 链的安全性。
节点 vs. 客户端
Eth2 将信标节点 (beacon nodes) 和验证者客户端 (validator clients) 区别了开来,且验证者将同时需要信标节点和验证者客户端才能执行自己的职责(即进行投票验证)。
信标节点 (也即节点) 负责维护信标链,以及对用户或验证者需要使用哪条分片进行管理。
验证者客户端 (也即客户端) 负责处理单个验证者的逻辑。即客户端通过与信标节点进行通信来了解信标链的当前状态,并在适当的时候提议区块或者对区块进行验证,最后通过请求信标节点将此信息发送给其他信标节点。
“如果你不运行验证者客户端,信标节点包含了所有你与 Eth2 进行无需信任交互所需的信息,就像是 Eth1 中的全节点一样。”
以下是支持这种将信标节点与验证者客户端区分开来的众多理由中的其中一些:
每个验证者都需要抵押 32 ETH 才能激活,因此任何想要抵押超过 32 ETH 的用户都将需要运行多个验证者实例。将信标节点与验证者客户端区别开来,将可以让这部分用户只需运行一个信标节点和多个与该节点相连接的验证者客户端,这样可以减少用户的计算、内存和存储要求。
将验证者客户端区别开来作为独立的模块,这样客户端将很可能更加安全,因为客户端更易于编写、推理和审计更小的代码模块。
对于特别担心会出现冗余情况的用户来说,实际上可以并行运行多个节点,这样可以降低验证者离线的概率。
由于验证者客户端只能通过某个信标节点才能与 Eth2 网络中的其他部分进行交互,且即便那样也需要通过一个受限的API,这样验证者的攻击面就大大减少了。
对于想与 Eth2 进行交互但不想成为验证者的用户来说,他们只需要运行一个信标节点就可以运行他们访问信标链和所有他们想要访问的分片链。
设计理念
协议高于一切:虽然我们需要承认一切事物都有其权衡之处,但协议的安全性与活性高于其他的设计需求。
抱最高的希望,做最坏的打算:Eth2 的假设是,验证者很懒,会收受贿赂,而且还会试图攻击系统,除非能激励他们不这样做。此外,Eth2 还假设,网络不完全可靠,而且灾难性事件可能会迫使大量验证者离线。基于这些原因,Eth2 应具备能在第三次世界大战中幸存下来的能力。
最小程度的可行复杂性:只要有可能,Eth2 已得到简化,因为这将使其更易理解、更易向他人解释、更易审核、更易编写无 Bug 客户端,并且通常更易避免边缘化的情况。
最大程度的去中心化:PoS 协议普遍在验证者数量这一点上进行了妥协,而 Eth2 的设计初衷就是将验证者数量扩展到数百万,同时鼓励这些验证者彼此独立工作。
做好迎接意外的准备:Eth2 上的所有组件都是抗量子计算机,或者可以在量子大灾难到来之际变成抗量子计算机的组件。
民治民享:Eth2 必须能在笔记本电脑上运行。参与门槛越低,参与的人就越多,这有助于带来更高程度的去中心化水平。
总结
现在大家已经对 Eth2 有了基本的了解,在本系列的后续文章中,我们将为大家介绍更多细节,探讨 Eth2 得以运行的原因。