以太坊权益证明中的时间、槽位和事件顺序

  • Paradigm
  • 发布于 2023-04-28 15:39
  • 阅读 55

本文介绍了mev-boost协议及其在以太坊共识中的重要性,深入探讨了该协议的参与者、工作机制以及与以太坊证明权益机制中的分叉选择规则的复杂关系。文章还分析了针对mev-boost的攻击及相关的开发者回应,强调了网络稳定性与时间相关机制之间的脆弱性,并提出未来研究方向和改进建议。

大纲

引言

在4月2日,一名恶意的以太坊网络参与者通过利用mev-boost-relay中的一个漏洞,从一名MEV搜索者那里窃取了2000万美元(参见Flashbots的后记)。在接下来的几天里,开发人员发布了五个补丁,解决了这一漏洞,针对更广泛的mev-boost生态系统。这些补丁,加上现有的网络延迟和验证者策略,导致以太坊网络在4月6日经历了一段短暂的不稳定期,因为重组块的速度增加。重组对网络健康有害,因为它降低了块生产速率并减少了结算保证

在这篇文章中,由于针对搜索者的攻击以及网络的暂时不稳定性,我们探讨了mev-boost与共识之间的相互作用,解读了以太坊的权益证明机制的细微差别,并列举了一些可能的前进路径。

什么是 mev-boost 以及它的重要性?

mev-boost是Flashbots和社区设计的一种协议,旨在减轻最大可提取价值(Maximal Extractable Value, MEV)对以太坊网络的负面影响。

mev-boost中有3个参与者:

  1. 中继(Relays) – 互信的拍卖主体,将提议者与块构建者连接起来。
  2. 构建者(Builders) – 精明的实体,通过构建块来最大化自身与提议者的MEV。
  3. 提议者(Proposers) – 以太坊权益证明(Proof-of-Stake, PoS)验证者。

每个块的大致事件顺序是:

  1. 构建者通过接收用户、搜索者或其他(私人或公共)订单流中的交易构建块。
  2. 构建者将块提交给中继。
  3. 中继验证该块是否有效,并计算支付给提议者的金额。
  4. 中继向当前时隙的提议者发送一个“盲”头部和一个支付值。
  5. 提议者评估所收到的所有出价,并签署与最高付款相关的盲头部。
  6. 提议者将该签名头部返回给中继。
  7. 中继利用它们的本地信标节点发布块,并将其返回给提议者。奖励通过块中的交易和块奖励分配给构建者和提议者。

中继是一个互信的方,它促进了提议者(提供块空间)与构建者(为MEV提取进行交易排序)之间公平交易的进行。中继保护构建者不受MEV窃取,即提议者复制构建者交易以自取MEV,而不是分配给发现它的搜索者/构建者。中继通过(a)确认构建者块的有效性,(b)代表提议者每时隙处理数百块,以及(c)确保提议者支付的准确性来保护提议者。

mev-boost是关键的协议基础设施,因为它使所有提议者都能民主访问MEV,而无需与构建者或搜索者建立信任关系,这有助于以太坊的长期去中心化。

以太坊的分叉选择规则与 mev-boost

在我们深入探讨攻击及其应对措施之前,先检查一下以太坊的权益证明(PoS)机制及相关的分叉选择规则。分叉选择规则允许网络就链的头部达成共识。摘自以太坊合并后的重组

分叉选择规则是一个功能,由客户端评估,输入为已见的区块和其他消息集合,并向客户端输出“规范链”。需要分叉选择规则是因为可能有多个有效链可供选择(例如,如果两个具有相同父母的竞争区块同时发布)。

分叉选择规则一个不太为人知的方面是它与时间的关系,这对块生产有重大影响。

时隙与子时隙周期

在以太坊PoS中,时间以12秒的增量分段,称为时隙。PoS算法随机分配验证者权限,以提议该时隙的块;这个验证者被称为提议者。在同一个时隙,其他验证者的任务是为根据它们的本地视角通过应用分叉选择规则成为链头的块进行证明(投票)。12秒的时隙被细分为三个阶段,每个阶段消耗4秒。

在时隙中发生的事件如下,使用t=0表示时隙开始。

