区块链盗匪:公共 DA 如何产生新的 MEV 攻击向量

  • blog.sei
  • 发布于 2025-05-09 10:16
  • 阅读 29

本文讨论了Sei Giga概念验证中Autobahn共识协议的MEV问题,该协议采用并发而非顺序的区块生产方式。由于区块在公共DA层上发布,验证者可以利用这些公开信息进行交易窃取和跨区块MEV攻击,例如抢先交易、尾随交易和三明治攻击。文章还探讨了解决公共DA问题的几种方案,包括提交-揭示方案、门限密码学和时间锁密码学,并提出了未来工作的方向。

作者:Ben Marsh,Sei Labs Research,Sei Research Initiative。

介绍

Autobahn(Sei Giga 概念验证中使用的共识协议)的一个显著特点是其并发而非连续的区块生产。当一个验证者创建一个区块时,他们与其他验证者同时进行,这些区块在 小费削减 (tip cut) 开始共识过程之前,会发布在公共 DA 层上。由于缺乏传统的 内存池 (mempool) 以及这些公共区块,Autobahn 风格链中的 MEV 看起来大不相同。

一个验证者发布的区块中公开可见的交易,可能被另一个验证者利用 最后观察 (last look) 优势来利用,运行 跨区块MEV (inter-block MEV) 试图 抢先交易 (front-run) 另一个区块中的交易,甚至直接从另一个区块中 窃取 交易,因为他们看到如果该交易存在于他们的区块中,就有盈利机会。

公共 DA

Autobahn 与其他一些现代共识协议一样,将 DA 与共识分离,以将 DA 从关键路径中移除,并实现更好的带宽利用率和确认延迟。多个区块并发地被提议,收集一个 f+1f+1f+1 的 PoA 证书,以便包含在每个 周期 (tick) 的 小费削减 (tip cut) 中。这个 小费削减 (tip cut) 最终定义了 周期 (tick) 的交易排序。

在 Giga 中,没有传统意义上的 内存池 (mempool),没有一个全局 八卦 (gossiped) 的交易集合供区块生产者选择来构建区块,而是每个验证者直接收到交易,通过将交易随机分配给验证者,当多个并发验证者都知道一个交易时,有利于实现抗审查性。验证者可以为了自己的目的维护一个本地 内存池 (mempool),但如果一个交易被其他验证者知道,那么如果他们未能将其包含在至少与另一个验证者相同的 削减 (cut) 中,该交易的效用将变为 0。

与 Solana 不同,交易的随机分配使得垃圾邮件发送给定的 领导者 (leader) 很困难,但也意味着并发创建区块的验证者可能没有相同的交易集合来构建他们的区块。因此,一旦验证者公开 提交 (commits) 包含其交易的区块,另一个验证者可能会抓住机会从该区块中窃取交易,或者利用该区块的内容来尝试从自己的区块中提取额外的收入。

在红色高亮显示的 vulnerable window 期间,验证者可以在小费削减最终确定排序之前看到彼此提议的区块。这为交易盗窃和 MEV 提取创造了机会,因为验证者可以复制高价值交易或根据其他人的可见内容优化他们的区块。

最后观察

最后观察 (Last look) 是指区块生产者在采取自己的行动之前,能够看到其他人的行动,并且在 Autobahn 的情况下,能够看到他们的区块的内容,从而更充分地合理化他们的策略并在最后一刻采取行动。这个想法存在于 TradFi 交易中,但直接适用于 MCP (链上匹配引擎)。

MEV 和交易盗窃

在 Autobahn 中,公共 DA 层改变了 MEV 的运作方式,尽管许多传统概念仍然适用。一旦发布了一个完整的区块,该区块的内容现在就可以被利用。验证者可以窃取一个交易以直接提取收入,无论是从小费还是费用中提取,这取决于 TFM,或者从利用该交易进行 MEV 的能力中提取。验证者还可以执行 跨区块 MEV (inter-block MEV),其中验证者或验证者 卡特尔 (cartel) 试图 抢先交易 (front-run)、尾随交易 (back-run) 或 夹击 (sandwich) 整个区块,或间接夹击这些区块中的交易。

跨区块 MEV

