考虑51%攻击的动态最终确定性 - 权益证明

本文对以太坊 PoS 共识机制在面对 51% 攻击时的应对策略进行了分类,并提出了相应的防御措施。主要包括:攻击方法分类(依据隐蔽性和可持续性),51%攻击的风险分析,以及两种新的防御机制:近距离投票检测(Close Vote Detection)和紧急动态最终确定(Emergent Dynamic Finalization)。最后,文章还讨论了潜在的问题和未来的研究方向。

来自 Titania Research

感谢 Ambition, terence, Artem, Titania Research Protocol Team 的讨论和反馈


TL;DR(太长不看版)

本文档对针对 PoS 以太坊的攻击方法进行分类,并提出应对措施,特别是针对值得注意的危险的 51% 攻击。要点如下:

  1. 攻击方法分类: 引入攻击隐蔽性和攻击可持续性两个指标,以分析已知的攻击方法。
  2. 51% 攻击的风险: 强调了攻击者控制超过 51% 的 staking 比例所带来的特殊危险,并解释了为什么会这样。
  3. 新防御措施建议: 提出了两种新机制来应对 51% 攻击的高可能性:接近投票检测(Close Vote Detection),用于检测此类攻击的可能性;紧急动态Finalization(Emergent Dynamic Finalization),用于在风险升高时延迟Finalization。
  4. 担忧和未来挑战: 讨论了所提出的机制的潜在问题,并讨论了未来的研究方向。

本提案旨在增强 PoS 以太坊的安全性,特别是通过加强对危险的 51% 攻击的防御。

1. 现有攻击方法分类

针对 PoS 以太坊 的几种攻击方法是已知的,攻击者可能现实地针对其潜在结果,包括 reorg(重组), double finality(双重Finality)和 finality delay(Finality延迟)。此分析中的一个关键因素是攻击所需的 staking 比例,表明所需的最小 stake(权益),这可以作为进入的障碍。然而,几乎同样重要的是攻击可持续性,它衡量攻击者可以持续维持攻击的程度。如果攻击是可持续的,则可能造成重大损害。此外,攻击隐蔽性也很重要,因为它表明攻击者可以多么隐蔽地执行攻击。如果协议无法检测到攻击,则很难确定是否需要防御措施。这两个指标的较高值都表明从协议的角度来看,前景更加负面。分析的代表性攻击方法包括:

  1. Finality 延迟 33% 攻击
  2. 双重Finality 34% 攻击
  3. 短期重组和审查 51% 攻击(控制未来)
  4. 短期重组和审查 66% 攻击(控制过去和未来)

A:Finality 延迟 33% 攻击

Finality延迟是一种可以使用 33% 的 staking 比例执行的攻击。攻击者通过未能提供 33% 的 attestation(证明)来阻止Finalization。此攻击期间的防御措施是不活动泄漏机制。此机制识别未能进行 attestation 或 attestation 与多数人相反的验证者,从而减少此类不活动验证者的 staked ETH。在 33% 的攻击期间,不活动泄漏会激活,导致攻击者的 ETH 减少并低于维持Finality延迟所需的数量。因此,攻击的可持续性相对较低且是暂时的,由于不活动泄漏,因此更容易检测到。

B:双重Finality 34% 攻击

双重Finality是指攻击者提交 attestation 以同时Finalize 两个分支的攻击。为了实现双重Finality,攻击者需要 34% 的 staking 比例。攻击者进行双重投票,为 34% 的 attestation 工作,以Finalize 两个分叉。此攻击期间的防御措施包括 slashing(罚没)机制。由于禁止双重投票,攻击者将失去其 staked ETH,从而使攻击易于检测(低不可检测性)。此外,大量的 slashing 惩罚意味着攻击可能只会发生一次;如果攻击者有预算多次攻击,他们可能会选择 66% 的攻击。因此,此方法的攻击可持续性也非常低。

C:短期重组和审查 51% 攻击(控制未来)

