本文介绍了mev-boost
协议及其在以太坊共识中的重要性,深入探讨了该协议的参与者、工作机制以及与以太坊证明权益机制中的分叉选择规则的复杂关系。文章还分析了针对mev-boost
的攻击及相关的开发者回应,强调了网络稳定性与时间相关机制之间的脆弱性,并提出未来研究方向和改进建议。
在4月2日,一名恶意的以太坊网络参与者通过利用mev-boost-relay
中的一个漏洞,从一名MEV搜索者那里窃取了2000万美元(参见Flashbots的后记)。在接下来的几天里,开发人员发布了五个补丁,解决了这一漏洞,针对更广泛的mev-boost
生态系统。这些补丁,加上现有的网络延迟和验证者策略,导致以太坊网络在4月6日经历了一段短暂的不稳定期,因为重组块的速度增加。重组对网络健康有害,因为它降低了块生产速率并减少了结算保证。
在这篇文章中,由于针对搜索者的攻击以及网络的暂时不稳定性,我们探讨了mev-boost
与共识之间的相互作用,解读了以太坊的权益证明机制的细微差别,并列举了一些可能的前进路径。
mev-boost
是Flashbots和社区设计的一种协议,旨在减轻最大可提取价值(Maximal Extractable Value, MEV)对以太坊网络的负面影响。
在mev-boost
中有3个参与者:
每个块的大致事件顺序是:
中继是一个互信的方,它促进了提议者(提供块空间)与构建者(为MEV提取进行交易排序)之间公平交易的进行。中继保护构建者不受MEV窃取,即提议者复制构建者交易以自取MEV,而不是分配给发现它的搜索者/构建者。中继通过(a)确认构建者块的有效性,(b)代表提议者每时隙处理数百块,以及(c)确保提议者支付的准确性来保护提议者。
mev-boost
是关键的协议基础设施,因为它使所有提议者都能民主访问MEV,而无需与构建者或搜索者建立信任关系,这有助于以太坊的长期去中心化。
在我们深入探讨攻击及其应对措施之前,先检查一下以太坊的权益证明(PoS)机制及相关的分叉选择规则。分叉选择规则允许网络就链的头部达成共识。摘自以太坊合并后的重组:
分叉选择规则是一个功能,由客户端评估,输入为已见的区块和其他消息集合,并向客户端输出“规范链”。需要分叉选择规则是因为可能有多个有效链可供选择(例如,如果两个具有相同父母的竞争区块同时发布)。
分叉选择规则一个不太为人知的方面是它与时间的关系,这对块生产有重大影响。
在以太坊PoS中,时间以12秒的增量分段,称为时隙
。PoS算法随机分配验证者权限,以提议
该时隙的块;这个验证者被称为提议者。在同一个时隙,其他验证者的任务是为根据它们的本地视角通过应用分叉选择规则成为链头的块进行证明
(投票)。12秒的时隙被细分为三个阶段,每个阶段消耗4秒。
在时隙中发生的事件如下,使用t=0
表示时隙开始。
时隙中的关键时刻是t=4
的证明截止时间
。如果一个证明验证者在证明截止时间之前没有看到一个块,他们将投票之前接受的链头(根据分叉选择规则)。块被提议的越早,传播的时间就越长,因此它累积的证明就越多(因为更多的验证者在证明截止时间前看到它)。
从网络健康的角度来看,块发布的最佳时机是t=0
(由规范确定)。然而,由于块的价值伴随时间单调增加,提议者有动力推迟块的发布以便更多的MEV积累。有关更多详细信息,参见权益证明中的时间游戏和此讨论。
历史上,只要下一个验证者在构建他们后续时隙的块之前看到块,提议者就能够在证明截止时间之后(甚至接近时隙末尾)发布块。这是由于子块继承父块的权重,分叉选择规则在叶子节点处终止。因此,推迟块发布没有任何下行风险。为了促进理性行为(推迟块发布)转向诚实行为(按时发布),实施了“诚实重组”。
两个新概念被引入到共识客户端中,对证明截止时间有关键影响。
提议者提升
( PR) – 试图通过给予提议者与40%的完整证明权重相等的分叉选择“提升”,以最小化重组平衡攻击。重要的是,这个提升只能在时隙的持续时间内存在。诚实重组
( PR) – 在提议者提升的基础上,使诚实的提议者能够利用它强行重组具有低于20%证明权重的区块。这在Lighthouse和Prysm中实现(自v4.0 – Capella发布版)。这个改变是可选的,因为这是提议者做出的本地决定,不影响证明验证者的行为。因此,没有协调努力在所有客户端中同时推出它,也没有与任何具体的硬分叉关联。请注意,诚实重组在一些特殊情况下是避免的:
条件3确保诚实重组只会从链中移除单个块,这充当了电路断路器,使链在极度网络延迟期间能够继续生成块。这同样反映了提议者对自己网络视角的信心降低,因为他们无法再肯定他们的提议者增强块会被视为规范块。
下面的图示演示了如何改变诚实行为以实施重组策略。
在此场景中,b1
表示一个迟到的块。由于延迟,b1
仅占时隙n
的19%证明权重。其余81%的证明权重分配给父块HEAD
,因为许多证明者在证明截止时间之前未看到b1
。
没有诚实重组,时隙n+1
的提议者将b1
视为链的头部并构建子块b2
。尽管b1
只有19%的证明权重,但提议者没有努力重组它。在时隙n+1
期间,b2
获得提议者提升,并假设按时传递,b2
将通过获得该时隙的大多数证明而成为规范块。
而有了诚实重组后,情况就大为不同。现在时隙n+1
的提议者看到b1
的19%证明权重低于重组阈值,因此他们构建一个块,以HEAD
为b2
的父块,强行重组b1
。当我们达到时隙n+1
的证明截止时间时,诚实的证明者将比较b1
(19%)与b2
(来自提议者提升的40%)的相对权重。所有客户端都实现了提议者提升,因此b2
将被视为链的头部,并将累积时隙n+1
的证明。
在4月2日的去绑定攻击中,提议者通过将一个无效的签名头部发送回中继来利用中继漏洞。在随后的几天中,中继和核心开发团队发布了一系列软件补丁,以降低重复攻击的风险。五个主要变更如下:
这些变更的组合导致共识不稳定,情况因现有大量验证者使用上述诚实重组策略而加剧。
上述提到的5个更改每个都在中继块发布的热门路径中引入了延迟,这增加了中继块在证明截止时间之后广播的可能性。下面的图描绘了这五个检查的顺序,以及引入的延迟如何导致块发布超过证明截止时间。
在实际实施这些检查之前,签名头部在t=0
之后显著更晚达到,例如t=3
,通常不会出现任何问题。中继的开销非常小,因此通常在t=4
的证明截止时间之前发布块。
然而,随着这五个补丁引入的延迟,中继现在可能部分负责延迟广播。让我们看看一个假设性的块发布示例。
中继在t=3
时接收到提议者的签名头部。在t=4
时,中继仍在执行检查,因此广播发生在证明截止时间之后。在这种情况下,提议者延迟发送签名头部和中继引入了一些额外延迟的结合导致错过了证明截止时间。如果没有诚实重组,这些块很可能已经上链。后续时隙的诚实提议者不会因为迟到而故意重组块,就像我们在图2中看到一样。然而,有了诚实重组,错过证明截止时间意味着此块将被下一个提议者重组。
因此,在攻击后的几天里,分叉块的数量急剧增加。
Metrika的为期两周的数据表明,在最糟糕的情况下,一个小时内重组了13个块(4.3%),这比正常情况多出了约5倍。随着中继推出各种更改,分叉块数量的急剧增加变得显而易见。感谢中继运营商和核心开发者的巨大社区努力,一旦了解了影响,许多更改被恢复,网络恢复到了健康状态。
截至今天,最有用的更改是块验证和在广播之前的双重发表检查。恶意提议者再也无法通过向中继发送无效头部来执行攻击,还必须确保信标节点在发布之前未看到双重发表的块。尽管如此,中继仍然容易受到提出的更一般的双重发表攻击,如 mev-boost和ePBS中的双重发表攻击。
在这篇文章中,我们强调了mev-boost
的工作原理及其对以太坊共识的重要性。我们还深入探讨了关于时间的以太坊分叉选择规则的一些不为人知的方面。通过将去绑定攻击和开发者的反应作为案例研究,我们强调了与时间相关的分叉选择规则潜在的脆弱性以及其对网络稳定性的影响。
考虑到这一点,研究社区应评估什么是“可接受”的重组数量,并更广泛地考虑对双重发表攻击的暴露,以确定是否应实施缓解措施。
此外,还有多个未来方向正在积极探索:
mev-boost
免受双重发表的影响。这还需要在共识客户端软件中进行更改,以及可能需要延长证明截止时间的规范更改。mev-boost
软件的漏洞奖励计划的数量和可见度。mev-boost
是核心协议功能,并将其吸收到共识客户端中,也就是被安排到PBS (enshrined PBS, ePBS)。两时隙的ePBS易受双重发表攻击,因此实施“头锁”仍然是一个选项。t=4
移动到t=6
)。总体而言,我们对围绕MEV和mev-boost
生态系统的新能量感到兴奋。通过去绑定攻击和缓解措施,我们已经认识到延迟、mev-boost
和共识机制之间的关键关系;我们希望该协议能够在响应中持续增强。
如果这些主题让你感到兴奋和有趣,请联系Georgios(电子邮件)或Mike(电子邮件)。
非常感谢Bert Miller、Danny Ryan、Alex Stokes、Francesco D’Amato、Michael Sproul、Terence Tsao、Frankie、Joachim Neu、Chris Hager、Matt Garnett、Charlie Noyes和samczsun对这篇文章的反馈,以及Achal Srinivasan对图形设计的贡献。
- 原文链接: paradigm.xyz/2023/04/mev...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!