• 5

  • 65

一文详解 Eth2.0 Staking 的激励机制

Jhonny

如果你想成为社区翻译贡献者:contact@unitimes.io。更多内容→unitime.pro

6个月前

作者 | Carl Beekhuizen 

感谢 Joseph Schweitzer 和 Danny Ryan 的审阅。

欢迎归来!在上一篇《以太坊基金会:参与 Eth2 Staking (第0篇)》文章中我们讨论了 Eth2 的设计原理,今天我们将重点从该设计原理的角度来看待 Eth2 的激励机制。更具体地来说,我们将探讨影响 Eth2 的激励机制以及它们是如何以奖励 (rewards)、惩罚 (penalties) 和罚没 (slashings) 的形式得以实现的

然后我们再探讨一下验证者如何以及为什么被激励保持在线为何你不会因为离线而被罚没,等等。我们开始深入探讨吧。

如果不会因为离线而被罚没,那什么情况下会被罚没?⚔️

罚没 (slashing) 有两个目的:

(1) 为了使得攻击 Eth2 的成本非常高昂

(2) 通过检查验证者是否真正执行了他们的职责,从而阻止他们疏忽职守

对验证者进行罚没,是指如果验证者的行为具有可证实的破坏性时,将会销毁 (一部分) 验证者的质押金 (stake)。在 Eth2 阶段0期间,验证者会因为两种恶意行为被罚没:双重投票 (double voting) 环绕投票 (surround voting),详情可参阅有关 Casper FFG 如何运作的具体细节的初始论文

双重投票就是验证者在同一个 epoch 期间对两个不同的区块进行投票,这意味着该验证者表现出对两个不同版本的现实的支持。为何这种行为会被禁止的一个最简单的例子就是,验证者在区块 $A$ 种发送了一笔交易 $a$,在区块 $B$ 种发送了一笔交易 $b$,其中交易 $a$ 和交易 $b$ 花费了等值的 ETH。这就是典型的 PoS (权益证明) 版双花攻击

环绕投票导致的的罚没也通过惩罚那些创建了呈现多个不同版本的现实的投票的验证者 (他们声称这些不同版本都是真实的),以便阻止两个不同版本的链被敲定。更具体地说,当验证者对某个版本的现实进行投票,之后又对另一个版本进行投票,且是以一种并表明该验证者不再相信前一个版本的现实的方式进行投票,那么该验证者的这些证明 (attestations,也即投票) 就是环绕投票。(备注:关于双重投票和环绕投票的更多信息,请参阅:《以太坊2.0:如何实现最终性?》)

在阶段0期间,双重投票和环绕投票是唯一会导致验证者被罚没的情况,但 Eth2 之后的阶段增加了其他的规则,目的是确保验证者实际上会存储并使其签署的分片数据可用 (这可以阻止验证者疏忽职守或者隐瞒信息)

在正常的操作中,以正确的方式遵循协议规则的验证者不会创建能导致罚没的投票。除非是蓄意的恶意行为,不然创建一条会被罚没的消息只会是因为存在 bug 或者意外情况而发生

为了将这些非蓄意性的错误导致的惩罚最小化,被销毁的质押金的数量会与在同一时间被罚没的其他验证者的数量成比例 (备注:即同一时间被罚没的验证者数量越多,被销毁的质押金就越多)。如果只有很少的验证者做出了某个会被罚没的行为,这不太可能是他们正在试图攻击 Eth2 链,因为成功的攻击将需要很多的验证者。

因此,发生在少数验证者身上的罚没会被认为是无心之过 (honest mistakes),相应的惩罚也是很轻微的 (最低限度是罚没 1 ETH)。

另一方面,如果很多的验证者几乎同时做出恶意行为,那很大一笔数量的质押金将会被销毁 (上限是销毁验证者的所有余额),因为这种情况会被视为对网络的攻击

