以太坊的权益证明系统 - 计算惩罚和奖励

摘要

在几周前启动我们的以太坊权益证明(PoS)验证者节点后,在我们对 PoS 系统的第一次详细考察中,我们对验证者可以获得的每一种类型的奖励和惩罚进行了分类和考察。我们提供了基于实时系统的许多场景的示例,并对其中一些奖励和以太坊的供应之间的相互关系进行了评论。最后,我们解释了 PoS 系统中一个进化的设计理念,并且随着开发人员从观察网络的经验中学习,本报告中讨论的许多复杂的参数和常数可能会随着时间的推移不断完善。

概览

早在 2020 年 5 月,我们就对以太坊提议的 PoS 系统的机制和主要流程做了概述。我们解释了区块提案的投票是如何进行的,在不同的验证者委员会中。我们还解释了一些概念,如目标区块、源区块、证明、最终确定和削减条件。在这篇文章中,我们将更详细地介绍对验证者好的或坏的行为所能得到的奖励和惩罚。我们将尝试涵盖所有主要的奖励和惩罚,并对每种类型的情况进行实例计算。

这是我们计划中关于 PoS 系列的第一部分,在我们决定在 2021 年 8 月 31 日成为一个验证者之后。提醒您,以太坊 2.0(信标链)目前已经上线,与以太坊 1.0 平行运行。信标链目前是一个概念验证系统,计划最终将两条链合并在一起,然后关闭旧的工作量证明系统(PoW)。

奖励

下表是验证者在 Ethereum 2.0 网络上可以获得的主要奖励的摘要。我们将继续详细了解每个奖励。

图 1 - 奖励概要表

活动单个验证者对单个事件的典型奖励(基于当前的网络条件)
区块提案0.005 ETH
正确证明0.00002 ETH
及时证明0.000005 ETH
检举者0.0625 ETH

提案者的奖励

正如我们在上一篇文章中提到的,2021 年 8 月 31 日,BitMEX Research 验证者在 1,964,794 时隙中产生了它的第一个区块。每个验证者都被随机分配了一个时隙位,它有权生产一个区块,预计每个月会发生一次左右。在我们的区块产生后的两个纪元(当槽位最终确定时),我们的验证者收到了它的奖励,大约 0.0052 ETH。生产区块的奖励可能是 PoS 系统中最基本的激励措施,因此我们首先关注的是它。这个奖励不是固定的,而是根据几个因素而变化的,即以太坊的总质押和活跃验证者的数量。

等式中要计算的第一个部分是所谓的 “基本奖励”。这是整个网络在任何特定时间内的一个恒定值。基本奖励可以通过使用以下公式计算。

常数 4 和 64 是由协议设定的值。64 被称为 BASE_REWARD_FACTOR,4 被称为 BASE_REWARDS_PER_EPOCH。在上面的公式中,我们并没有将这两个数字抵消以得到 16,因为这些常数也在协议的其他地方使用。

目前网络中的总活跃余额约为 710 万个 ETH,有效余额是每个验证者的平均余额。这个平均数通常为 32 ETH 左右。它永远不可能大于 32 个 ETH,因为它在这个水平上是有上限的。它也不可能比 32 ETH 小很多,因为最小的初始质押余额是 32 个 ETH。然而,如果一些验证者被惩罚或削减,并且这些惩罚大于奖励,那么平均有效余额可能会略低于 32 ETH 。为了简单起见,在下面的计算中,我们使用了 32 的数值。

将上述数值和当前网络中的数据代入公式,我们得到的基本奖励如下。

在计算出基本奖励后,就可以根据下面的公式计算出归属于每个提案者的奖励。公式中的数字 8 是协议中的另一个常数,称为 PROPOSER_REWARD_QUOTIENT。证明者的数量是指包含在提案区块内的验证者证明的数量,这激励了区块生产者在他们的区块中包含投票。另一种思考方式是,区块提案者可以从他们制作的区块中的所有证明中获得一定的奖励。假设 100% 的参与,这应该是每一个区块中所有验证者中的 1/32 的投票。

根据上述公式,每个区块提案者的奖励如下。

这是 0.0053 个 ETH,相当接近我们在实时网络中看到的 0.0052 个 ETH。下图显示了该示例。一个验证者提出了一个区块,两个时段后,验证者获得了大约 0.005 ETH 的奖励。

图 2 - 提案者奖励

来源: beaconcha.in

公式解读

将上述两个公式结合起来,算出每个区块生产者的奖励,对试图了解发生了什么会有帮助。

