Gasper
上次修改时间: @ReneeRen(opens in a new tab), 2023年8月15日
Gasper 是友好的最终确定性工具 Gasper (Casper-FFG) 和 LMD-GHOST 分叉选择算法的组合。 它们组成了一种共识机制,使采用权益证明的以太坊保持安全。 Casper 是一种能将特定区块更新为“最终确定”状态的机制,使网络的新加入者确信他们正在同步规范链。 当区块链出现多个分叉时,分叉选择算法使用累计投票来确保节点可以轻松选择正确的分叉。
请注意,Casper-FFG 的初始定义已稍作更新,以纳入 Gasper。 撰写此页面时,我们考量的是更新后的版本。
前提条件
为理解此材料,需要阅读权益证明的介绍页面。
Gasper 的作用
Gasper 在权益证明区块链中具有最重要的地位——节点提供以太币作为安全保证金,但如果他们在提议或验证区块链时过于懒惰或不诚实,保证金就会被销毁。 Gasper 是一种定义验证者如何受到奖惩的机制,决定要接受和拒绝哪个区块,以及将区块建在哪个区块链分叉上。
什么是最终确定性?
“最终确定性”是某些区块的属性,意味着除非出现严重的共识失败,且攻击者至少销毁了总质押以太币的 1/3,否则这些区块将不能回滚。 最终确定的区块可以解读为区块链是确定无疑了的。 区块必须完成“两步走”升级程序才能最终确定下来。
- 区块必须获得总质押以太币 2/3 的投票,才能纳入规范链。 此条件可将区块升级至“合理”状态。 合理的区块不大可能回滚,但满足某些条件时也可以回滚。
- 当一个合理区块上有另一个区块被合理化,那前者就被升级为“最终确定”状态。 确定一个区块就是承诺将该区块纳入规范链。 除非攻击者销毁数百万以太币(几十亿美元),否则该区块不会回滚。
并非每个时隙都会发生这种区块升级。 相反,只有时段边界的区块才能是“合理”和“最终确定”状态。 这些区块一般被称为“检查点”。 升级涉及成对的检查点。 两个连续的检查点之间必须存在"绝对多数链接🔗"(即:总质押以太币中有 2/3 投票认为检查点 B 是检查点 A 的正确衍生物),才能将存在时间更长的检查点升级为“最终确定”,而较新的区块则升级为“合理”。
由于最终确定需要三分之二同意某个区块是规范的,因此除非能满足以下条件,否则攻击者不可能另外创建一条最终确定链:
- 拥有或控制总质押以太币的 2/3。
- 至少销毁总质押以太币的 1/3。
之所以要满足第一个条件,是因为要最终确定一条链,需要质押以太币 2/3 的投票。 而第二个条件是因为,如果总质押的 2/3 对两个分叉表示支持,那么必然有 1/3 对两个分叉均进行了投票。 双重投票是会触发最大惩罚的罚没条件,总质押的 1/3 会被销毁。 截至 2022 年 5 月,此条件需要攻击者销毁价值约 100 亿美元的以太币。 Gasper 中用来合理化和最终确定区块的算法是友好的最终确定性工具 Casper (Casper-FFG)(opens in a new tab) 的微调版。
激励和罚没
验证者将因诚实地提议和验证区块而获得奖励。 奖励将以发放以太币的形式提供,这些以太币将加入他们的质押额。 另一方面,缺席和调用时未能响应的验证者将会错过这些奖励,有时还会损失一小部分现有质押额。 然而,离线的处罚较小,在大多数情况下,仅仅是错失奖励的机会成本。 但是,有些验证者的操作很难无意为之,并且常为恶意行为,例如,为同一时隙提议多个区块、为同一时隙验证多个区块或者与以前的检查点投票背道而驰。 这些都是要接受更严厉惩罚的“可罚没”行为,罚没结果是验证者的部分质押额遭到销毁,以及验证者被移出验证者网络。 整个过程需要 36 天。 第一天,进行最高 1 个以太币的初次惩罚。 随后,被罚没验证者的以太币将在退出期一点点耗尽,但到第 18 天,他们会收到一个“相关性惩罚”,即当更多的验证者都在大致相同的时间受罚时,惩罚将更重。 最大的惩罚是全部质押。 这些奖励和惩罚为激励诚实的验证者和挫伤网络攻击而立。
怠惰惩罚
除了安全性,Gasper 还提供“合理的活性”。 条件是只要有三分之二的质押以太币遵守协议地诚实投票,不论是否发生其他任何活动(比如攻击、延迟问题或罚没),区块链都将被最终确定。 换言之,要阻止区块链被最终确定,必须以某种方式破坏总质押以太币的 1/3。 在 Gasper 中,有另一条防线防止活性失败,即“怠惰惩罚”。 如果链未能在四个时段内最终确定,便会激活此机制。 对于未能积极证明主链的验证者,其质押货币将逐渐耗尽,直到主链重新获得总质押 2/3 的投票,以确保活性失败只是暂时的。
分叉选择
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)”。 该术语充满行话,用来定义一种算法:选择具有最大证明累积权重的分叉作为规范分叉(最贪婪、最重的子树);如果从验证者那里收到多条消息,则只考虑最新的那个(最新消息驱动)。 在将最重的区块添加到规范链之前,每位验证者都会使用这个规则来评估每个区块。