时隙中的关键时刻是t=4证明截止时间。如果一个证明验证者在证明截止时间之前没有看到一个块,他们将投票之前接受的链头(根据分叉选择规则)。块被提议的越早,传播的时间就越长,因此它累积的证明就越多(因为更多的验证者在证明截止时间前看到它)。

从网络健康的角度来看,块发布的最佳时机是t=0(由规范确定)。然而,由于块的价值伴随时间单调增加,提议者有动力推迟块的发布以便更多的MEV积累。有关更多详细信息,参见权益证明中的时间游戏此讨论

历史上,只要下一个验证者在构建他们后续时隙的块之前看到块,提议者就能够在证明截止时间之后(甚至接近时隙末尾)发布块。这是由于子块继承父块的权重,分叉选择规则在叶子节点处终止。因此,推迟块发布没有任何下行风险。为了促进理性行为(推迟块发布)转向诚实行为(按时发布),实施了“诚实重组”。

提议者提升与诚实重组

两个新概念被引入到共识客户端中,对证明截止时间有关键影响。

  1. 提议者提升PR) – 试图通过给予提议者与40%的完整证明权重相等的分叉选择“提升”,以最小化重组平衡攻击重要的是,这个提升只能在时隙的持续时间内存在。
  2. 诚实重组PR) – 在提议者提升的基础上,使诚实的提议者能够利用它强行重组具有低于20%证明权重的区块。这在LighthousePrysm中实现(自v4.0 – Capella发布版)。这个改变是可选的,因为这是提议者做出的本地决定,不影响证明验证者的行为。因此,没有协调努力在所有客户端中同时推出它,也没有与任何具体的硬分叉关联。

请注意,诚实重组在一些特殊情况下是避免的:

  1. 在纪元边界块期间
  2. 如果链没有最终确定
  3. 如果链的头部不是重组块之前的时隙的块

条件3确保诚实重组只会从链中移除单个块,这充当了电路断路器,使链在极度网络延迟期间能够继续生成块。这同样反映了提议者对自己网络视角的信心降低,因为他们无法再肯定他们的提议者增强块会被视为规范块。

下面的图示演示了如何改变诚实行为以实施重组策略。

在此场景中,b1表示一个迟到的块。由于延迟,b1仅占时隙n的19%证明权重。其余81%的证明权重分配给父块HEAD,因为许多证明者在证明截止时间之前未看到b1

没有诚实重组,时隙n+1的提议者将b1视为链的头部并构建子块b2。尽管b1只有19%的证明权重,但提议者没有努力重组它。在时隙n+1期间,b2获得提议者提升,并假设按时传递,b2将通过获得该时隙的大多数证明而成为规范块。

而有了诚实重组后,情况就大为不同。现在时隙n+1的提议者看到b1的19%证明权重低于重组阈值,因此他们构建一个块,以HEADb2的父块,强行重组b1。当我们达到时隙n+1的证明截止时间时,诚实的证明者将比较b1(19%)与b2(来自提议者提升的40%)的相对权重。所有客户端都实现了提议者提升,因此b2将被视为链的头部,并将累积时隙n+1的证明。

针对去绑定攻击的中继和信标节点修复

在4月2日的去绑定攻击中,提议者通过将一个无效的签名头部发送回中继来利用中继漏洞。在随后的几天中,中继和核心开发团队发布了一系列软件补丁,以降低重复攻击的风险。五个主要变更如下:

  1. 中继更改:
    1. 检查数据库中的已知恶意提议者(仅在超声中继的生产环境中使用,并已被移除)。
    2. 检查中继在该时隙是否已经将完整的块传递到p2p网络。
    3. 在块发布之前引入0-500毫秒的均匀随机延迟(已从所有中继中移除)。
  2. 信标节点更改(仅适用于中继信标节点):
    1. 在广播之前验证信标块。
    2. 在发布块之前检查网络是否存在双重发表。

这些变更的组合导致共识不稳定,情况因现有大量验证者使用上述诚实重组策略而加剧。

意想不到的后果

上述提到的5个更改每个都在中继块发布的热门路径中引入了延迟,这增加了中继块在证明截止时间之后广播的可能性。下面的图描绘了这五个检查的顺序,以及引入的延迟如何导致块发布超过证明截止时间。