在大多数情况下,证明者的数量会随着总的有效余额的增加而增加,因此在某些方面,这两个词是相互抵消的。然而,活跃的总余额是有平方根的。因此,随着更多的以太坊转移到信标链上并开始验证,每个区块生产者的奖励会增加,但速度会越来越慢。这是因为每个时段的区块生产者的数量永远不可能高于 32 个,因此这个奖励可以随着质押总额的增加而增加,而不会导致产生太多的以太。这与其他奖励相反,例如证明者的奖励,随着质押总额的增加,每个证明者的奖励都会下降。(我们将在后面详细讨论这个问题)。) 因此,这实现了信标链的目标之一,它确保通货膨胀与质押的币的数量的平方根大致成正比。

证明者奖励

我们要研究的下一个奖励是证明者的奖励。证明是对块状生产者的提案进行投票的过程。

一份证明包括以下内容:

  1. 您要投票的区块的哈希值
  2. 您所投票的区块的高度(例如:投票时的链尖)。
  3. 来源 - 通常是上一个时段中第一个区块的区块哈希值
  4. 目标 - 通常是当前时段中第一个区块的哈希值

对正确和完美的证明的奖励计算如下:

请注意,上述公式是过度简化的。正确的证明有三个类别,每个类别的奖励都是一样的。我们把它们简化在一起,然后乘以 3,而不是分别考虑每种情况。与提案者的奖励一样,支付通常在证明后的两个时段内收到。

进行上述计算,使用上面的 6,064 Gwei 基本奖励,假设 100% 的证明者参与,可以得到每个证明者 23,498 Gwei 的奖励。这大约是 0.00002 个 ETH,与者们在网络上看到的情况一致。这个奖励的价值大约比每个验证者的提议者奖励小 225 倍。相比之下,证明者的总奖励通常比提案者的总奖励大 32 倍左右。

图 3 显示了一个正确证明的示例。在 1,972,825 时隙中,我们的 BitMEX Research 验证者对 1,972,824 区块(前一个区块)进行了验证,并获得了 22,469 Gwei 的奖励,完美的验证,合理地接近上述计算值。

图 3 - 正确证明 

可以在 beaconcha.in 上看到上述证明:

图 4 - 正确证明的示例

来源: https://mainnet.beaconcha.in/block/1972825#attestations

如上所述,如图 3 所示,在评估鉴证和计算证明者报酬时,有三个标准需要考虑。

  • 票选出正确的源区块
  • 票选出正确的目标区块
  • 票选出正确的头块投票(链尖)。

下面是一个未能满足全部三个标准的示例。在区块高度 1,972,769,BitMEX Research 验证者证明了区块 1,972,768(前一个区块)。然而,三个标准中有两个没有通过,导致两个惩罚和一个奖励。总的来说,这导致了 813 Gwei 的净惩罚。

图 5 - 部分错误证明


人们可以在 beaconcha.in 上看到上述证明

图 6 - 部分错误证明的示例

来源: https://mainnet.beaconcha.in/block/1972769#attestations

分析该证明,可以看到其主要特征:

  • 源区块被正确投票。上一个时段的第一个区块,即 61,648 时段的 1,972,736 区块的哈希值以 …bfab 结束,正如上面的证明所示
  • 目标区块被错误地证明了。目标区块的哈希值以 .6e26 结尾,这是 61,648 时段的最后一个区块,而不是本应是 61,649 时段的第一个区块。
  • BitMEX Research 验证者投票给以 …6e26 结尾的区块哈希值作为头部(区块高度 1,972,768),然而这是不正确的。这是上一个区块的哈希值,高度为 1,972,767。

我们的验证者选择了一个目标块和头部作为前一个块,而不是顶端。在我们被惩罚的大多数情况下,这就是原因。我们的节点犯了几次这样的错误。这个错误的原因似乎是,我们的节点在证明到期时还没有及时接收、下载和验证最新的区块。因此,该节点投票时认为最近的区块生产者错过了他们的时间段,而使用了前一个区块。糟糕的网络传播造成了这个错误,然而这只被认为是一个小的和常见的错误,因此惩罚是很小的。

确保更快投票的激励措施

还有一个额外的奖励,其价值最多相当于基本奖励的八分之七。这个奖励是为了确保更快的投票,投票延迟越大,这里的奖励就会下降。如果证明被列入下一个时隙,那么就会得到全额奖励,即基本奖励的八分之七。投票每推迟一个区块,奖励的这一要素就越低。例如,如果证明晚了两个区块,奖励就减半;如果证明晚了三个区卡,奖励就会被除以三,等等。