当攻击者拥有 51% 的 staking 比例时,他们可以操纵分叉选择算法。攻击 A 和 B 针对的是 Casper FFG(Finality 小工具),而此攻击则针对 LMD GHOST(分叉选择算法)。在这种情况下,攻击者可以自由地在 LMD GHOST 中创建最重的分支,从而导致诚实验证者跟随攻击者的分支,从而导致Finalization。这使攻击者可以审查特定交易并执行短期重组(reorg)以最大化其矿工可提取价值(MEV),而不会受到 slashing 惩罚。

在攻击 A 和 B 中,存在一些机制可以在发生时减少攻击者的潜力。在攻击 A 中,不活动泄漏会将攻击者的 staking 比例降低到 33% 的阈值以下,从而使攻击变得不可能。在攻击 B 中,他们的 staking 比例的三分之一在该 epoch(纪元)期间被 slashed,从而使重复攻击实际上不可行。

但是,目前没有针对攻击 C 的算法防御措施。即使有一个 slot(插槽)具有 51% 的投票比例,也无法区分该 attestation 是恶意的还是诚实验证者之间的合法分歧。这意味着攻击的不可检测性非常高。一旦攻击成功,攻击者就可以持续进行攻击,直到通过社会层做出硬分叉的决定,从而导致非常高的攻击可持续性。

D:短期重组和审查 66% 攻击(控制过去和未来)

在短期重组和审查 66% 攻击中,攻击者可以自由操纵Finalization,重写过去链并Finalize 新分支。攻击 D 的特征类似于攻击 C,两者都表现出高不可检测性和高可持续性。

要强调的一个关键点是,在执行 51% 攻击后,攻击者可以利用利润来瞄准 66% 攻击。与 33% 和 34% 攻击相比,51% 攻击的潜在收益非常高,并且由于它们不会受到诸如不活动泄漏或 slashing 之类的惩罚,因此成功的尝试可能会成倍地增加其统治地位。

攻击方法总结

下表总结了所分析的代表性攻击方法的特征:

攻击方法 Staking 比例 攻击隐蔽性 攻击可持续性
A. Finality 延迟攻击 33%
B. 双重Finality 攻击 34%
C. 短期重组和审查攻击(控制未来) 51%
D. 短期重组和审查攻击(控制过去和未来) 66%

从该表中,可以观察到一个有趣的趋势:33% 和 34% 的攻击(A 和 B)易于检测且可持续性低,而 51% 及以上的攻击(C 和 D)难以检测且显示出高可持续性,从而说明了二分法。

2. 51% 攻击的潜在影响

我想强调一下考虑 PoS 以太坊 安全性的最坏情况的重要性。简而言之,以太坊 可能会面临一种被描述为“游戏结束”的情况。如果发生这种情况,无数个生态系统中的所有过往活动和数据都将变得无效。

参考前面的表格,攻击 A 和 B 的攻击不可检测性和攻击可持续性都很低。从攻击者的角度来看,他们的行为很可能会被暴露,并且这些攻击往往是短暂的。

相比之下,攻击 C 和 D 的攻击隐蔽性和可持续性都很高。对于攻击者而言,这些行为不太可能被检测到,从而使他们能够在更长的时间内维持攻击,并有可能获得巨额利润。在考虑关注 C 或 D 中的哪一种攻击时,我们必须首先注意 staking 比例,因为它是攻击的障碍。虽然这两种攻击都可能造成重大损害,但攻击 C 需要执行的绝对金额较小,因此更具有现实针对性(尤其是在考虑到其可能导致攻击 D 的潜力时)。鉴于这些考虑,本次讨论将探讨针对短期重组和审查 51% 攻击的防御措施。

如上所述,短期重组和审查 51% 攻击的关键问题在于其高水平的攻击不可检测性和可持续性,这意味着潜在的损害可能是巨大的。

让我们更深入地研究一下攻击可持续性。这些攻击具有可持续性的原因是,唯一可用的防御措施是通过社会共识进行硬分叉,这需要相当长的时间(正如 DAO 事件所证明的那样,从发现该 hack 到硬分叉花费了一个月的时间)。在此期间,攻击者Finalize 的区块和 epoch 将在合法链上累积。诚实验证者可能会因 attestation 给非法的链上的区块而受到惩罚,该链尽管是规范链,但已成为少数派。问题的症结在于Finalization所需的 epoch 数量是固定的;因此,即使在紧急情况下,Finalization 也会像正常情况下一样,在相同的两个 epoch(大约 13 分钟)内发生。

