Hasu:深入理解MEV-boost 设计机制

Hasu
媒体专栏
热度: 18790

我希望这篇帖子帮助你对 mev-boost 的信任假设有了一定框架,为什么会选择它们

原文标题:Understanding liveness risks from mev-boost

原文作者:Hasu, strategy lead @ http://Flashbots.net

编译:Lynn,MarsBit Intern

原文来源:Flashbots

在过去的几天里,mev-boost 一直是社区中的热门讨论话题。我们想要通过这次机会强调和教育使 mev-boost 可能成为一个可合并的 PBS 解决方案的设计和信任假设。

首先,必须注意的是,关于发现新问题或信任假设的报告是错误的。这篇文章中讨论的所有内容都是 mev-boost 的已知特性,也都在最初的 [mev-boost 研究帖](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177)中讨论过。每一个问题都有一个已知的、被接受的缓解措施,且正在共识客户端中实施。合并和 mev-boost 都将在预定的时间线推出。你可以在 [boost.flashbots.net](http://boost.flashbots.net/) 的 mev-boost 登陆页面上持续关注每个共识客户端和节点运营商的准备状态。

话已至此,让我们深入了解一下 mev-boost 的设计、信任假设和为什么选择它们,以及我们如何减轻以太坊的活性风险。

区块扣留攻击

为了帮助你跟上节奏,mev-boost 是验证者能够运行的中间件,以将其区块搭建外包给区块搭建者市场。在搭建者和验证者之间存在“中继器”,负责推动双方之间的丝滑交易。该中继器保护搭建者不将任何有关区块的信息泄露给验证者,并且保证甚至小型验证者也能参与进搭建者市场。同时,中继器保护验证者不会接收无效的区块,对验证者出价过高,或完全没有。(更多有关此请详见“*为何选择这项设计?*”)

中继器能够与一个或多个搭建者连接,我们希望会有两种变体。一个连接多个搭建者的中继器将集合他们的出价(一个有趣的事实:在之前的迭代里,我们称其为搭建者聚合器或搭建者池)。中继器能够看见被搭建者提交的所有区块,确认其有效性和它们该支付验证者多少钱。之后,中继器只会将最高的有效出价提交给验证者来签名。

在验证者能够接收来自中继器的出价之前,他们需要[建立 mev-boot](https://boost.flashbots.net/) 并将中继器添加至他们的 mev-boost 配置。它将为验证者提供在所有的中继器中胜出的出价。一个验证者可以和少数聚合了所有的搭建者的中继器连接,而且许多人可能都将这么做。其他验证者可能和很多中继器连接。

如果 mev-boost 在配置里没有中继器,**或者**所有的中继器都下线了,那么信标节点(BN)将总是退回到从公共的内存池建设一个区块。所以我们知道风险不是所有的中继器都下线。那么风险是什么?

- 整个网络连接到同一个中继器(不一定是唯一的),**并且**

- 该中继器是出价最高的中继器,因此其区块被验证者选中,**并且**

- 该中继器发送区块头以进行签名(= 它没下线)但在接收验证者签名后,并未将最终的区块发布至网络。

这种情况下,这同一个的中继器将一直向验证者推荐区块,而这些验证者将一直签名这些区块,然后没有区块将被发布。结果会是一连串的空槽。不生产区块的网络通常被称作一个*活性问题*。(这与 DDOS 攻击不同,因为受影响的节点仍然履行其所有其他网络职责,如发布证明、八卦信息等。)

这种故障可以通过一个漏洞或者一个恶意中继发生。如果是漏洞,我们希望中继器意识到它们的问题并迅速地解决,或者整个下线。因此,更需要防范的情况是恶意中继发起的故意扣留攻击。

必须强调的是,一个*扣留攻击*能够立即连带造成整个网络的*活性问题*。这是因为一个恶意中继器可以对其出价撒谎,保证它永远会被所有与其登记的验证者选择。例如,想象一个恶意中继器人为地出一个比诚实的中继者更高的数字。

这种攻击对中继器来说是免费的,因为其永远不需要发布区块并向验证者支付,然而所有受影响的验证者都错过了他们的提名时段。

重要的是,我们并不担心10%的网络连接了一个故障的中继器,而只有当一个故障的中继器过于受欢迎,从而为整个网络带来了系统性风险的时候才忧虑。老话说得好,如果10%的验证者错过了它们的时段,这是它们自己的问题。而如果100%的验证者错过了它们的时段,这就是以太坊的问题。

映射解空间

那么,假设一个受欢迎的中继器正在扣留区块。系统要如何恢复?根据第一原则,当以下任一步骤发生时,系统就会恢复。

1. 验证者从他们的 mev-boost 配置中移除故障中继器(或者直接把 mev-boost 整个关掉),**或者**

2. 其他中继器出价高于故障中继器,**或者**

3. 故障中继器完全下线,**或者**

4. 故障中继器开始重新发布区块

浏览以上针对故障中继器的“防御措施”,很清楚的是第3条和第4条在故障中继器的控制范围内,而第2条是在其他中继器的控制范围内。但对于我们这些验证者,我们只关心当意识到中继器故障时可以让我们移除它们的解决办法。

在这片解空间,有两类:本地和全球解决方案。本地解决方案是最简单的——验证者(或者说他们的 mev-boost)能够跟踪一个中继器最近的情况表现。如果一个中继器误传了致富信息或者没有发布区块,验证者能够自动移除这个中继器。但这个解决方案有一个*本地信息*的问题。这个解决方案保护单一的验证者免受不良中继器的影响,但下一个验证者对这个不良中继器并不知情。一个本地解决方案可能对Coinbase、Lido、Binance、Kraken等等来说已经足够,因为它们控制了许多验证者,以至于他们的“本地”对网络的“全球”来说是一个很好的近似值——但对较小的验证者来说,就没有什么帮助了。这些验证者需要知道中继器在之前其他验证者的时段上表现如何。

看起来我们需要一个*全球解决方案*。在全球解决方案中,验证者查看网络的全球历史(而不仅仅是他们自己的)来移除中继器。社区在合并之前正在建立两个全球解决方案。

第一个解决方案是一个由信任的第三方运作的[中继监控器](https://github.com/flashbots/mev-boost/issues/142)。该监控关注中继器的全球情况表现,能够向验证者发送信息,类似于“请现在移除中继器x”。因此,如果任何中继器犯了错,所有连接了中继监控器的验证者将更新他们的配置。这条路径有任何其他新的风险吗?我们可以回顾一下,一个空的 mev-boost 配置意味着验证者会退回到本地区块生产。所以中继监控器只能暂时从验证器的配置中移除中继器,而不是任何新的中继器,或者导致验证者错过任何时段。

第二个解决方案,,由 [Alex Stokes](https://twitter.com/ralexstokes) 在电话中介绍,是一个所谓的[断路器](https://hackmd.io/@ralexstokes/BJn9N6Thc)。它的工作原理类似于中继监控器,但不依赖第三方服务。断路器是信标节点的一部分。它查看网络的本地视图,如果节点在连续的y个错过的时段中看到x个,它将断开与搭建者网络的连接,并返回到本地生产区块。关于选择一个好的x数字有一些细微的差别,因为一个小数字会允许一个大型的验证者故意错过时段,以触发网络其他部分的断路器并关闭他们的 mev-boost。一个大的数字可能会导致连续错过许多时段。

以上以及更多不太成熟的解决方案正在 [GitHub issue](https://github.com/flashbots/mev-boost/issues/222) 中讨论。最终,Enshrined PBS 将完全摒弃中继器,但这已经是后话了。

为何选择这项设计?

由于 mev-boost 中使用的“提交-披露”方案,中继器可能无法做到在做出获胜出价后释放区块。这种攻击载体从一开始就是已知的,它是一个经过计算的选择。但为什么会选择它呢?

代替方案将是继续使用 Flashbots 的 pre-PoS 设计,我们称之为“[PBS 阶段1](https://writings.flashbots.net/writings/why-run-mevboost)”。在这个系统中,区块搭建者以明文方式向验证者发送完整的区块,验证者必须向区块搭建者开放一个对 DOS 敏感的 RPC.

那个设计的优点是验证者可以一直查看该区块,以验证那个区块是有效的,以及其该向验证者支付多少。如果没有搭建者及时发送区块,验证者可以退回到本地区块搭建,此时不会有错过哪怕一个时段的风险。

但缺点是去爱搭建者需要相信验证者不会从他们那里偷 MEV,以及验证者需要相信区块搭建者不会对他们进行 DoS 攻击。不幸的后果是,只有相互信任的验证者和搭建者能够参与进 PBS 市场。

因此,虽然这种设计有很好的应对区块扣留攻击的特性,但它会完全切断单干者对 MEV 的提取。经过与以太坊社区和其他主要利益相关者的公开讨论,这一成本被认为太高,我们最终选择了一个可以囊括它们的设计。

总结

我希望这篇帖子帮助你对 mev-boost 的信任假设有了一定框架,为什么会选择它们,以及什么缓解措施将用于避免以太坊的活性风险。中继监控器将为合并准备就绪。断路器正在开发,一些共识客户端已经将它们执行了。再加上验证者实行良好的中继卫生(在进一步的缓解措施到位之前只使用受信任的中继器,为他们的时段设置停机监控),我认为我们在合并中处于有利地位。

参考文献

- [mev-boost 结构](https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177)

- [mev-boost 主页](https://boost.flashbots.net/)

- [为什么运行 mev-boost?](https://writings.flashbots.net/writings/why-run-mevboost/)

- [活性减缓 GitHub issue](https://github.com/flashbots/mev-boost/issues/222)

- [中继监控器](https://github.com/flashbots/mev-boost/issues/142)

- [断路器提案](https://hackmd.io/@ralexstokes/BJn9N6Thc)

【责任编辑:Alex】

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。