BitMEX Research 节点总是及时投票,并一直在下一个时隙投票。然而,我们发现了其他验证者迟到的投票的例子。这方面的一个例子是验证者 38,570。如下图所示,2,018,822 区块的证明被包含在 2,018,826 区块中,延迟了三个区块。因此,由于时间上的延迟,支付的总奖励只有 18,990 Gwei,而不是正常的 22,000 Gwei。

图 7 - 迟到的证明

来源: https://mainnet.beaconcha.in/validator/38570#attestations

奖励和发币的总量

结合上述所有的分析,我们现在可以估计与这些奖励相关的以太币的发行总量。图 8 说明了这一点。如图所示,大部分新的发行量被授予证明者,区块生产者获得的奖励比证明者少 32 倍左右。该图表还说明了以太坊发行的复杂性;如果想全面了解以太坊的供应情况,就需要了解 PoS 系统中的许多错综复杂的问题。

图 8 - 与质押有关的以太坊年度发行量(假设网络条件完美)

来源: BitMEX Research

上述各种类型的奖励大约加起来就是 Vitalik Buterin 在 2019 年 4 月在 GitHub 上的评论中所期望的 PoS 相关以太坊年度发行量的最大值。我们上面的图表基本上将以太坊通货膨胀的组成部分分解为三种奖励。除了上述内容,还有惩罚和削价,这可能会减少新以太坊的发行量。其他可能影响供应的因素是不活跃的。因此,上述情况应被视为最大发行量。

作为另一个提醒,要了解新的以太坊通货膨胀,需要了解它的三个关键组成部分:

  1. 以太坊 1.0 的 PoW 发行,造成的新的发行量
  2. 由于 EIP-1599 以太坊 1.0 上的燃烧,导致货币供应减少(或 “回购”)。
  3. 以太坊 2.0 质押系统中的奖励和惩罚,造成的新的发行量

在未来的几年里,上述三个部分计划有一个大的变化。第一部分,与 PoW 相关的发行,预计将被关闭。在这一点上,以太坊的新发行预计将受到更大的限制,费用的燃烧甚至可能大于质押的奖励。假设费用需求仍然强劲,似乎在这一点之后,货币的供应可能会下降。如果从货币的角度来评价以太坊,这就是通货紧缩,如果像看股票一样看,就是股票数量的减少。

惩罚

不活跃的惩罚和不正确的证明

有两种类型的处罚。第一类处罚是针对不正确的证明,如上文证明者投票部分所述,有三种情况。第二类处罚是针对个别验证着的不作为。遗漏证明的处理方式与错误证明的处理方式相同,惩罚是基本奖励的 3 倍。这与完全不正确的证明的处罚完全相同(假设没有发生削减)。

为了测试不活跃的惩罚,我们故意将验证者节点关闭一个时段。BitMEX Research 验证者故意错过了第 63,657 个时段的证明。正如下面的图片所示,我们收到了 17,841 Gwei 的罚款,因为我们的错误行为。这只是对所有三个特征的错误证明的正常惩罚(即基本奖励的三倍)。

图 9 - 不活跃的惩罚

也有针对整个网络范围不活动的惩罚,如果整个网络在 4 个时段内无法完成一个区块,那么每个验证者都会受到惩罚。

削减

削减与惩罚不同,它被认为是远为严重的违法行为,因此惩罚也更重。在质押中,有两类行为人的削减条件:一、区块链生产者,二、证明者。

关于区块生产者,削减条件相当简单 - 如果一个区块生产者在同一时段提出两个不同的有效建议,它就被削减。如图 10 所示。

图 10 - 区块生产者削减的例子 - 在同一时隙中生产两个区块

来源: https://beaconcha.in/block/476904#proposer-slashings

在图 10 中,区块生产者为 476,903 时隙提出了两个冲突的链头。目前还不知道是什么原因导致了这个错误。可能是恶意的,也可能是软件的错误,也可能是电脑崩溃了,在一个不幸的时候又启动了。

关于证明者投票,削减条件更为复杂。有两类削减情况:双重投票和环绕投票。

双重投票是不同的投票,使用同一目标时段。它可以用下面的公式来解释。

data_1 != data_2 and data_1.target.epoch == data_2.target.epoch

来源: https://github.com/ethereum/eth2.0-specs/blob/dev/specs/phase0/beacon-chain.md#slash_validator

图 11 是一个重复投票的例子。验证者 45,276 使用相同的目标和相同的源为不同的链尖产生了两个相互冲突的票。

图 11 - 区块证明者削减的例子 - 对同一时隙内的两个区块进行投票