3. 检测和防御 51% 攻击的建议

如果发生 51% 攻击,我们预计 attestation 将显示出很小的幅度,例如 50.5% 对 49.5%,并且这种接近的竞争在正常运行期间相对罕见。我们引入一个指标来指示基于 head 投票“接近”的 slot 数量的当前 epoch 受到攻击的可能性。此外,随着此指标的增加,Finalization所需的 epoch 数量将呈指数增长。此机制允许在紧急情况下算法地推迟Finalization,从而使社区能够通过社会手段响应攻击者,而无需进行硬分叉。由于正常的Finalization 周期将保持不变,因此可以无缝集成此实现,而不会影响用户体验。我们建议将接近投票检测机制用于前者,将紧急动态Finalization 用于后者,作为防御 51% 的攻击。

接近投票检测

当发生 51% 攻击时,攻击者将故意选择一个通过成为最重的链而呈现规范的 head。诚实验证者仍然可以提议区块,但是每当他们发现提议的区块不受欢迎时,攻击者都可以通过短期重组轻松地操纵规范的 head。攻击者的 staking 比例越接近 50%,attestation 的数量就越接近 50%。非常接近 head 的 50% 的此类证明将被称为“接近投票”。当前,是否Finalize 一个 epoch 的决定是在该 epoch 的最后一个 slot 处做出的,我们将在其中添加接近投票的计数。

紧急动态Finalization

如果接近投票的发生超过某个阈值,则系统将识别出紧急状态,并大大增加Finalization所需的 epoch 数量。结果,攻击者将需要在更长的时间内维持大多数选票才能实现Finalization。在此期间,社区将有机会实施对策。具体来说,如果当前 epoch 中分类为接近投票的 slot 数量超过某个阈值,则Finalization所需的 epoch 数量将从标准值 2 大幅提高。我们将其称为紧急模式。虽然对于该值应该是什么有很多争论的空间,但为了实现比 DAO 事件的一个月延迟的重大改进,可能建议尝试一个像 2^{15}215 这样的值。这将要求攻击者继续其攻击大约九天(32,768 * 12 秒 ≈ 4,551,168 秒 ≈ 9 天),从而为社区提供了充足的时间来快速实施对策。此防御机制可确保正常网络运行不受影响,并且仅在紧急情况下激活,从而允许平稳实施,而不会降低用户体验。此外,由于它是以算法方式运行的,因此可以立即执行,而无需等待人为判断,从而可以快速响应。

形式化

让我们定义以下符号,其中 W, E, FW,E,F 是参数:

  • ii:当前 epoch 的 slot 索引,范围从 1 到 32
  • C_iCi:指示 slot 索引 ii 处的投票是否接近(1)或不接近(0)
  • V_iVi:slot 索引 ii 处的 attestation 百分比,以 % 表示
  • FF:Finalization 所需的 epoch 数量

在其最简单的初始形式中,我们提出以下建议:

C_i = \begin{cases}
1 \ ,& \text{如果} \  \|V_i-0.5\| < W \\\
0 \ ,& \text{否则}
\end{cases}

