首先感谢 Danny 与 Joe 的协助。

随着信标链临近发布, Eth2 也越来越接近定局,现在是时候与社区快速同步最新 Eth2 的内部运作方式以及成为验证者的具体要求、激励机制以及体验了。本文会概要讲述 Eth2 的背景知识,往后还会发布与 Eth2 验证者各方面相关的系列文章,本文仅作为基础开篇。

迄今为止 Eth2 的开发工作已进行了很长一段时间,在这几年中也取得了巨大进展。最初,由智能合约管理的分片技术和权益证明( PoS )机制是独立的设计,而如今它们已实现高度互联,在效率、可扩展性和安全性方面得到了显著改善。

Eth2 的各个阶段

随着 Eth2 组成部分之间的联系变得越来越紧密,其他部分也被划分为多个阶段,以便更好地梳理 Eth2 不同部分的内容。在撰写本文时,随着客户端软件开发工作进入最后收尾阶段,阶段 0 即将启动。同时,阶段1的规范已经制定完成,阶段2 的规范正在积极研发中。

阶段 0 的内容是信标链,而信标链是 Eth2 的核心,能够管理验证者并且协调分片链。信标链作为实践基础,引导着 Eth2 其他所有方面的发展。阶段 1 的实现以阶段 0 为基础,主要内容是将数据写入分片链。由于阶段 0 为分片链奠定了大部分基础工作,阶段1实现的复杂程度比其他组件要低得多。阶段2是 Eth2 的执行阶段,基本来说就是将 Eth2 从强大的数据库升级成为完全去中心化的计算平台。阶段 0 究竟是什么?

如前所述,信标链能够跟踪验证者集和分片链的状态。在实践中,这意味着只要(定期)跟踪信标链上的动态,用户就能获得足够的信息以验证 Eth2 中发生的任何事情。既信任,也验证。

为了使 PoS 系统正常运行,需要就验证者是哪些以及每个验证者的质押情况达成共识,这样才能知道他们的投票权重有多大,并根据他们的行为进行适当的奖惩。信标链也会管理 Eth2 的分片链,具体体现为在分片中分配验证者职责以及跟踪每个分片的当前状态。

Eth2 与其他 PoS 系统的部分区别在于参与协议的验证者绝对数量不同。其他 PoS 系统中的验证者数量可能为数十个、数百个或者数千个,而 Eth2 的验证者将以数十万甚至数百万计。这种程度的去中心化之所以成为可能,得益于系统使用验证者小组(即委员会)来达成中间共识。信标链根据一定的随机性来将验证者分配到委员会中,委员会负责评估某些部分是否属于信标链和分片链。然后,每个委员会的投票将经由及密码学技术聚合成一个见证消息(attestation),而这意味着验证整个委员会的所有投票不会比验证单个投票麻烦许多。因此,要检查信标链的有效性,只需要部分聚合签名就可以评估大多数验证者的投票。

信标链也会跟踪 Eth1 链和其中的押金,如此一来新的验证者就可以通过将 32 个 eth 发送到部署在 Eth1 链上的保证金合约(deposit contract)来加入 Eth2 系统。通过使信标链对 Eth1 链进行投票验证,在将来 Eth2 就可以为 Eth1 规范链(最长链)上的区块提供经济保证,从而增强 Eth1 链的安全性。

节点和客户端

Eth2 区分了信标节点和验证者客户端,验证者需要这两者才能履行其职责。信标节点(即节点)负责维护整个信标链以及用户或验证者可能需要使用的任意分片。

顾名思义,验证者客户端(即客户端)负责处理的是单个验证者的逻辑。具体实现体现为通过与信标节点进行通信以了解信标链的当前状态,适时见证及提议区块,最后请求信标节点将区块信息发送给其他节点。

注:如果没有运行验证者客户端,那么信标节点包含所有与 Eth2 进行去信任交互所需的所有信息,这类似于 Eth1 中的全节点。

以下摘取了一些区分信标节点和验证者客户端的原因:

要成为验证者,首先需要抵押 32 个 eth,因此想要质押更多数量 eth 的用户就需要运行多个验证者实例。将节点和客户端区分开使得这些用户可以在仅运行一个信标节点的情况下连接多个验证者客户端,从而减少了计算、内存和存储需求。独立开来的验证者模块更容易编写、推理并审计,因此其安全性可能会更高。对于担心出现冗余的用户来说,并行运行多个节点,降低了验证者离线的几率。由于验证者客户端只能通过信标节点与 Eth2 网络的其他部分进行交互,甚至到时还需要通过一个受限的 API,这样大大缩小了验证者节点的受攻击面。如果希望与 Eth2 进行交互但又不想成为验证者,用户只需运行一个信标节点,这将授予他们访问信标链和分片的权限。设计理念

Eth2 的设计理念为 Eth2 内的所有决策提供了有用的参照,并且在许多实例中封装了 Eth2 与其他协议之间的差异。

协议最重要:认识到一切都需要进行权衡,因此协议的安全性和活性优先于其他设计需求。抱最大希望,做最坏打算: Eth2 假设验证者怠惰、收受贿赂、攻击系统的情况,除非采取措施对验证者进行激励。此外,还假定网络不完全可靠,并且灾难性事件的发生可能会迫使大量验证者离线。基于这些假设, Eth2 应该要做到有备无患,具备在第三次世界大战中幸存下来的能力。可见复杂性最小化:在任何可能简化的地方简化,以便 Eth2 易于推理、易于解释、易于审计、易于编写出无漏洞的客户端,并在整体上规避例外情形 。最大程度去中心化: PoS 协议普遍容易在验证者数量这一点上作出妥协,而 Eth2 的设计理念就是要将验证者的规模拓展至数百万,同时鼓励这些验证者独立于彼此履行职责。预见意外: Eth2 上的所有组件都是抗量子计算的、或是能够在量子灾难发生时被替换为抗量子计算的组件。民治民享: Eth2 必须要能够在笔记本电脑上运行。参与的门槛越低,参与者就越多,而这也意味着更高的去中心化程度。结语

相信看到这里大家已经对 Eth2 有了一些基本了解,在本系列的后续文章中,我们会为大家解读更多 Eth2 得以持续运作的细节,敬请关注。

(完)


Eth2 Staking 指南 #1:激励机制
Eth2 Staking 指南 #2
Eth2 Staking 指南 #3:分片化的共识


原文链接: https://blog.ethereum.org/2019/11/27/Validated-Staking-on-eth2-0/
作者: Carl Beekhuizen
翻译: ECN 以太坊中国

本译本来自 ECN 以太坊中国,EthFans 经授权转载。