被罚没的验证者将被阻止继续参与到协议中,并会被强制退出。在“无心之过”的情况下,强制退出的方式可以防止那些犯错的验证者继续因再次被罚没而蒙受损失;而在恶意攻击的情况下,这种强制退出的方式可以将这部分验证者从协议中移除出去。(备注:不管是“无心之过”的验证者还是恶意验证者,一旦被罚没就都会被驱逐出去)

离线的验证者会发生什么?🚫👩‍💻

当验证者应该参与协议的验证工作但却离线时,会被惩罚,在正常情况下,这只会让验证者失去他们本可以通过正确的方式参与协议验证时所获得的奖励

这意味着,如果验证者 50% 以上的时间都是在线的,他们的质押金依旧会随着时间的推移而增加

这种机制带来的结果是,对于需要离线的验证者客户端 (比如因为需要进行维护) 来说,最好是离线一小段时间,而不应采取从协议中退出,之后再重新加入的方式 (因为退出和重新加入都会存在延迟性)。

这意味着,验证者无需在备份客户端或者多余的互联网连接方面花费过多的时间,因为离线带来的影响并不严重。事实上,系统中如果主客户端和备份客户端都可以对消息进行签名,那这对于任何系统来说都是有害的,因为主客户端和备份客户端可能会同时在线,进而导致创建了可被罚没的投票 (也即上文提及的双重投票),而这正是 Cosmos 的第一例罚没案例出现的情况。

这种离线惩罚的机制成立的前提是区块正在被敲定 (即有 2/3 的验证者 (权益加权) 在线且他们的投票正在被核计)。这是 Eth2 正常运行时期望的状态。

如果少于 2/3 的验证者在线,那么这意味着 Eth2 中发生了灾难性的错误,在这种情况下,以太坊的 Casper 共识协议将不再能够达成共识

如果超过 1/3 的验证者离线,Eth2 会做什么?💣

如果超过 1/3 的验证者离线了,这些离线的验证者就会面临被称为 inactivity leak 的惩罚。随着时间的推移,Inactivity leak 惩罚会减少离线节点的余额 (当余额低于 16 ETH 时,验证者会被强制退出),如此一来,在线验证者占验证者总数的比率就可以再次超过 2/3,这样 Eth2 就可以继续以协议的形式达成共识了。

Inactivity leaks 是在 Eth2 的设计中使其能够从诸如第三次世界大战之类的事件中得以幸存下来的方式之一。如果诸如此类的事件发生并导致超过 1/3 的验证者离线,那么这些离线的验证者会发现他们的余额将减少至 Eth2 区块链不再需要他们参与的地步。

反相关性 & 去中心化

Slashing (罚没) 机制和 Inactivity leak 机制都会鼓励验证者以不同于其他验证者的方式来做出可能带来自身节点失效的决策。也就是说,为了确保面临尽可能小的 Salshing 惩罚和防止出现 Inactivity leaks 惩罚,验证者应该尝试让自己的客户端不会以与其他验证者同样的方式失效 (备注:也即使自己的行为与其他验证者的行为没有相关性)

这给所有的验证者带来了压力,即需要将验证者的各个方面实现去中心化,比如如果依赖于相同真相来源 (比如使用 Infura) 或者使用 AWS 来托管自己的客户端的验证者,一旦它们出现问题,那验证者将面临更糟糕的情况 (惩罚)。

既然存在很多的惩罚方式,那为何还要成为验证者呢?📈

正如在上一篇文章中所提到的,“Eth2 的假设是,验证者很懒,会收受贿赂,而且还会试图攻击系统,除非能激励他们不这样做。” 我们截至目前讨论的惩罚是为了抑制不良行为,但也需要通过奖励 (rewards) 来激励验证者做出有益于 Eth2 的行为。

存在三种类别的奖励:

01.检举者的奖励🚓

通过提供使其他验证者被罚没的证明 (proof),验证者可以获得奖励,因为这种行为有益于 Eth2 网络。

02.区块提议者的奖励 ⬜️⛓⬛️⛓⬜️

