颠覆(心之)全蚀

  • dmarz_
  • 发布于 2024-10-02 11:36
  • 阅读 172

文章分析了一种针对以太坊MEV-Boost中继的新型攻击——“Bonnie攻击”,该攻击利用eclipse攻击延迟区块传播,使攻击者能够操纵区块内容并抢先交易。

由 Dan Marzec 和 Louis Thibault 共同撰写

:warning:TL;DR: 恶意行为者可以依赖 eclipse attacks 来赢得 "attestation race"。

我们提出了对该漏洞的分析,并总结了缓解策略。

Unbundling Attack 的剖析

2023年4月3日,攻击者利用主要 mev-boost 中继(mev-boost-relay, dreamboat)中存在的漏洞,从抢跑机器人中提取了 3000 万美元。攻击的概要如下图所示,由 Mike Neuder 提供:

Proposer-Builder Separation (PBS) 的一个核心概念是,在提议者“提交”到区块之前,不允许他们访问区块的内容(例如,通过签署相应的区块头)。在提议者签署区块后,如果他们签署第二个区块,则容易受到 slashing 惩罚。

在这种情况下,攻击者通过将高滑点交易发送到公共 mempool 中来引诱抢跑机器人。重要的是要注意,抢跑是一种非原子形式的套利,这意味着所涉及的交易可以被 unbundled。这为能够发现该区块、重新排列其交易以便抢跑抢跑者,并在原始区块之前将伪造的区块传播到 attestation committee 的攻击者创造了比 1 Eth 的 slashing 惩罚大得多的激励。

为了实现这一点,攻击者利用了 MEV 中继中的一个漏洞,其中已签名的区块头没有得到正确验证。这使得恶意提议者可以提交到无效区块,之后构建者会错误地显示其完整的区块。从那里,它 unbundled 交易,构建了一个有效的区块,提取了 3000 万美元的抢跑 MEV,并将其传播到整个网络。之所以能够成功,是因为中继没有找到与无效区块头对应的区块,因此没有向 beacon node 发送任何内容。实际上,无效区块头是一种用于阻止合法区块传播的机制,同时仍然欺骗中继以显示它。

区块头验证错误已在 mev-boost-relaydreamboat 中得到修复。

延伸阅读

未来的攻击:分析与缓解

在修补中继的过程中,另外两个漏洞被提上水面,并且由于它们的非互斥性以及缺乏明显的解决方案而引起了担忧的讨论。 这些是:

  1. 多区块恶意破坏攻击。 对手放弃他当前的 slot 提议(通过提交太晚),以便访问区块并泄露私人交易。 由于攻击者实际上无法获利,因此被认为是“恶意破坏”。 但是,如果攻击者控制了下一个 slot,则只要搜寻者 bundles 不限制区块号,他就可以从此信息中获利。 虽然此攻击对于分析和缓解未来的 In-Protocol-PBS (IP-PBS) 非常重要,但它是一种更复杂的媒介,本文档将不对此进行介绍。

  2. Eclipse/Saturation 攻击。 这是对在野外观察到的区块 equivocation 攻击的另一种方法。 它用 eclipse attack 替换了中继的验证错误,该攻击将中继的 beacon node 与网络的其余部分隔离。 这具有阻止合法区块到达 attestation committee 的效果,从而允许进行 unbundling 攻击。

本文档重点关注攻击媒介 #2。在大多数讨论中,此攻击被称为“eclipse attack”,但是此名称可能会使解决方案空间与 p2p 网络中经过充分研究的 eclipse attack 缓解措施相混淆。 至少有两件重要的事情正在发生:

  1. 减慢消息传播速度的 eclipse attack; 而且,
  2. attestation race。

从这个角度来看,主要的攻击媒介是 attestation race,而不是 eclipse。 后者实际上代替了原始漏洞中的无效区块头:一种阻止有效区块到达 attestors 的方式,以便恶意区块首先到达 attestors。

eclipse attack 的这种应用具有足够的偶然性,并且对于 Ethereum PBS 来说足够具体,因此它需要自己的名称。 我们将其称为“Bonnie attack”,以纪念 Bonnie Tyler 1983 年的热门单曲 Total Eclipse of the Heart

这种框架对于理解如何缓解攻击至关重要,因此有必要再次重复:eclipse attack 是偶然的。 重要的是 attestation race。

Bonnie Attack 分析

