Time:2023-05-01 Click:108
原文标题:《Time, slots, and the ordering of events in Ethereum Proof-of-Stake》
原文作者:Georgios Konstantopoulos、Mike Neuder,Paradigm
原文编译:wesely
4 月 2 日,一名恶意的以太坊网络参与者利用 mev-boost-relay 中的漏洞窃取了一位 MEV 搜索者的 2000 万美元(请参阅 Flashbots 的事后分析)。在接下来的几天里,开发人员通过发布五个补丁来解决这个 bug,并结合现有的网络延迟和验证器策略,在 4 月 6 日导致以太坊网络出现短暂不稳定期。重新组织对于网络健康是不利的,因为它会降低区块生产率并减少结算保证。
本文旨在探讨 mev-boost 和共识之间相互作用、揭示以太坊权益证明机制中微妙之处,并列举一些可能前进方向。我们受到搜索者遭受攻击和网络暂时不稳定事件所启发。
mev-boost 是由 Flashbots 和社区设计的协议,旨在缓解最大可提取价值(MEV)对以太坊网络造成负面影响。
mev-boost 中有三个角色:
Relays - 相互信任拍卖商将提案人连接到区块构建者。
Builders - 构建区块以最大化自己和提案人的 MEV 的复杂实体。
Proposers - 以太坊权益证明验证器。
每个区块的大致事件序列是:
Builders 通过从用户、搜索者或其他(私有或公共)订单流中接收交易来创建一个区块。
Builders 将该区块提交给 Relay。
Relays 证该区块是否有效,并计算它向提案人支付多少费用。
Relay 向当前时隙的提案人发送「blinded」头部和付款价值。
提议人评估他们收到的所有出价,并签署与最高付款相关联的 blinded 头部。
提议人将此已签名头部发送回中继站点。
该区块由中继使用其本地信标节点发布并返回给提议方。奖励通过在该区块内进行交易和区块奖励分配给构建者和提议方。
Relay 是一种相互信任的第三方,促进了来自于 proposer 的对于 block space 公平交换以及来自 builder 的 transaction sequencing for MEV extraction。Relay 保护 builders 免受 MEV 偷窃,其中 proposers 复制 builder transactions 来获取 MEV 而不是分配给发现它的 searcher/builder。Relay 保护 proposers 确认 builder 区块有效性、代表 proposer 每个时隙处理数百个区块,并确保 proposer 支付的准确性。
mev-boost 是关键的协议基础设施,因为它使所有提案人都能够民主地访问 MEV,而无需与构建者或搜索者建立信任关系,这有助于以太坊的长期去中心化。
在我们深入攻击和响应之前,我们先来看一下以太坊的权益证明(PoS)机制及其相关的分叉选择规则。分叉选择规则允许网络就链头达成共识。根据《合并后以太坊重组》:
分叉选择规则是一个函数,由客户端评估,它将已经看到的区块和其他消息作为输入,并向客户端输出「正式链」是什么。需要分叉选择规则是因为可能有多个有效的链可供选择(例如,在同时发布具有相同父级的两个竞争区块时)。
关于分叉选择规则较少知道的一个方面是它与时间的关系,这对区块生产有重大影响。
在以太坊 PoS 中,时间被划分为 12 秒增量称为插槽。PoS 算法随机指定验证器获得该插槽提议一个区块;此验证器被称为提议者。在同一插槽中,其他验证器被指派任务:通过应用 fork-choice 规则投票支持他们本地视图中链头所在位置上最新版本的区块。12 秒间隔被分为三个阶段,每个阶段消耗 4 秒。
在插槽中发生的事件如下所示,其中 t= 0 表示插槽开始。
中继在 t= 3 时从提议者处接收到已签名的头部。到了 t= 4 ,中继仍在执行检查,因此广播发生在证明截止期之后。在这种情况下,提议者发送已签名头部晚和中继引入一些额外的延迟相结合导致错过了证明截止期。如果没有诚实重组,则这些块很可能会进入链上。如我们在图 2 中所看到的那样,随后插槽的诚实提议者不会故意重新组织由于时间太晚而被拒绝的块。然而,在有诚实重组的情况下,错过证明截止期意味着该块将被下一个提议者重新组织。
因此,在攻击后几天内,分叉块数量急剧增加。
Metrika 2 周的数据显示,在最糟糕的情况下,一个小时内有 13 个区块(4.3 %)被重新组织,这比正常情况多了约 5 倍。随着中继推出各种变化,分叉块数量的急剧增加变得明显起来。由于中继操作员和核心开发人员做出了巨大的社区努力,一旦理解了影响,许多更改就被撤销,并且网络恢复到健康状态。
截至今天,最有用的更改是信标节点块验证和在广播之前进行等价检查。恶意提议者不能再通过向中继发送无效头部并确保中继信标节点在发布之前不看到等价块来执行攻击。尽管如此,该中继仍然容易受到 Mev-boost 和 ePBS 中介攻击所呈现的更普遍等价攻击的影响。
在这篇文章中,我们强调了 mev-boost 的工作原理以及它对以太坊共识的重要性。我们还详细介绍了与时间相关的 Ethereum 分叉选择规则中一些不太为人知的方面。通过使用拆分攻击和开发者的响应作为案例研究,我们强调了分叉选择规则中与时间相关的方面潜在脆弱性及其对网络稳定性的影响。
鉴于此,研究界应评估什么是「可接受」的重新组织数量,并考虑普遍情况下等价攻击所带来的风险,以确定是否需要实施缓解措施。
此外,目前正在积极探索多个未来方向:
实现「headlock」以保护 mev-boost 免受等价攻击。这也需要更改共识客户端软件并可能需要进行规范更改以延长证明截止期。
增加针对 mev-boost 软件的漏洞赏金计划数量和可见度。
扩展模拟软件以探索子时隙定时如何影响网络稳定性。这可以用于评估如何通过调整证明截止期来减少重新组织。
优化中继上的块发布路径以减少不必要的延迟。这已经在研究中了。
认识到 mev-boost 是核心协议功能,并将其吸收到共识客户端中,即 enshrined-PBS(ePBS)。两个时隙的 ePBS 容易受到等价攻击的影响,因此实现「headlock」仍然是一种选择。
增加基于延迟和证明截止期问题的更多 hive 和 / 或规范测试。
通过构建中继规范的其他实现来鼓励中继客户端多样性。
考虑调整等价惩罚措施,但请记住,在极大 MEV 机会存在时,即使完全削减 32 ETH 也可能无法阻止恶意行为。
总体而言,我们对 MEV 和 mev-boost 生态系统周围重新激发起来的能量感到兴奋。通过拆分攻击和缓解措施,我们已经了解了延迟、mev-boost 和共识机制之间关键关系;我们希望协议能够持续强化。
非常感谢 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。