在实际实施这些检查之前,签名头部在t=0之后显著更晚达到,例如t=3,通常不会出现任何问题。中继的开销非常小,因此通常在t=4的证明截止时间之前发布块。

然而,随着这五个补丁引入的延迟,中继现在可能部分负责延迟广播。让我们看看一个假设性的块发布示例。

中继在t=3时接收到提议者的签名头部。在t=4时,中继仍在执行检查,因此广播发生在证明截止时间之后。在这种情况下,提议者延迟发送签名头部和中继引入了一些额外延迟的结合导致错过了证明截止时间。如果没有诚实重组,这些块很可能已经上链。后续时隙的诚实提议者不会因为迟到而故意重组块,就像我们在图2中看到一样。然而,有了诚实重组,错过证明截止时间意味着此块将被下一个提议者重组。

因此,在攻击后的几天里,分叉块的数量急剧增加。

Metrika的为期两周的数据表明,在最糟糕的情况下,一个小时内重组了13个块(4.3%),这比正常情况多出了约5倍。随着中继推出各种更改,分叉块数量的急剧增加变得显而易见。感谢中继运营商和核心开发者的巨大社区努力,一旦了解了影响,许多更改被恢复,网络恢复到了健康状态。

截至今天,最有用的更改是块验证和在广播之前的双重发表检查。恶意提议者再也无法通过向中继发送无效头部来执行攻击,还必须确保信标节点在发布之前未看到双重发表的块。尽管如此,中继仍然容易受到提出的更一般的双重发表攻击,如 mev-boost和ePBS中的双重发表攻击

那么我们应该怎么做?

在这篇文章中,我们强调了mev-boost的工作原理及其对以太坊共识的重要性。我们还深入探讨了关于时间的以太坊分叉选择规则的一些不为人知的方面。通过将去绑定攻击和开发者的反应作为案例研究,我们强调了与时间相关的分叉选择规则潜在的脆弱性以及其对网络稳定性的影响。

考虑到这一点,研究社区应评估什么是“可接受”的重组数量,并更广泛地考虑对双重发表攻击的暴露,以确定是否应实施缓解措施。

此外,还有多个未来方向正在积极探索:

  1. 实施“头锁”以保护mev-boost免受双重发表的影响。这还需要在共识客户端软件中进行更改,以及可能需要延长证明截止时间的规范更改。
  2. 增加针对mev-boost软件的漏洞奖励计划的数量和可见度。
  3. 扩展模拟软件以探索子时隙时间如何影响网络稳定性。这可用于评估如何调整证明截止时间以减少重组。
  4. 优化中继的块发布路径,以减少不必要的延迟。这已经在被探索中。
  5. 认识到mev-boost是核心协议功能,并将其吸收到共识客户端中,也就是被安排到PBS (enshrined PBS, ePBS)。两时隙的ePBS易受双重发表攻击,因此实施“头锁”仍然是一个选项。
  6. 添加更多的蜂巢和/或规范测试,以参考延迟和证明截止时间相关的问题。
  7. 鼓励中继客户端多样性,通过构建中继规范的额外实现。
  8. 考虑调整双重发表的惩罚,考虑到即使完全32 ETH的惩罚也可能不足以在极大的MEV机会面前劝阻恶意行为。
  9. 重新审视子时隙时间,考虑调整块传播阶段(例如,将证明截止时间从t=4移动到t=6)。

总体而言,我们对围绕MEV和mev-boost生态系统的新能量感到兴奋。通过去绑定攻击和缓解措施,我们已经认识到延迟、mev-boost和共识机制之间的关键关系;我们希望该协议能够在响应中持续增强。

如果这些主题让你感到兴奋和有趣,请联系Georgios电子邮件)或Mike电子邮件)。

非常感谢Bert MillerDanny RyanAlex StokesFrancesco D’AmatoMichael SproulTerence TsaoFrankieJoachim NeuChris HagerMatt GarnettCharlie Noyessamczsun对这篇文章的反馈,以及Achal Srinivasan对图形设计的贡献。

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

0 条评论

请先 登录 后评论
Paradigm
Paradigm
Paradigm 是一家研究驱动型技术投资公司 https://www.paradigm.xyz/