以太坊 2.0

摘要:我们分析了在没有推迟的状况下最早将于 2020 年 7 月发布的以太坊 2.0 。但是,该发布或许并不如听起来的那么重要。最初,以太坊 2.0 将主要作为新的权益证明(proof of stake)共识机制的测试网络。大部分的经济活动和智能合约将保留在原有的以太坊网络上,该网络将继续作为以太坊 2.0 的并行系统存在。二者间将会有一个单向锚定的通道,使 Eth1 可以转移到 Eth2,但反之则否。鉴于以太坊决定通过分片(sharding)进行扩展的决定,我们认为以太坊除了尝试这种相当复杂且费时多年的过渡方式外别无选择。

(伦敦碎片塔)

概要

以太坊正在尝试将其整个经济转移到一个新的网络,以太坊 2.0 上。这种过渡是高风险且高度复杂的,并且将需要相当长的时间。我们认为,这样做的主要动机是可扩展性。自从以太坊网络发布以来,事实证明了它很受欢迎,交易量也明显增长。为了使这种增长持续下去,全运营商和共识代理(无论是工作量证明(PoW)或权益证明(PoS)都将需要越来越大的计算机,意味着更昂贵的成本。这最终可能导致其中心化程度变高,可能会降低系统的抗审查性,直到最终网络变得毫无意义。

比特币面对这个问题所采取的方法似乎是例如闪电网络 ( lightning 的第二层解决方案,而比特币现金似乎更想假装该问题不存在,至少在某种程度上是这样。对以太坊而言,其面临该种困境选择的途径也越来越清晰:分片(sharding)。

分片的核心问题是其代表了以太坊经济模型的重大变化。如果以太坊是一个不可阻挡的单一世界计算机,那么将其分解为多个分片(多台计算机),则可能无法满足用户的期望。如果分片 1 上的智能合约要与分片 2 上的智能合约进行交互,由于分片之间需要对一系列事件达成共识并共享信息,在此过程中可能会有很大程度的摩擦。此与同一分片上的两个合约进行交互时相比,体验将有所不同,因此,行星级计算机(planetary scale computer)的愿景可能会在某种程度上开始崩溃。甚至有人可能会认为以太坊和分片是对立的概念。另一方面,以太坊可能正在介入某些利基领域(niche cases),即对不同类型的应用程序感兴趣的用户的不同细分部分几乎不需要交互。在以太坊网络中,分片是具有一定意义的,其可以提高网络的灵活性,处理共享相同的底层以太坊代币的不同用户组。

分片代表了对以太坊运作模式根本性改变的事实,解释了为什么向分片过渡是比许多人想象的更具破坏性的改变。现有的智能合约不能轻易地移转到分片网络。这意味着将需要重新构建一个新的网络和智能合约。此一过渡将是一个持续多年的痛苦历程。在以太坊 2.0 的初始阶段,它将和以太坊 1.0 并存,在将来的某个时点两个系统将重新合而为一。

在以太坊未发布前,原本计划采用权益证明,而非工作量证明为共识机制。而此过渡计划,如同分片,由于被证明比预期的更复杂,因此被推迟了。随着以太坊过渡至新的网络,同时将其作为启动权益证明系统的契机是有一定道理的。以太坊虚拟机也将升级到新版本,此次升级将为相关技术和以太坊运行监测经验带来超过 5 年的进步。

过渡三阶段

以太坊 2.0 的过渡计划分为三个阶段,概述如下:

阶段

主题

说明

0

信标链(Beacon chain)

信标链阶段可能会在短期内发布。其过去曾被推迟过,然而现在预计于 2020 年 7 月启动。此阶段主要包含权益证明系统,因此可被视为是测试网络,尽管使用的代币将是真实的以太币。权益证明系统将在许多方面发挥作用,例如:

  • 管理质押者(staker)
  • 管理质押资金
  • 协助选择区块生产者( block producers)和质押委员会( staking committees)的随机数生成器
  • 质押者对区块提案进行投票
  • 对质押者的奖惩机制

1

分片链(Shard chains)

分片链最初将部署 64 个分片。此阶段的网络再次被设计为具有高度试验性。阶段 0 旨在测试权益证明基础结构而不涉及任何其他重要经济活动,阶段 1 则旨在测试基本分片模型。

在此阶段,实质上将有 65 个并行的区块链,第 0 阶段的信标链和 64 个新的分片链。信标链和所有 64 个分片之间将有双向通信和引用渠道。

2

执行阶段(State execution)

在此阶段,重大经济活动(不包括质押)和智能合约将能够在网络上运转。分片将不再只是基本的数据容器,而是具有类似以太坊 1.0 的功能,例如虚拟机和智能合约。我们认为该阶段的规范详细说明尚未最终确定,同时,要使网络为阶段2做好充分准备需要进行大量的开发工作。

单向锚定(The one way peg)

当以太坊 2.0 发布时,将有两个并行的以太坊网络,即 Eth1 和 Eth2。最初,我们可以将 Eth1 代币转换为 Eth2,但是不能将 Eth2 代币转换回 Eth1。因此理论上,Eth2 的价格应该会小于或等于Eth1 的价格。然而,在过渡的早期阶段,Eth2 甚至可能不会有价格或无法获得交易所支持,因为该代币可能不会有除了质押以外的其他任何用途。甚至完全不可能作为基本交易用途。

为了将 Eth1 转移到 Eth2 ,必须使用 Eth1 上的存款合约(deposit contract)。该合约会销毁 Eth1 上的代币,而此销毁可作为发行新的 Eth2 代币的证明。尽管或许可以通过更改硬分叉协议来恢复 Eth1 链上的代币,但这些代币基本上永久销毁。转移到 Eth2 的代币会自动进入权益证明验证池。正如我们在 2018 年的权益证明文章中所解释的,权益证明背后的构想是共识代理的投票权重和奖励取决于质押代币的价值。在 Eth2 规范中,每个质押代理都需要 32 个 ETH 。如果向合同发送了超过 32 个 ETH,质押者也不会从这些额外的代币中获得收益;如果发送的少于 32 ETH,则质押将不会激活。因此,要将 ETH 转移到 Eth2 中,应该分每批 32 个代币进行。每批的 32 个 ETH 可以是单独的质押代理。

代币发行

如上所述,将同时存在两个并行系统。 Eth1 将继续作为工作量证明链,Eth2 则将在新的权益证明系统下运行。在此期间,共识代理的两方,即矿工和质押者,都需要激励。因此,以太坊的通胀率将至少暂时增加,直到两个系统最终合并。这可能被认为是一个缺点,但是可能是确保成功过渡到 Eth2 所值得付出的代价。

至于 Eth2 的通胀计划,其发行率将取决于参与质押过程的以太币的数量。年度发行计划将基于以下的演算法:

其中 Eth2 是参与权益证明验证池的以太币数量。这些数字似乎源自于 Vitalik Buterin 在 2019 年 4 月发布的帖子

上述公式背后的想法是,将越多的 ETH 转移到 Eth2 中,发行的新代币就越多,然而,投入的代币越多,可获得的投资报酬率就会下降。通胀计划如下:

图 1 – 以太坊 2.0 通货膨胀率

参与质押的 ETH

最大年度发行量

最大年度 Eth2 通货膨胀率

65,000

46,151

71.0%

100,000

57,243

57.2%

1,000,000

181,019

18.1%

10,000,000

572,433

5.7%

100,000,000

1,810,193

1.8%

134,217,728

2,097,152

1.6%

(来源: BitMEX Research)
(注:启动信标链的最低门槛约为 16,000 ETH)

图 2 – 以太坊 2.0 通货膨胀率

(来源: BitMEX Research)

上述发行计划表与激励有关。激励应该确保在最初有很大的诱因将代币移转到 Eth2 并进行质押,而此种转换的激励随着更多代币移入将越来越低,因为如果 Eth2 已经成功,所需的代币就越少。如此可以确保有足够的代币进行转移,从而扩大新的网络规模,而如果 Eth2 证明很受欢迎,则代币发行率不会变得太高。

当然,随着这些新币发行,有些人可能会思考此将要如何符合以太坊最初的“永久线性通胀( permanent linear inflation)”计划。

永久线性供应增长模型降低了有些人认为比特币过度集中财富的风险,并为生活在当今和未来的个人提供了购买货币单位的公平机会,同时阻止以太币的贬值,因为随着时间推移,“供应增长率”( supply growth rate)仍会趋近于零。

(来源:以太坊白皮书)

有一些潜在因素可以减轻这种潜在上升的通胀率带来的影响:

  • 在阶段 1,费用系统预计将包含两个要素,一个是销毁代币的基本费用,另一个是奖励质押者的溢价费用。这些销毁的代币会降低通胀率。
  • 如果验证者未能参与验证过程,例如由于节点崩溃或网络断线,那么质押奖励将下降。
  • 如果验证者行为不当,可以对其进行惩罚,这些代币也将被烧毁。

上述机制可能造成以太币的销毁,从而抑制通胀率上升的影响,然而这些因素抑制的幅度很难预测,因此发行率存在很大的不确定性。

我们不确定任何一部分交易费用被销毁的效力。从经济学的角度看来是较合乎逻辑的,由于用户向共识代理支付服务费用,共识代理和用户的利益是一致的。如果共识代理的资金来源完全由用户付费而不是来自区块奖励,则两方的发生冲突的可能性较小。同时,与将其交由费用市场机制相比,尝试任意决定正确的奖励时间表可能会导致效率低下。当然,比特币就此点而言也尚未成功,区块奖励仍然很可观。至于以太坊,从长远来看,将所有交易费都交给质押者可能更具持续性,并且可以降低通胀计划以抵消其影响。毕竟,验证者的目的只是为了保证用户活动安全,如果用户不进行任何操作便不需要安全性。这可能能使安全和通胀之间的困难权衡变得更加容易。

链的合并

最终的计划是将 Eth1 和 Eth2 合并回同一个系统,在我们看来,这可能需要数年之久。其将通过使 Eth1 成为 Eth2 内部的一个分片来实现。然后便能够在两个分片之间双向转移以太币,直到最后两种代币将合并。根据计划,目前在 Eth1 上进行的许多活动现在都可以在该 Eth2 分片中继续进行。

下一步可能是共识系统的最终合并。 Eth1 分片可以逐渐过渡到权益证明机制。起初,工作量证明机制可以继续存在,但是在设置一定数量的区块(例如,每 100 个区块)之后,区块的共识可以通过权益证明决定。权益证明基本上将优先于工作量证明,然后在这些权益证明检查点(checkpoints)中,权益证明将占上风。最终,工作量证明和工作量证明区块奖励将不具必要性而可以完全被淘汰并关闭。这将为以太坊用户和投资者在通胀计划表上提供更多确定性。

网络提议常数

以下是 Eth2 规范中我们认为最具重要性和最有意义的一些常数。

阶段

可能的初始网络架构设定

0

区块时间间隔

12 秒

每笔质押初始要求的 ETH

32

每个检查点的区块数量

32

目标质押委员会规模

128

质押委员会最大规模

2,048

每个插槽委员会数量的最大值(将在阶段 1 中删除)

64

1

分片数量

64

每个信标链参考的最大分片数量

64

分片质押委员会目标规模

128

分片质押委员会期限

27 小时

最大分片区块规模

1 MB

(来源: BitMEX Research, Ethereum 2.0 Specs

权益证明

权益证明的一般构想是根据累积最多的质押(即获最多代币投票选出的链)的分叉选择规则。当然还涉及如何建构这个投票过程的问题。 Eth2 投票系统背后的核心原则与2018年以太坊提案相同,仍然是基于 Casper Friendly Finality Gadget 的构想。但是,系统目前已在 Casper Friendly Finality Gadget 和 Latest Message Driven Greedy Heaviest Observed Subtree Fork选择规则(Casper FFG & LMD GHOST Fork Choice Rule)的组合基础上进行了更新。

我们将试着通过将投票系统分解为几个组成部分来尝试解释其基本机制。首先要考虑的是大量的质押者池子,每个质押者最多由 32 个 ETH 代表。该池子不直接对区块进行投票,而是被安排到从更广大的池子中随机选择其成员的各个投票委员会中。

成立委员会的原因是并不是每个质押者都可以参与每个区块的投票,否则区块链会包含太多投票数据而无法扩展。委员会也有助于将投票数据聚合成可管理的数据块。因此会选择一组随机子集的质押者在这些委员会中投票。 Eth2规范将每个委员会的质押者目标人数定为 128。其背后的想法是,即使只有更广泛的质押者池子中的一小部分将支持任何特定的区块提案,该数量也足以为区块的选择提供概率保证。可以对签署投票的签名进行汇总,以减少所需的区块空间,确保网络可扩展。

委员会通过 “ RanDAO” 类型的系统随机选出。这种随机选择由种子决定,每提議一個區块时,就将其添加到种子中。为了抵御權益粉碎攻擊(Stake Grinding Attack),區塊提案者只有两种能夠影响种子的选项,即提议或不提议。因此操纵規模有限。

除了将质押者分配到委员会之外,还有另一个子类别需要考虑,区块和检查点区块。每 32 个区块中有一个是检查点区块,而这些检查点之间的时间间隔有时称为时期(epoch)。在每个时期中,有 32 个 12 秒的时间槽(timeslots)可用来提议区块。因此,每个时期都有32个委员会的32组插槽。在一个时期过后,所有委员会成员会被重新洗牌。每个时间槽都有一个由128个成员组成的委员会,其中一个成员被授予垄断的提案权,可以在12秒内提议一个区块,另外127个成员则对区块进行投票。这种投票有时被称为证明(attestation)。

下图 3 说明了将质押代理分配给委员会的情况:

图3 –信标链中质押代理的分配示例(假设每个插槽(slot)为一个委员会)

实际上,情况比上图所显示的更复杂一些。在阶段 0,每个插槽最多可以有 64 个委员会,而不仅仅是上图所示。因此,如果每个委员会有 128 个验证者,每个时期可能包含多达 262,144 质押者的集合,代表约 840 万个 ETH。

每个质押者会被分配给一个委员会,质押者越多,委员会越大。委员会的最大规模为2,048,这大致等于每个时期使用的以太币总供应量( 64 个委员会* 32 ETH * 32 个插槽* 每个委员会2,048位质押者= 134.2 百万个ETH),因此,无论有多少人选择质押,委员会中总会有足够的空间。下图 4 说明了委员会数量和每个委员会的成员数量如何随着质押池中 ETH 的数量而变化。它显示随着质押池的增长,委员会的数量首先增加到 64 个,然后(当质押池约为 840 万 ETH 时)委员会的规模开始增加。

图 4 –委员会的数量和每个委员会的成员数量

为了确定哪些区块的得票数最多,需要将所有委员会的所有选票相加。如果投票者的表现良好,其可以从新发行的以太币池子中获得奖励。另一方面,如果投票者进行某些类型的恶意行为,他们可能会受到惩罚并失去部分质押的代币。这些对恶意行为的惩罚旨在防止诸如质押者对两个相冲突区块进行投票的行为。然而,在某些情况下对冲突区块进行投票是合法的,因此惩罚规则并不直观,我们将在后续报告中讨论这些规则。质押者也会因离线而失去奖励。

最终化 

当委员会成员对某个区块进行投票时,他们不仅要对特定的区块提案进行表决,而且还必须引用并表决特定的历史性检查点区块。或更准确地说,引用从一个检查点区块到另一个检查点区块(源检查点和目标检查点)的過度。正是这种机制协助确保投票程序已经完成。因此,基本上会发生两种权益证明投票程序,一种在另一种内部。下图 4 说明了此两种投票类型,以及这些投票可能储存在哪些区块中。

图 5 – 假设在完美通信状态下的投票和引用(假设每个插槽为一个委员会)

如果一个检查点区块有另一个检查点区块建立于其上,并且在同一周期中有超过三分之二的委员会成员在投票中引用该检查点,则该区块是”合理化的( justified )”。下一阶段是最终化(finalisation ),当一个区块链上的区块在其后包含两个合理化的区块时,则该区块是“最终化的( finalised )”。因此,在大多数情况下,当三分之二的票数门槛因为强大的通信渠道很快达成,用户需要等待大约一个周期( 6.4 分钟)进行合理化,并等待两个周期( 12.8 分钟)进行最终化。如下图 6 所示。

图 6 –正常情况下信标链中的合理化和最终化过程

惩罚条件

正如我们上面提到的那样,惩罚条件并不直观,选民不能仅仅因为投了两个相冲突的区块而受惩罚。因此,有以下三种情况下可以对投票者进行惩罚。

可以进行惩罚的条件:

  1. 区块生产者在其分配的插槽内提出两个相冲突的区块提案。
  2. 产生两票,其中包含对相同高度(height)的检查点区块过渡的冲突引用。
  3. 用重叠的检查点区块过度引用产生两票。例如,引用从检查点区块 1 到检查点区块 4 的过渡的投票,和引用从检查点区块 2 到检查点区块 3 的过渡的投票。有人可能会认为此规则应该由更明显的规则取代,即所有区块过渡引用都应该按顺序进行,然而一个诚实节点可能会错过检查点区块,而不按顺序的投票可能是合法的。下图 7 说明了此种行为。

图 7 – 惩罚条件示例–重叠/环绕检查点过渡引用

权益证明过程评估

据称,在最终化后,用户可以确保其交易不会有双花的情形。然而,这些系统极其难以评估,尤其是在评估收敛(convergence)和最终化(finalisation)的程度时。

这整个过程中的投票委员会,投票委员会的索引,引用检查点区块过渡以及等待两个时期的最终化可能是不必要的抽象,仅是将权益证明投票系统分解为不同的组件以增加复杂性并混淆由于无利害问题(nothing at stake),安全模型从根本上被破坏了的事实。另一方面,也许将权益证明过程分解为这些子组件确实会为网络增加安全性。从概率的平衡来看,我们认为这些投票过程的各个方面都可以在一定程度上提高安全性。流程的复杂性,例如各轮质押中的各轮质押,确保将质押客户转换为任何利润最大化的非收敛行为在技术上可能是极具挑战性的,这增加了一定程度的安全性。然而在我们看来,这是否会使系统足够强大以长期生存和发展,是一个有待商榷的问题。但是,我们想在评论和分析中说明,我们对此一系统的理解是不完整的。

请注意,我们上面的描述只是就过程做基本概述,其中有许多過度简化和我们没有提到系统面向。例如,我们没有涉及到进入或退出質押池,如何計算各質押者的奖励和懲罰,所有投票数据占用多少区块空间,或如何彙總和計算質押等。

分片

在阶段 1 中,分片被添加到系统中。最初的计划是从 1,024 个分片开始,现在已缩减到仅 64 个。信标链仍被视为主链或母链,直到现在它还包含与这些分片的链接。由于有 64 个分片,并且每个信标区块最多可以链接到 64 个分片,因此假设在正常操作下,每个信标区块都可以链接到每个分片。

如此一来便有两种引用方式,分片链区块引用信标区块(带有信标区块的哈希值),以及信标区块引用分片链区块(此称为交联(crosslink))。在某些信标区块中可能会丢失某些分片引用,但是每个分片链区块都必须链接到信标链。

图 8 –以太坊分片系统中的区块结构图示(显示两个分片)

(來源: BitMEX Research)
(注:蓝色箭头表示一个区块的哈希值,每个区块中都必须包含哈希值。灰色箭头表示交叉分片引用,信标区块中可以包含也可以不包含交叉分片引用。如果错过了分片区块,则引用可以包含在下一个信标区块中,如图右所示)

需要注意的是,在阶段 1 中,分片系统和质押过程是相互关联的。从阶段 0 开始,每个插槽的多个验证者委员会已经映射到了分片上。因此,每个分片都有其自己的质押者投票委员会,该委员会在每个提案者委员会期间都会发生变化。如同信标链​​的方式,委员会中的一名成员将承担在分配的时间段内产生区块的任务,而其余的委员会成员则将对每个提案进行投票。需要考虑的关键点是,当信标链通过交叉链接引用分片区块时,所有这些投票信息都将包含在信标链中。

下图尝试说明将质押者分配到分片链的可能分配。在阶段 1 中,将质押者随机分配到信标链,特定分片,或不进行分配。

图 9 –以太坊潜在质押者委员会在分片中的分配

信标链每个插槽因此仅剩下一个验证者委员会。但是,如图 8 所示:

  • 每个分片区块均包含一个最新信标区块的哈希值,同时,
  • 信标区块可能包含来自分片(交联)的所有投票数据。

因此,分片链上的所有投票和质押也可以用于主信标链的分叉选择规则计算和最终化过程中。权益证明系统的运作原理与之前相同,只是信标链包含的投票信息并非委员会索引中的投票信息,而是包含每个分片的投票信息。

单个分片链中没有检查点区块,也没有合理化或最终化过程。取而代之的是,要确保分片内部交易最终化的保证,必须等待信标链。一旦信标链中的相关区块最终化完成,分片链中的用户就可以获得分片内交易的保证。

因此,交联具有三个功能:

  • 使分片链区块委员会中的质押者投票能够被计入主信标链上的投票,并且
  • 合理化和最终化分片链区块,
  • 所有其他形式的跨分片通信机制,例如跨分片传输ETH或其他资产,尽管据我们所知,尚未完全完成。虽然要到阶段2才可能出现此议题,但这可能是可扩展性和可用性之间不完美折衷的另一个领域。甚至可以说该挑战是如此之大,以至于使整个分片模型都会受到质疑。

分片结构为希望运行节点的用户提供了灵活性。人们可以通过运行一个节点处理所有一切,包含信标链和每个分片。人们还可以只运行信标链,该信标链包括一些分片区块的区块头。此外还有第三个选择,即运行一个节点,该节点将验证信标链和选定的分片子集。如果选择不运行一个节点来处理每个分片,那么就是依赖其他人来检查这些分片中进程的真实性,然而此种方式的想法是某些用户会选择验证那些分片,因此其保证程度在概率上而言是很高的。

结论

以太坊持有人喜欢尝试新的复杂系统,包括 DAOICOsMaker 和现在的 DeFi 。以太坊社区的一些成员向我们表达了这样的担忧:以太坊技术现在已经有5年历史,并且落后了,他们想要一些新东西。因此,以太坊 2.0 满足了热衷于尝试新想法的社区需求。因此,我们预测将有相当数量的资金涌入以太坊 2.0 获取质押奖励,也许价值数十亿美元的 ETH。

许多人问我们以太坊 2.0 的推出会对价格产生什么影响。当然在短期内,由于受到新区块赚取奖励的能力所吸引,大量的 ETH 可能会被锁定在信标链内。这可能会限制 ETH 在市场上的供应并推高价格,另一方面,其可能只是吸引其他被视为锁定的合约的 ETH。然而,真正的问题是,以太坊 2.0 是否会推动长期价值,为此,供应不仅需要受到限制,还需要持续性的需求。

想让以太坊 2.0 网络成功,权益证明和分片系统必须发挥作用,并具有足够的吸引力,才能将以太坊生态系统中具有经济意义的组成部分加入其中。智能合约和 DeFi 系统必需选择适合它们的分片,并投资升级其技术以使其与分片系统的复杂性和局限性相容。因此,以太坊生态系统的重要部分需要很多年才能做出转换。以太坊 2.0 是一个令人难以置信的雄心勃勃的项目,我们认为其能够在沒有出現重大失败的情況下按计划成功的可能性很小。

在撰写此份报告时,有一件事情格外吸引我們的注意,以太坊 2.0 异常复杂。由于有如此众多的委员会,分片和投票类型,出错并且进一步延期的可能性似乎很大。然而,尽管存在所有这些潜在的问题,以太坊 2.0 可能仍然值得一试。如果成功的话,潜在的回报是非常可观的。

免责声明

尽管本文中的许多论点是引用而来,但我们并不保证其准确性。欢迎各方指正。