一句话版本
你在以太坊上发出一笔兑换交易后,它会先在公开的内存池里等待被打包,所有人都能看到。专门的机器人看到你要大额买入某个代币,就抢在你前面先买(推高价格),等你以更高价格成交后再卖出,赚走差价。这叫三明治攻击,是 MEV(最大可提取价值)中最常见的一种。 用户层面的防御是:设置合理的滑点容忍度,以及把交易发给私有交易池,不在公开内存池里暴露。
全文分三层:
- 通俗理解:排队时被人插队
- 实际用处:MEV 的规模、Flashbots、私有 RPC
- 原理与工程要点:三明治的数学、滑点设置、其他类型的 MEV
第一层:通俗理解
1.1 排队时被人插队
你在拍卖会上举手说"我要以不超过 100 元的价格买下这件商品",声音很大,所有人都听见了。
一个精明的人抢先以 90 元买下,然后转手以 99 元卖给你。你仍然在"不超过 100 元"的范围内成交,没有察觉什么异常,但白白多付了 9 元。
区块链上:
- "举手喊价" = 你的交易在公开内存池里等待;
- "抢先买下" = 机器人付更高的手续费,让自己的交易排在你前面;
- "转手卖给你" = 你的交易以更差的价格成交,机器人紧接着卖出获利。
你的交易被夹在两笔机器人交易中间,所以叫"三明治"。
1.2 谁在排序
区块里交易的顺序由出块方(以太坊合并后是验证者,通过专门的区块构建者)决定,他们自然会优先打包能给自己带来更多收益的交易组合。MEV 就是"通过安排交易的顺序、插入或剔除交易,能额外赚到的钱"。
第二层:实际用处
- 规模:链上分析平台的统计显示,以太坊上被提取的 MEV 累计已达数十亿美元量级,其中相当一部分来自普通用户被夹。
- Flashbots(2020 年起):研究和基础设施组织,推出了让 MEV 交易不经过公开内存池、直接发给区块构建者的通道,以及后来的 MEV-Boost(把"构建区块"和"提议区块"分开)。
- 私有 RPC / 防夹 RPC:Flashbots Protect、MEV Blocker 等服务,用户把钱包的 RPC 换成它们的地址后,交易直接发给构建者,不在公开内存池里暴露,大幅减少被夹的机会;部分服务还会把机器人为你的交易支付的"回扣"返还给你。
- 钱包和 DEX 的应对:一些钱包默认使用防夹 RPC;一些交易聚合器采用"意图"(intent)模式,由专门的求解者在链下撮合,再一次性上链。
第三层:原理与工程要点
3.1 三明治的数学
恒定乘积池子:100 ETH 和 200,000 USDC(价格 2000)
没有攻击时:你用 20,000 USDC 买 ETH,得到 你设置了 10% 的滑点容忍度,即至少要拿到约 8.18 ETH。
三明治:
- 机器人先用 10,000 USDC 买入,得到约 4.762 ETH,价格被推到 2205;
- 你的交易执行,只得到约 8.282 ETH,仍高于 8.18 的下限,交易成功;
- 机器人卖出 4.762 ETH,拿回约 11,941 USDC。
你少拿了约 0.81 ETH(约 8.9%),机器人赚了约 1941 USDC(未计手续费和池子费率)。(已用 Python 验算。)
关键观察:机器人能夹走多少,上限就是你允许的滑点。滑点设得越宽,被夹得越狠。
3.2 滑点设置的两难
| 滑点设置 | 结果 |
|---|---|
| 太宽(如 10%) | 被夹的空间大 |
| 太窄(如 0.1%) | 正常的价格波动就会让交易失败,白付手续费 |
| 合理 | 按池子流动性和交易规模估算;大额交易拆分或使用聚合器 |
3.3 其他常见的 MEV
| 类型 | 说明 | 对普通用户 |
|---|---|---|
| 套利 | 两个交易所价格不一致时搬砖,让价格回归一致 | 基本无害,甚至有益 |
| 清算 | 抢先清算借贷协议里抵押不足的仓位 | 协议设计的一部分 |
| 抢跑(front-running) | 复制你发现的有利可图的交易,抢在你前面执行 | 有害,比如白帽救援交易被机器人抢走 |
| 三明治 | 见上 | 有害 |
| JIT 流动性 | 在你的大额交易前瞬间添加流动性,赚取手续费后撤出 | 影响较小 |
3.4 对产品的启示
- 发送交易时给用户提供"私有发送"选项,或者默认使用防夹 RPC;
- 确认页明确显示最少能拿到多少(由滑点计算),而不只是"预计拿到多少";
- 交易上链后比对实际成交量和预期,偏差过大时提示用户可能被夹(参见《签名后核对》);
- 大额兑换建议拆分,或使用支持意图撮合的聚合器。
总结
| 层次 | 要点 |
|---|---|
| 直觉 | 喊价被人听见,被抢先买入再高价卖给你 |
| 本质 | 公开内存池 + 出块方决定交易顺序 = MEV |
| 数学 | 被夹的上限就是你的滑点容忍度 |
| 防御 | 合理滑点;私有交易池 / 防夹 RPC;意图撮合 |