来源: https://beaconcha.in/block/2029833#attester-slashings

至于环绕削减条件,我们在 2020 年 5 月关于以太坊 2.0 的文章中解释了该规则。我们在信标链上找不到这种违规的例子,据我们所知,从来没有发生过这种违规行为。

削减惩罚

无论造成何种类型的错误,对所有可被削减的错误的处罚都是一样的。对犯错者的惩罚有四种方式。

  1. 验证者被从验证集中删除,这个过程可能需要 36 天。移除后,验证者就不活跃了,任何剩余的余额只是放在账户上,无法做任何事情或获得任何奖励。一旦以太坊 2.0 拥有更多的功能,这些资金可能会再次被访问。
  2. 最初的罚款是有效余额的1/128 - 这通常是 0.25 ETH 左右。一旦发现违规行为,这一罚款将立即执行。
  3. 每个周期的重复性惩罚为基本奖励的 3 倍,这与验证者从正确的证明中获得的奖励值相同,只是它是一种惩罚而不是奖励,也就是说,这与不活跃完全相同。这种惩罚一直持续到验证者从验证集中被移除为止。
  4. 一个“特别惩罚” - 这个惩罚的严重程度取决于在同一时代犯了可被削减的错误的验证者的数量。被削减的验证者越多,每个验证者的惩罚就越严重。这一措施旨在激励权力下放,因为越多的验证者犯了错误,惩罚就越大。这激励了验证者在不同的硬件或计算机网络上运行。

图 12 展示了被削减的验证者的每日收入。在犯错误之前,验证者在每个时段赚取 3 倍的基本奖励。当错误行为发生时,验证者会收到一大笔罚款,然后每个时段会产生 3 倍于基本奖励的重复性罚款。最终,在 36 天后,验证者变得不活跃,惩罚也停止。

图 12 - 验证者削减惩罚

举报者奖励

如果一个区块提议者在区块中包括一个特殊类型的证明,即证明另一个验证者违反了规则,特别是如果另一个验证者进行了会导致削减的错误行为,那么区块制作者将获得特殊奖励。这种奖励被称为举报者奖励,其计算方法是将犯错误者的有效余额除以 512。这通常会导致 0.06 ETH 的奖励。这种奖励不是通货膨胀的,因为犯错误者很可能因为犯罪而被罚款至少 0.25 ETH。因此,削减有助于通货紧缩,减少货币的供应。

图 13 显示了一个验证者的每日收入,该验证者最近获得了举报者的奖励。如下图所示,当验证者产生一个区块时,由于包含了举报者的奖励,其收入超过 0.07 ETH。

图 13 - 举报者奖励

来源: https://beaconcha.in/validator/204685

总结

如果您读到这里,您可能有两个关键的收获,一、这里有很多任意的复杂性,二、有人怎么知道这一切是否会成功?这里的主要问题是理解那些设计 PoS 系统的人的哲学,主要是进化的哲学。多年来,PoS 系统已经进行了多次迭代,其中大多数都非常薄弱,而且有根本性的缺陷。由于吸取了经验教训,随着时间的推移,这些建议变得越来越强大。这与中本聪推出比特币时有很大的不同。比特币的核心共识系统相当简单,从未改变过,它几乎是 “一成不变”。大多数 PoS 倡导者似乎没有找到一个完美的 PoS 系统的野心,可以在几十年内保持稳健,相反,他们寻求一个可以升级和完善的强大的系统。

据我们所知,有计划改变本报告中讨论的奖惩公式中的一些常数和参数。例如,计划将举报者的奖励分开,其中 7/8 的奖励给发现违法行为的证明者,1/8 的奖励给在其区块中包含相关证明的区块制作者。目前,所有的奖励(8/8)都归于区块生产者。我们还看到了讨论中的更大的变化,例如,与证明者相比,增加区块生产者的奖励份额。目前,证明者的总收入约为区块生产者的 32 倍,而有些人希望在以后的升级中把这个比例改为 8 倍。随着网络的发展,我们可以吸取经验教训。也许质押系统永远不会达到最终状态,一些参数可能总是需要不断调整和完善。.

因此,上述 PoS 系统不应该被认为是最终的系统设计,它只是一个实验,它可能会改变。我们仍然对 PoS 系统持怀疑态度,然而我们不能忽视或掩盖这样一个事实,即这些系统的迭代似乎确实随着时间的推移有了很大的改进。我们怀疑本报告中概述的奖惩措施是否足以作为一个抗审查的不可阻挡的网络的基础架构,然而,它很可能在未来几年内得到改进。