更正式地说,我们让 B(t)={Bi}\mathcal{B}(t)=\{B_i\}B(t)={Bi​} 成为在 周期 (tick) ttt 发布的区块的集合(但尚未通过 小费削减 (tip cut) 排序)。每个区块 BiB_iBi​ 都携带一个数据块的 多重集 (multiset) d∈D(t)d\in\mathcal{D}(t)d∈D(t),具有相关的费用 f(d)f(d)f(d) 和潜在的 套利利润 (arbitrage profit) v(d)v(d)v(d)。一个在看到一些 BiB_iBi​ 之后发布竞争区块 BjB_jBj​ 的验证者 vjv_jvj​ 可以:

  1. 跨区块抢先交易 (Front-run across blocks):在已知的 套利 (arbitrage) 数据块 d∗∈Bid^\ast\in B_id∗∈Bi​ 之前插入一个高费用数据块 dfrontd_{\mathrm{front}}dfront​,以捕获 价格影响 (price impact)。
  2. 跨区块尾随交易 (Back-run across blocks):在 d∗d^\astd∗ 之后立即附加一个数据块 dbackd_{\mathrm{back}}dback​,以捕获 残余价格变动 (residual price movement)。
  3. 三明治攻击 (Sandwich attack):将两者结合起来 —— 抢先交易 (front-run) 和 尾随交易 (back-run) —— 最初包含在另一个验证者区块中的高价值交易。

提议者 (proposer) 的效用变为

U(Bj∣Bi)=∑d∈Bjf(d)+∑d∈Bj∩{dfront,dback}v(d), U(B_j \mid B_i) \;=\; \sum_{d\in B_j} f(d) \;+\;\sum_{d\in B_j\cap\{d_{\mathrm{front}},\,d_{\mathrm{back}}\}} v(d), U(Bj​∣Bi​)=d∈Bj​∑​f(d)+d∈Bj​∩{dfront​,dback​}∑​v(d),

并且从 最后观察 (last look) 中获得的 跨区块 MEV (inter-block MEV) 增益为

ΔMEV=max⁡BjU(Bj∣Bi)−max⁡BjU(Bj), \Delta_{\mathrm{MEV}} \;=\; \max_{B_j} U(B_j\mid B_i) \;-\; \max_{B_j} U(B_j), ΔMEV​=Bj​max​U(Bj​∣Bi​)−Bj​max​U(Bj​),

其中第一项在观察到 BiB_iBi​ 后优化 BjB_jBj​,第二项是盲目的最佳区块。在实践中,这是通过 MEV 搜索者直接向高吞吐量 中继 (relays) 广播候选数据块,甚至与 提议者 (proposers) 勾结以确保他们的 MEV 捆绑包 (bundles) 在观察到的区块之后插入来实现的。

交易盗窃

MEV (MEV) 对新的数据块进行 重新排序 (reorders) ,而 交易盗窃 (transaction theft) 则直接复制来自另一个验证者区块的 待处理数据块 (pending chunk):

  • 一个验证者在某个区块 BiB_iBi​ 中看到一个具有高预期收益的数据块 dorigd_{\mathrm{orig}}dorig​(例如,闪电贷套利 (flash-loan arbitrage))。
  • 他们创建一个重复的数据块 dcopyd_{\mathrm{copy}}dcopy​,但附加一个稍微高一点的费用 f(dcopy)>f(dorig)f(d_{\mathrm{copy}}) > f(d_{\mathrm{orig}})f(dcopy​)>f(dorig​)。
  • 由于 dorigd_{\mathrm{orig}}dorig​ 和 dcopyd_{\mathrm{copy}}dcopy​ 都存在于公共 DA 层中,因此 小费削减 (tip-cut) 将包括产生更高费用的那个 —— 即 小偷的副本 (thief’s copy) —— 并删除或使原件无效。

这种 DA robbery 以牺牲 发起人 (originator) 的利益为代价,为不诚实的验证者带来直接利润,从而阻止用户广播新颖或复杂的策略。可以将预期的 盗窃概率 (steal probability) 正式化为 费用差距 (fee gap) δ=f(dcopy) ⁣− ⁣f(dorig)\delta = f(d_{\mathrm{copy}})\!-\!f(d_{\mathrm{orig}})δ=f(dcopy​)−f(dorig​) 和 网络传播延迟 (network propagation delays) 的函数;但核心的见解是,在 DA 上暴露完整的交易 有效载荷 (payloads) 使每个有利可图的交易都成为潜在的 自由竞争 (free-for-all)。

