Gasper
Gasper 是 Casper 友好的最终性小工具 (Casper FFG) 和 LMD-GHOST 分叉选择算法的结合。这些组件共同构成了保护权益证明 (PoS) 以太坊安全的共识机制。Casper 是一种将特定区块升级为“已最终确定”的机制,以便网络的新加入者可以确信他们正在同步规范链。分叉选择算法使用累积的投票来确保当区块链中出现分叉时,节点可以轻松选择正确的分叉。
注意,Casper FFG 的原始定义为了包含在 Gasper 中进行了轻微的更新。在本页面中,我们讨论的是更新后的版本。
先决条件
要理解本材料,必须阅读关于权益证明的介绍页面。
Gasper 的作用
Gasper 位于权益证明区块链之上,节点提供以太币作为安全保证金,如果他们在提议或验证区块时怠工或不诚实,这些保证金可能会被销毁。Gasper 是一种机制,它定义了验证者如何获得奖励和惩罚、决定接受和拒绝哪些区块,以及在区块链的哪个分叉上进行构建。
什么是最终性?
最终性是特定区块的一种属性,意味着除非发生严重的共识失败并且攻击者销毁了至少 1/3 的总质押以太币,否则它们无法被还原。已最终确定的区块可以被认为是区块链确信的信息。一个区块必须经过两步升级过程才能被最终确定:
- 必须有三分之二的总质押以太币投票赞成将该区块包含在规范链中。此条件将区块升级为“已证明”。已证明的区块不太可能被还原,但在某些条件下是可以的。
- 当另一个区块在一个已证明区块之上被证明时,它将被升级为“已最终确定”。最终确定一个区块是将其包含在规范链中的承诺。除非攻击者销毁数百万以太币(价值数十亿美元),否则它无法被还原。
这些区块升级不会在每个时隙中发生。相反,只有时段边界区块才能被证明和最终确定。这些区块被称为“检查点”。升级会考虑成对的检查点。两个连续的检查点之间必须存在“绝对多数链接”(即三分之二的总质押以太币投票认为检查点 B 是检查点 A 的正确后代),才能将较早的检查点升级为已最终确定,并将较新的区块升级为已证明。
因为最终性需要三分之二的同意才能确认一个区块是规范的,所以攻击者不可能在没有以下条件的情况下创建一条替代的已最终确定链:
- 拥有或操纵三分之二的总质押以太币。
- 销毁至少三分之一的总质押以太币。
出现第一个条件是因为最终确定一条链需要三分之二的质押以太币。出现第二个条件是因为如果三分之二的总质押投票赞成两个分叉,那么必定有三分之一的质押对两者都投了票。双重投票是一种罚没条件,将受到最大程度的惩罚,并且三分之一的总质押将被销毁。截至 2022 年 5 月,这需要攻击者销毁价值约 100 亿美元的以太币。Gasper 中证明和最终确定区块的算法是Casper 友好的最终性小工具 (Casper FFG) (opens in a new tab) 的略微修改形式。
激励与罚没
验证者因诚实地提议和验证区块而获得奖励。以太币作为奖励并添加到他们的质押中。另一方面,缺席且在被调用时未能采取行动的验证者会错失这些奖励,有时还会损失一小部分现有质押。然而,离线的惩罚很小,在大多数情况下,相当于错失奖励的机会成本。但是,某些验证者行为很难意外发生,并表明存在某种恶意意图,例如为同一个时隙提议多个区块、为同一个时隙证明多个区块,或与之前的检查点投票相矛盾。这些是“可罚没”的行为,会受到更严厉的惩罚——罚没会导致验证者的部分质押被销毁,并且验证者会从验证者网络中被移除。这个过程需要 36 天。在第 1 天,会有最高 1 ETH 的初始惩罚。然后,被罚没的验证者的以太币在退出期间慢慢流失,但在第 18 天,他们会收到“相关性惩罚”,当大约在同一时间有更多验证者被罚没时,该惩罚会更大。最高惩罚是全部质押。这些奖励和惩罚旨在激励诚实的验证者并抑制对网络的攻击。
怠工泄漏
除了安全性之外,Gasper 还提供“合理的活跃度”。这种情况是指,只要三分之二的总质押以太币诚实投票并遵循协议,无论发生任何其他活动(如攻击、延迟问题或罚没),链都将能够最终确定。换句话说,必须以某种方式破坏三分之一的总质押以太币才能阻止链的最终确定。在 Gasper 中,还有一道防止活跃度失败的额外防线,称为“怠工泄漏”。当链超过四个时段未能最终确定时,此机制就会激活。未积极证明多数链的验证者的质押将逐渐流失,直到多数链重新获得三分之二的总质押,从而确保活跃度失败只是暂时的。
分叉选择
Casper FFG 的原始定义包含一个分叉选择算法,该算法强制执行以下规则:follow the chain containing the justified checkpoint that has the greatest height,其中高度定义为距创世区块的最大距离。在 Gasper 中,原始的分叉选择规则被弃用,取而代之的是一种更复杂的算法,称为 LMD-GHOST。重要的是要认识到,在正常情况下,分叉选择规则是不必要的——每个时隙只有一个区块提议者,诚实的验证者会对其进行证明。只有在网络严重不同步或不诚实的区块提议者模棱两可的情况下,才需要分叉选择算法。然而,当这些情况确实发生时,分叉选择算法是确保正确链的关键防御措施。
LMD-GHOST 代表“由最新消息驱动的贪婪最重观察子树 (latest message-driven greedy heaviest observed sub-tree)”。这是一种充满术语的方式来定义一种算法,该算法选择具有最大累积证明权重的分叉作为规范分叉(贪婪最重子树),并且如果从一个验证者收到多条消息,则只考虑最新的一条(最新消息驱动)。在将最重的区块添加到其规范链之前,每个验证者都会使用此规则评估每个区块。