跳到正文

链上抢跑

链上抢跑是利用待处理交易的信息,让另一笔交易抢先执行并获利。本词条说明公开交易池、排序、MEV、滑点和私有发送如何影响抢跑风险。

更新于

仅供教育参考,不构成投资建议;投资可能产生损失。

直接答案

链上抢跑是指有人得知一笔待处理交易后,设法让另一笔交易先于它执行,从中获取价值。抢跑者可能复制一笔可获利的合约调用、在已知订单之前买入,或争夺稀缺的链上机会。抢跑是最大可提取价值(MEV)的一种形式,并不等同于所有 MEV 策略。

这一机会之所以存在,是因为以太坊交易提交后通常会先广播并停留在交易池中,之后才由验证者纳入区块。搜索者可以检查待处理交易、模拟结果,再发送自己的交易或交易包。最终顺序由区块构建流程决定,因此更高的优先费可能影响纳入概率,却不能保证特定位置。

对用户而言,关键在于交易是否会在执行前暴露有价值的意图、交易限制是否留下可提取空间,以及谁能影响排序。滑点过宽的 DEX 兑换、使用可复用秘密的公开领取、清算、拍卖和限量铸造都可能引来竞争。

运作机制

在夹子交易中,搜索者看到一笔待处理的 DEX 买单,紧接着在它之前买入同一资产,并在它之后卖出。用户买入会在搜索者两笔交易之间推高池内价格。只有当额外价格变动后,用户的最低收到量仍允许交易执行,且收益足以覆盖全部费用时,这一策略才会成功。

通用抢跑机器人会寻找可以复制其价值的调用。如果一笔交易暴露了答案或授权,且这些信息没有绑定预定接收者,其他账户就可能复制调用并争取更早执行。合约可采用提交-揭示机制并把领取权绑定到特定接收者;仅要求用户提高费用并不能保护已经暴露的信息。

以太坊的 maxPriorityFeePerGasmaxFeePerGas 等费用字段决定发送者愿意支付的上限,却不会隐藏交易内容;构建者也可能评估交易包,而不是只按某个费用字段排序。因此,抢跑本质上是信息与排序问题,并非单纯的 Gas 竞价。

例子

假设一个 AMM 池中有 100 ETH 和 200,000 USDC。用户公开提交一笔用 10,000 USDC 买入 ETH 的交易,滑点容忍度为 5%。待处理交易暴露了方向、规模和最低可接受输出。

搜索者模拟这笔兑换,提交一笔在其之前执行的买单,再提交一笔在其之后执行的卖单。如果两笔交易恰好排在用户交易两侧,用户收到的 ETH 会少于没有夹子时的数量,但仍在 5% 限制内;搜索者扣除费用后保留差额。

结果并无保证。其他搜索者的竞争、池手续费、价格变化、未被纳入区块或用户的最低输出检查,都可能使策略无利可图或让整个序列失败。正常的大额交易本身也会造成价格冲击,因此不能在没有检查交易轨迹和池状态的情况下,把所有滑点都归因于攻击。

风险与缓解

没有任何设置能消除全部排序风险。务实的目标是减少不必要的信息泄露,并限制交易愿意承受的损失。

  • 根据池深和当前状况设置合理的最低输出或价格限制;不要只为强行成交而放宽滑点。
  • 签名前检查价格冲击、流动性、代币转账规则和路由,尤其要留意浅池中的大额交易。
  • 适当时使用信誉良好的私有发送或 MEV 保护服务,同时核查其构建者覆盖、失败处理、隐私政策和信任假设。
  • 协议设计不应把先到先得的秘密直接放进交易数据;应按应用场景采用接收者绑定、提交-揭示、批量拍卖或其他机制。

私有发送可以让交易不出现在公开交易池,但并非万能保证。用户必须依赖服务方和参与构建者不泄露或滥用交易;确认前切换 RPC 路径也可能让交易重新暴露到公开网络。交易还可能延迟或未被纳入。

常见误区

误区 1:多付 Gas 就能防止抢跑

更高的优先费可能提高纳入概率,却不会隐藏交易。搜索者和构建者仍可提交价值更高的排序或交易包,因此单靠费用竞价并不能形成保护。

误区 2:每次不利成交都是夹子攻击

大额订单本身就会推动 AMM 价格,交易等待期间市场也可能变化。路由费、转账税和正常竞争同样可能让执行结果变差。

误区 3:零滑点总是最安全

过紧的限制可能拒绝正常价格变动,公开交易回滚时仍可能消耗 Gas。合适的限制取决于流动性、交易规模、紧迫程度和用户可接受的最大损失。

相关主题

来源

导航

搜索知识库...