缓解措施

解决公共 DA 问题的大多数显而易见的方法都基于使用 密码学 (cryptography) 来允许加密的 DA 层。

承诺-揭示 方案

承诺-揭示 方案 (Commit-reveal schemes) 并不是什么新鲜事物,但乍一看似乎是解决公共 DA 问题的完美解决方案。这个想法是首先广播一个 承诺 (commitment),例如一个加密的区块,然后在安全的时候再揭示 未加密的区块 (un-encrypted block)。在这种协议中,可以发布一个加密的区块,收集加密区块存在的 PoA,然后在最后一刻,当没有其他人有时间采取行动时,可以揭示原始区块。

这里有两个明显的缺点,如果发布了虚假区块怎么办,以及如果不揭示该区块怎么办。像大多数 加密货币 (crypto) 一样,解决方案似乎再次是 经济 (economic) 上的,通过 惩罚 (slash) 发布垃圾加密区块的验证者,并在验证者拒绝揭示时进行 惩罚 (slash)。但是,如果验证者有 经济激励 (economic incentive) 不去揭示会发生什么?这样做会让他们付出的代价超过被 惩罚 (slashed) 的代价吗?

门限密码学

避免单个验证者能够逃避其揭示责任的另一种方法是通过 门限方案 (threshold scheme) 分配该责任,其中 解密密钥 (decryption key) 分布在 mmm 个验证者上,需要不少于 nnn 个密钥持有者合作才能发布共识所需的 纯文本区块 (plain text block)。在这样的模型中,假设密钥持有者具有诚实的门槛,则可以保证公共区块,但依赖于密钥持有者的 活跃性 (liveness) 才能工作。密钥持有者卡特尔 (cartel of key holders) 仍然能够阻止区块被发布,并且这种协议的消息传递开销会影响链的性能。

时间锁密码学

时间锁密码学 (Timelock crypto) 和 VDF 提供了一种无需 委员会 (committees) 的替代方案。VDF (可验证延迟函数) 是一个顺序硬函数 V(x),它仅在规定的延迟 Δ\DeltaΔ 之后才生成输出和简短证明:

y,π=VΔ(x) y,\;\pi \;=\; V_{\Delta}(x) y,π=VΔ​(x)

这样,验证 (y,π)(y,\pi)(y,π) 很快,但是从 yyy 计算 yyy 需要实际时间 Δ\DeltaΔ。这样的协议意味着任何人都可以解密已 承诺 (committed) 的区块,但只能在一段时间过去之后。然而,Δ\DeltaΔ 延迟可能很重要,对于以容量运行的链,对于 Giga 来说,大约是 25 万 TPS,这意味着即使是 500 毫秒的延迟也意味着有 10 万+ 的积压需要清除。时间锁协议 (Timelock protocols) 也往往会引起 军备竞赛 (arms races),试图比其他人更早地解密区块,从而使攻击者获得小的优势,避免这种 军备竞赛 (arms races) 需要专门的硬件,例如 ASIC (专用集成电路)。

在由 ASIC VDF (专用集成电路可验证延迟函数) 运行的 瞭望塔 (watchtowers) 的协议中,该协议将强制验证者立即揭示该区块的 经济激励 (economic incentives),从而确保共识过程中没有开销,但是可以最终揭示该区块的 看门狗 (watchdogs) 可以确保一旦 承诺 (committed) 该区块就可以公开。这样的协议将是一种混合协议,它利用了 ASIC (专用集成电路) 上的 时间锁密码学 (timelock crypto) 达到一个无法通过诚实行为的 经济激励 (economic incentives) 进一步优化的点这一事实。但是,这样的协议依赖于存在诚实的 看门狗 (watchdogs)。

未来工作

我们正在积极研究公共 DA 问题以及在此背景下 MEV 的形式化。我们邀请开发人员、研究人员和社区成员加入我们的使命。这是一个开源协作的公开邀请,旨在构建更具可扩展性的 区块链基础设施 (blockchain infrastructure)。查看 Sei Protocol 的文档,并探索 Sei Foundation 的 资助机会 (grant opportunities) (Sei Creator Fund,Japan Ecosystem Fund)。取得联系 - collaborate[at]seiresearch[dot]io

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

0 条评论

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