验证者会被随机地分配生产区块的职责;被选中的验证者成为区块提议者 (proposer)。区块提议者将会通过以下方式获得奖励:

  • 打包一份来自检举者的证明 (proof),且该证明使得某个验证者被罚没;
  • 打包来自其他验证者的证明 (attestations,也即所谓的“投票”)

当验证者被选中成为区块生产者 (提议者) 时,这些奖励将会激励他们向 Eth2 链提供有益的信息。

03.证明者的奖励 ✔

验证者的证明 (attestations) 就是表明验证者同意 Eth2 中的某个决定的投票 (votes)。这些类型的信息构成了 Eth2 共识的基础,并通过以下5种方式获得奖励:

  • 获取你的链上证明;
  • 与其他验证者就区块链的历史记录达成共识;
  • 与其他验证者就区块链的最前部分 (head of the chain) 达成共识;
  • 快速地让你的证明上链 (也即被打包)
  • 在指定的分片中指向正确的区块。

扩展验证者的收益💸

在 PoS 系统中,有两种常见的奖励验证者的方式:固定的奖励 (fixed rewards) 和固定的通胀 (fixed inflation)。

固定的奖励模式中,每个验证者因履行职责而获得固定的奖励,系统中的通胀率取决于加入系统的验证者的数量 (备注:即验证者数量越多,奖励的总数就越多,通胀率就越高)。这种模式存在如何正确地设置奖励率的问题。如果奖励率设置得太低,那参与进来的验证者就会较少;如果太高,则会激励在必要的系统安全性之外的验证活动,并导致资金的浪费 (也即通胀率过高)。

更受欢迎的是固定的通胀模式,在这种模式中,一笔总奖励会分配给所有的活跃验证者。这种模式的好处在于允许市场力量 (market force) 来发现支付给验证者的正确奖励额度,因为验证者都是根据当前的奖励收入来自行决定是否参与进来。

但这种模式也有缺陷。验证者的奖励可能是不稳定的,这使得对于个体验证者来说,很难做出盈利性决策;这种模式还使得协议容易受到所谓的泄气攻击(discouragement attack),这种攻击中,验证者会试图阻止其他验证者参与进来,从而提高自己的奖励 (即便自己会受到暂时的损失)。

Eth2 旨在选择一个两全其美的奖励模式,在这个奖励模式中,验证者的奖励与抵押的 ETH 总量的平方根成正比。这种混合的奖励模式试图抑制通胀率的变化和验证者的回报率同时依旧允许市场力量来决定支付给验证者 (因向系统提供安全性而获得) 的正确奖励金额。(备注:相关阅读:《观点 | 被低估的 ETH 货币政策》)

抱最高的希望,做最坏的打算 🛡️

Eth2 的激励机制的每个方面都是根据上一篇文章 (《以太坊基金会:参与 Eth2 Staking (第0篇)》) 所阐述的协议设计理念的结果。比如反相关性机制有利于去中心化,Inactivity leaks 惩罚有助于帮助 Eth2 从诸如第三次世界大战等事件中幸存,但支撑 Eth2 的激励机制起作用的主要理念是这一假设:“Eth2 的假设是,验证者很懒,会收受贿赂,而且还会试图攻击系统,除非能激励他们不这样做。”如果有人以文本提及的其中一种方式来攻击 Eth2,那该攻击者最好准备好损失大量的 ETH,因为不管怎样,攻击者都会损失所有的资金。

 

原文链接:

https://blog.ethereum.org/2020/01/13/validated-staking-on-eth2-1-incentives/

【本文首发于Unitimes App,文章版权归原作者所有,译文由Unitimes团队翻译,内容仅代表原作者立场,不代表Unitimes立场,亦不构成任何投资意见或建议。翻译和发布文章仅为传播更有价值的信息,合作或授权转载请发邮件至editor@unitimes.io或添加微信unitimes2018】

ETH

65

相关文章推荐

未登录头像

暂无评论