在去中心化金融(DeFi)的浪潮中,各种复杂的交易策略应运而生,旨在从市场的微小波动中获利。“三明治套利”(Sandwich Attack)是一种在以太坊等区块链上较为知名,也颇具争议的套利策略,它利用了去中心化交易所(DEX)订单簿的公开性和交易执行的顺序性,通过在目标交易前后插入恶意交易,从而“夹击”并获利,本文将深入探讨以太坊三明治套利的原理、操作流程、潜在风险以及相关防御措施。

什么是三明治套利?

三明治套利,顾名思义,就像制作三明治一样,将一个目标交易“夹”在中间,套利者(攻击者)会监测到一笔即将执行的、规模较大且可能导致价格显著波动的交易(通常是“大额买入”或“大额卖出”),套利者在目标交易执行前,抢先买入目标资产,推高其价格;在目标交易执行导致价格进一步朝有利方向变动后,套利者立即卖出之前买入的资产,从而获利,反之,如果目标交易是大额卖出,套利者则会先卖出,待价格下跌后再低价买回。

三明治套利的工作原理

以太坊上的DEX(如Uniswap, SushiSwap等)采用的是自动做市商(AMM)模式,其价格由池子里两种代币的数量决定,当一笔大额交易发生时,会瞬间消耗或增加大量目标代币,导致价格发生暂时性偏移,三明治套利正是利用了这种价格偏移:

  1. 监测目标交易(“面包片”的准备):

    • 套利者通过区块链浏览器或专门的MEV(Maximal Extractable Value,最大可提取价值)机器人,实时监控待处理的交易池(mempool)。
    • 他们会特别关注那些交易金额较大、可能对代币价格产生显著影响的交易,一笔大额的ETH购买某个代币。
  2. 执行前置交易(“第一片面包”):

    • 一旦监测到目标交易,套利者会以更高的Gas费将一笔“前置买入”交易打包进区块,并优先于目标交易执行。
    • 这笔前置买入交易会推高目标代币的价格,如果目标交易是要用大量ETH买入代币X,套利者会抢先买入代币X,导致代币X的价格相对于ETH上涨。
  3. 目标交易执行(“夹心”):

    • 由于套利者的前置交易支付了更高的Gas费,其交易通常会被矿工/验证者优先打包,紧接着就是目标交易。
    • 目标交易(大额买入代币X)现在不得不以被抬高后的价格执行,这进一步推高了代币X的价格,或至少使其维持在高位。
  4. 执行后置交易(“第二片面包”):

    • 在目标交易执行后,代币X的价格处于相对高点,套利者立即发出一笔“后置卖出”交易,卖出其在前置交易中买入的代币X,赚取差价。
    • 这笔卖出交易同样会以较高的Gas费优先于其他 pending 交易执行,以确保在价格回落前完成套利。

举个例子(大额买入场景):

  • 假设代币X当前价格为1 ETH。
  • 套利者监测到一笔大额交易:用户A要用10 ETH买入10,000代币X(这会显著推高价格)。
  • 随机配图