Ci={1,如果 |Vi−0.5|<W0,否则

F = \begin{cases}
D \ ,& \text{如果} \  \sum_{1\le i \le32} C_i \ge E
\\\
2 \ ,& \text{否则}
\end{cases}

F={D,如果 ∑1≤i≤32Ci≥E2,否则

以下是定义的参数:

  • WW:与 50% 的百分比偏差,符合接近投票的条件
  • EE:触发紧急模式的接近投票 slot 的阈值数量
  • DD:紧急模式下Finalization所需的 epoch 数量

提供的公式定义了两个指示 51% 攻击可能性的指标。首先,C_iCi 指示特定 slot 是否被认为是接近投票,当 |V_i - 0.5||Vi−0.5| 落在阈值 WW 内时,返回 1。其次,FF 指示Finalization所需的 epoch 数量。因此,如果接近投票 slot 的数量达到阈值 EE,则所需的 epoch 数量将增加到 DD,从而计划进行持续的攻击并减轻其潜在影响。

让我们考虑具体值:

W = 1\% \\\
E = 4 \\\
D = 2^{15}

W=1%E=4D=215 因此,我们有:

C_i = \begin{cases}
1 \ ,& \text{如果} \  \|V_i-0.5\| &lt; 0.01 \\\
0 \ ,& \text{否则}
\end{cases}

Ci={1,如果 |Vi−0.5|<0.010,否则

F = \begin{cases}
2^{15} \ , & \text{如果} \  \sum_{1\le i \le32} C_i \ge 4
\\\
2 \ ,& \text{否则}
\end{cases}

F={215,如果 ∑1≤i≤32Ci≥42,否则

通过这些设置,如果任何 slot 的 attestation 百分比 V_iVi 在 50% 的 ±1% 范围内,则该 slot 将被计为接近投票。例如,如果 32 个 slot 中有 4 个是接近投票,则 C_iCi 的总数将为 4,从而要求将 FF 设置为 2^{15}215。因此,攻击者将无法Finalize 该链大约九天,从而使社区有足够的时间来实施快速硬分叉以恢复合法的以太坊区块链。

减少估计的最大损害

该提案的目的是减少 51% 攻击期间估计的最大损害。它旨在减轻“游戏结束”情况的可能性。虽然讨论具体的定量变化具有挑战性,但可以设置参数 DD,以确保持续时间不会像 DAO 事件那样延长到一个月。至关重要的是要考虑到,社会层的预期响应时间也应计入此方面。

此外,与以太坊交互的各种服务(例如其他链和中心化交易所)可以基于此 DD 进行操作。通过引入算法机制,周围的生态系统也将能够以算法方式做出响应。

4. 担忧和未来工作

对新Finality延迟机制的担忧

有人担心该提案可能会无意中创建一个新的Finality延迟机制。例如,有可能在 32 个 slot 中随机控制 51% 的 LL 次显性,这可以使用二项式分布轻松计算。虽然延迟Finality的经济动机通常较低,但我们不能排除可能尚未考虑的潜在动机。如果出现此类动机,则可以通过引入信誉系统来解决这些动机。由于 attestation 涉及签名,因此伪装其他验证者的尝试将需要大量时间才能执行。

审查通过社会层实施硬分叉的程序

为了确定最佳参数,我们需要仔细检查通过社会层执行硬分叉所需的特定程序。

通过经验证据确定参数 W, E, DW,E,D 和公式 FF

有必要凭经验确定参数 WW(定义接近投票的范围),EE(定义紧急模式激活的阈值)和 DD(定义Finality延迟的程度)的合适值。此外,DD 是公式 FF 的组成部分,但是我们也可以考虑一种更动态的设计,其中接近投票的数量增加 \sum_i C_i∑iCi 将导致 FF 的值更大。

F = \begin{cases}
2^{\sum_i C_i - E+\text{const}} \ ,& \text{如果} \  \sum_i C_i \ge E
\\\
2 \ ,& \text{否则}
\end{cases}

F={2∑iCi−E+const,如果 ∑iCi≥E2,否则

确定 attestation 的规范

我们需要确定 attestation 的规范。

  • 在紧急模式下如何处理 justification(辩护)
  • 紧急模式下不活动泄漏的行为
  • 如何通过 attestation 显式更新提交的数据类型。

5. 结论

在本提案中,我们重点关注特别危险的 51% 攻击,以此作为针对 PoS 以太坊 的一种攻击方法,讨论了其风险和影响,同时提出了新的防御策略。具体来说,我们旨在通过引入诸如接近投票检测和紧急动态Finalization之类的机制来增强对 51% 攻击的抵抗力。

未来的研究应进一步探索所提出的防御策略的有效性及其对其他攻击方法的适用性。还需要继续研究参数优化和具体的实施方法。

此外,分析针对不同共识算法的攻击方法并基于社会激励制定防御策略是进一步讨论的有价值的方向。我期待与以太坊社区互动,讨论这些想法的价值并解决任何疑虑。

参考文献

  • 原文链接: ethresear.ch/t/dynamic-f...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
以太坊中文
以太坊中文
以太坊中文, 用中文传播以太坊的最新进展