正如我们所看到的,Bonnie attack 是一大类 equivocation 攻击的一部分,在这种攻击中,攻击者必须发现区块数据,构造恶意区块,并在这些攻击者可以观察到“合法”区块之前将其传播到法定数量的 attestors。 因此,阻止此类攻击实际上是一个非常简单的问题,即确保 attestors 在区块显示给(可能是恶意的)提议者之前见证该区块。

Bonnie attack 的特殊性在于它使用 eclipse attack 将给定的中继(受害者)与更广泛的网络隔离,并减慢其消息的传播。 这种特殊性引入了以下复杂性:使中继 beacon 陷入困境的对等方可以将区块内容传回恶意提议者,从而使其能够构造备用区块。 为了有效,缓解策略必须审查提议者的区块内容,直到 attestation quorum 见证该区块为止。 这引入了一个必要的先决条件:防止中继 beacon 的完全 eclipse。

Bonnie attack 不需要完全 eclipse 中继的 beacon; 延迟其消息的传播,直到当前 attestation committee 的大多数人首先收到恶意区块就足够了(应该注意的是,proposer-boost 鼓励在 slot 中更早地提议一个区块)。 在部分 eclipse 场景中,中继 beacon 的绝大多数对等方由攻击者控制,这可以通过 (a) 减少受害者的有效扇出因子和 (b) 攻击者将消息扇出到数量非常多的对等方的特权来实现。 考虑到这一点,显而易见的是,防止中继 beacon 的完全 eclipse 是击败 Bonnie attack 的必要部分,但绝不是充分的。

这该怎么做? 我们首先回顾我们认为未能充分解决问题的拟议解决方案。 然后,我们提出一种社会方案来防止完全 eclipse,然后再描述一种消除 Bonnie attack 的共识层扩展。

非解决方案

1. 自定义对等覆盖网络

  • BloxRoute BDN 会浮现在脑海中,但是正如其他人提到的那样,攻击者可以只使用 BDN。
  • 实际上,这可能意味着攻击者可能正在使用它,因此中继社区也应该使用它? 互相保证对等?

2. 刷新中继的 Beacon Node 的对等 ID 和对等集

  • 这里的想法是,攻击者可以监视 beacon 区块 gossip topic,并使用中继数据 API 将对等 ID 与中继关联起来。 为了使此过程更加困难,随机旋转对等方和对等 ID 可以使中继的区块看起来好像是从网络中的随机点发布的。
  • boot 节点在 CL 客户端中如何工作?
  • 如果攻击者知道我们的 beacon 节点 IP,或者在云中知道大致 IP,它会强行建立对等连接吗?
    • 无论如何,总 eclipse 不是必需的。
  • 削弱了现有的大多数 p2p 安全形式,因为这些安全形式依赖于具有稳定的身份,可以在其上分配信誉(例如,Gossipsub 中的对等评分)
  • 我们可以阻止与公共云提供商关联的 IP 范围,因为这将是启动许多 beacon node 的最简单方法吗?
    • 有趣的是,Avalanche 已经做了类似的事情

Bonnie Attack 的解决方案 (?)

缓解 Bonnie attack 要求我们 (1) 避免完全 eclipse 中继信标,以及 (2) 在不向攻击者泄露区块内容的情况下发出新区块标识的信号。

避免完全 Eclipse

通过在受信任的中继的 beacon node 之间建立直接对等关系网络来缓解完全 eclipse。这是一个分为两部分的过程:

  1. 公共中继运营商发布其 beacon node 的公钥和对等信息。
  2. 使用 lip2p pubsub WithDirectPeers 选项,中继运营商配置与其他中继运营商的 beacon node 的直接对等关系。

请注意,除了这些受信任的对等方之外,中继运营商必须继续接受动态的匿名对等方,以避免形成私有网络。 消息会无条件转发到直接对等方,从而确保该节点不会完全 eclipsed,除非其所有直接对等方也都完全 eclipsed。 也可以通过让中继直接将其区块发布到其他中继来实现此目的。

从中长期来看,此解决方案也不是很有趣,因为它会在中继集上创建中心化的向量。

抢跑 Attestation Race

在将完全 eclipse 的风险降低到较小的概率后,我们现在回到在不向攻击者泄露区块数据的情况下见证区块数据的问题。 解决方案是 Disembargo After New Block ANnouncement Delay (DANBAND)。

免责声明: DANBAND 这个名字是由 Louis Thibault 建议的。 Dan Marzec 并没有那么自我投入。

丹乐队 - 心灵的完全 Eclipse - YouTube

WesologyRadio 的照片图像

WesologyRadio

2.04K 订阅者

丹乐队 - 心灵的完全 Eclipse

WesologyRadio

搜索

稍后观看

分享

复制链接

信息

购物

点按以取消静音

如果播放没有很快开始,请尝试重启你的设备。

更多视频

更多视频

你已退出

你观看的视频可能会被添加到电视的观看历史中,并影响电视推荐。 为避免这种情况,请在你的计算机上取消并登录 YouTube。

取消确定

分享

包括播放列表

检索共享信息时出错。 请稍后再试。

在观看

0:00

0:00 / 2:27 •直播

万一它不立即显而易见,DANBAND 以 Bonnie Tyler 的 心灵的完全 EclipseThe Dan Band (臭名昭著地)颠覆命名。 听一下(轻微的 NSFW)。

DANBAND 的工作方式类似于标准 PBS 协议中发现的“commit-reveal”模式。 在标准 PBS 中,提议者通过签署中继提供的区块头来“提交” 给定的区块。 至关重要的是,此区块头包含建议区块的哈希值,从而可以事后证明某些给定的区块数据与已签名的区块头相对应。 我们可以将这个想法扩展到通过 beacon 网络传播新区块。 Beacon 订阅一个新的 Gossipsub topic,我们将其称为 witness 并不断地监视其中的消息。 收到提议者签名的区块头后,中继将执行以下操作:

  1. 它在 witness topic 上发布此签名的区块头; 而且,
  2. 它等待 s 秒,然后将区块数据 发布到标准 topic。

witness topic 收到区块头后,beacon 会验证提议者的签名,此后它认为提议者已提交到相应的区块。 随后,它会拒绝任何其他区块头以及任何与所选区块头的校验和不匹配的区块。 应该注意的是,区块头由提议者签名,因此只有在提议者签署了两个不同的区块时才会生成冲突的区块头,在这种情况下,可以将这些区块头作为 slashing 证明提交。

这种行为的最终效果是,合法的区块头在传播到 attestation committee 的竞赛中获得了显着的“领先优势”。

讨论

当然,此解决方案也有其代价。 在 slot 中分配时间进行区块头传播会延迟 beacon 区块的传播。 实际上,我们用于区块头传播的时间越多,此设计创建孤立区块的可能性就越高。 正如 4 月 3 日攻击的初始缓解措施延迟区块传播所见证的那样,孤立区块的数量增加了。 因此,我们还引入了构建者必须构建最有价值的区块的权衡,他们可以通过在时间窗口内合并搜寻者和 tx 发起者透露的所有信息来实现此目的。 实际上,此设计可能更适合于双 slot PBS 设计。

DANBAND 及其所依赖的私有 peering 安排具有两个有益的属性:向后兼容性和 collateral 安全性。

首先,两者都提供完全的向后兼容性。 在私有 peering 的情况下,这显然是显而易见的。 就 DANBAND 而言,采用 DANBAND 的 beacon 实现不会因在 equivocation 条件下删除消息而受到惩罚,也不会因短暂阻止区块数据而受到惩罚。 但是,在大多数节点不支持 DANBAND 协议的网络中,存在重组的可能性。 在这种情况下,Bonnie attack 可能会导致网络接受单个 DANBAND 节点先前拒绝的区块。 因为基于 witness 的验证不适用于重组,所以 DANBAND 节点应正常恢复,并且预计不会出现协议错误。 实际上,DANBAND 表现出一个采用阈值,超过该阈值即可享受其安全属性,但低于阈值的使用不会引入错误或回归。

其次,DANBAND 协议不会引入在经济上或在公平网络参与方面对非恶意参与者造成损害的极端情况。 它不会直接 slashing 或惩罚节点,也不会将现有的合法行为归类为恶意行为。 与目前的情况一样,attestors 永远不会因为证明“错误的事情”而受到惩罚。 相反,它提供了一种在区块结算之前检测 equivocation 的途径。 未来的工作应研究基于 DANBAND 级别的违规自动 slashing 验证器的可行性和可取性。

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

0 条评论

请先 登录 后评论
dmarz_
dmarz_
江湖只有他的大名,没有他的介绍。