第四层第二篇。14 给了"未来 12 秒的物理通道"(mempool + PBS);15 是这条通道里实际发生的经济活动目录。 任何 MEV 策略本质都是:看到一个价值 X、抢在别人前面在某一笔 tx 里把 X 转移到自己钱包。 我们 Arbitrageur / LiquidationBot / predictBackrun 分别落在哪一类、为什么我们做三明治、 Phase 1 CEX-CEX 套利为什么死、jaredfromsubway 那条狗一年怎么赚 $50M+——这一篇全部摊开。 沿用 01–14 的村庄画面。结构见 README.md §1。


0. 一句话本质

MEV (Maximum Extractable Value) = 在一个块内通过 reorder / insert / censor 交易能提取的最大价值。 它不是 bug、不是漏洞,是"公共 mempool + 有序执行 + 携带价值的 tx"这三件事的数学必然结果(Phil Daian 2019 paper)。 五大类策略 = 套利 / 清算 / 三明治 / backrun / JIT-LP;前两类对系统有益(修正价格、清掉坏债), 三明治对用户有害(吃用户滑点)。"零本金套利"在数学上对所有人开放,但实际利润集中在 5-10 家 基础设施齐全的 searcher 公司——这就是我们项目实证看到"残差 ≈ 0"现象的精确机制。


1. 怎么产生的:它解决什么问题

01–14 装好了 MEV 的水管(DEX / 借贷 / oracle / 闪电贷 / mempool / PBS)。 15 答的是这些水管里流通的水是什么样、谁在喝

  1. MEV 这名字怎么来的?为什么"Maximum"不是"Miner"? ⇒ 原名"Miner Extractable Value"(2019 Phil Daian 等人 "Flash Boys 2.0" 论文造的词)。 PoS 之后 miner → validator (proposer),且块构造权移给 builder(14 §4.3),"提取者"不再唯一, 改名为"Maximum"——指任何参与者能从有序执行里提取的最大值
  2. MEV 总量有多大? ⇒ 以太坊 mainnet 2020–2025 累计 $1.5B+ 被提取。各类占比大致:
    • 套利 ~40%
    • 三明治 ~30%
    • 清算 ~15%
    • JIT / 其他 ~15%
    • 90% 以上利润集中在 top 5-10 家 searcher 手中(Wintermute、jaredfromsubway.eth 类)。
  3. 我们 Phase 1 看 CEX-CEX 套利死了,是因为 MEV 把机会吃光了吗? ⇒ 是。CEX-DEX 套利同样如此——但它需要 CEX 账户 + 跨域同步 + KYC,是另一类 MEV, 基础设施门槛 ≠ 链上裸 backrun。这条线 retail 不可能赢
  4. "三明治攻击"具体什么意思?它合法吗? ⇒ 你 swap 时 mempool 里 searcher 看到 → 它先一笔买(推高价)→ 你 swap(被滑得更狠)→ 它再一笔卖(赚价差)。结果比"无搜寻者世界"多花了几个 bps 钱。合法但伦理上有争议—— 算是合规框内的搜寻者吃用户滑点。
  5. 我们 4 份合约具体都是哪类 MEV?
    • Arbitrageur.sol:DEX 套利(跨 Uni V2 / Sushi V2,14 §6 跑过 demo-backrun)
    • MultiPoolArbitrageur.sol:DEX 套利的多路径版本 + 闭式最优 amountIn
    • LiquidationBot.sol:清算(HF 跨 1 → liquidationCall 抢入)
    • 三明治我们没做——伦理 + 基础设施门槛 + 主网毫秒级竞争(我们做不赢)
  6. 既然 MEV 这么稳,为什么不是人人都搜? ⇒ 门槛在 05 §5 L0–L4 阶梯:
    • 你能写 demo(L1)≠ 能稳定赚(L2-L3 自建节点 + co-location + 优化算法)≠ 能跑头部(L4 builder 关系)
    • 利润已被竞争压到接近零:所有竞争者愿付的 priority fee 趋于"机会价值 - 边际成本"。残差是 footprint(docs 2026-05-19 自我更正)。
  7. JIT (Just-in-Time) liquidity 是什么?看着很高级 ⇒ V3 玩法:大单 swap 进 mempool → searcher 极速在那个池集中流动性(V3 特性)到 swap 价位附近 → 大单 swap 经过你的 LP 区域,付你手续费 → 你 swap 完即刻撤掉 LP → 单笔 tx 内你做了 0 成本 1 块时间的 LP,赚那一刻全部手续费。这是 V3 设计带来的新 MEV 类型。
  8. MEV 的未来怎么走?OFA / SUAVE / 公平排序? ⇒ Order Flow Auction(OFA)—— 用户自己把"我这笔 tx 的 MEV 权"拍卖给 searcher,分成。 SUAVE(Flashbots 推)—— 一条 cross-chain MEV 拍卖链。 公平排序(Aequitas、CowSwap batch auction)—— 取消顺序权,所有同 tx 同价。 方向不一:MEV 一定还在,但分配机制在演化。

→ 这一篇答全部。


2. 它本质在做的"那一件事"

MEV 是有序执行 + 公开状态 + 价值携带 tx** 三件事的数学涌现。** 只要这三条同时成立,"在某笔 tx 前后插自己的 tx 获利"就永远存在—— 跟链的好坏、协议的对错无关,是结构性事实。可以做的只有:分配给谁、效率多高、对用户多公平。 这是为什么 "禁止 MEV" 不成立(你禁不了数学);这是为什么"让 MEV 更公平"是研究方向。

→ 04 §7 已强调 "MEV 是 PBS 的结构性结果,不是 bug";15 把这条原则展开为可观察的具体策略类目 + $$ 数字。


3. 类比:村庄"已知未来的市场"

01–14 的村庄已经有 EVM / AMM / Aave / Oracle / mempool。 15 给的不是新设施,而是 mempool 这扇窗子能看到"未来"带来的所有可能套利方式:

┌── mempool 是一扇能看到"未来 12 秒"的窗子 ─────────────────┐
│                                                              │
│  Alice 已经投币(签 tx 提交 mempool),但村庄 12 秒后才结算 │
│                                                              │
│  搜寻者 Bob 看到 Alice 要做的事,可以做这些:                 │
│  ┌─ 1. 跨桶套利(DEX 套利)─ "Alice 砸偏一边桶,我做反向" │
│  ├─ 2. 抢先清算 ─ "Alice 的健康因子刚跨线,我抢调 liquidate"│
│  ├─ 3. 三明治 ─ "Alice 大买 X,我前买后卖吃她滑点"         │
│  ├─ 4. backrun 残差 ─ "Alice 已经砸偏,我在她后面收尾"     │
│  ├─ 5. JIT 流动性 ─ "Alice 大 swap,我前一秒铸 LP 让她付费"│
│  └─ 6. CEX-DEX 套利 ─ "DEX 这价跟 Binance 差 5 bps,两边对冲"│
│                                                              │
│  村庄规则**没禁止任何一种**——它们都合法                     │
│  村民对这扇窗的态度:                                         │
│    - 不知道有这扇窗的村民(普通用户)= 被吃滑点              │
│    - 知道但没基础设施的村民(我们)= 跑教学示例              │
│    - 知道且有 co-location/算法/资金的(top 5 家)= 吃肉      │
└─────────────────────────────────────────────────────────────┘

→ MEV 的"不公平"不在窗户存在,而在谁有快速反应的能力。这是经济不平等而非协议不公。


4. 核心关键点(5 条)

  1. MEV 五大类策略:

    类目 触发条件 抓在哪一步 对用户/系统的影响 我们项目
    DEX 套利 两池价差 > 总成本 victim swap 后 backrun 非毒(修正价格、给 LP 收费) Arbitrageur.sol
    清算 HF < 1 HF 跨线那一块抢入 非毒(清坏债保协议偿付) LiquidationBot.sol
    三明治 用户大 swap + 高 slippage 容忍 前买 + 后卖 有毒(吃用户滑点) 我们不做
    backrun(一般) 价格暂时偏离 victim 之后 非毒 predictBackrun.ts
    JIT 流动性 (V3) 大 swap 即将经过价位 swap 前铸 LP + swap 后销 LP 中性(吃 LP 手续费但不害用户) 我们不做
    CEX-DEX 套利 CEX/DEX 价差 链上 + CEX 同时 非毒 Phase 1 探索过死
    NFT mint / 治理 / 空投抢 各自特定事件 那笔事件前后 多样 不在范围
  2. MEV 总量数据(2020–2025 累计,以太坊 mainnet):

    • 累计提取 $1.5B+(保守估算;Flashbots 数据 + dune analytics 综合)
    • 套利 ~$600M | 三明治 ~$450M | 清算 ~$225M | 其他 ~$225M
    • top 1 searcher(jaredfromsubway.eth)单年 ~$70M+
    • top 5 合计占总量 ~60%
    • 长尾 searcher(包括我们这种学习者)几乎是 0
  3. 三明治攻击的精确机制:

    ─── T0: Alice mempool 提交 swap_buy 100 ETH worth of USDC for TOKEN, slippage 1% ───
    ─── T1: Bob (searcher) 看到 → 算: ───
      - 现在 pool 价 P0
      - Alice 砸 100 ETH 后价格 P1 = P0 * (1+impact)
      - Bob 在 Alice 之前买入 X ETH (推高到 P0', 接近 P1)
      - Alice swap 在 P0' 价位发生 (得到更少 TOKEN, 但仍在她 1% slippage 内)
      - Bob 之后卖出 X+y, 在 P0' 接近 P1 价位 → 净赚价差
    ─── T2: Bob 构造 bundle: [bob_buy, alice_swap, bob_sell] ───
    ─── T3: bundle 通过 Flashbots relay 提交,原子打包,所有人收 priority fee ───
    
    • Alice 的损失 = "无三明治世界本应得到" - "三明治世界实际得到" ≈ Bob 利润 + 双方 gas(Bob 把利润大部分付出去给 builder/proposer 当 tip)
    • 典型一次三明治:Alice 1 万美元 swap,被吃 5-50 美元
    • 每年累计:约 $450M 从普通用户钱包流向 searcher → builder → proposer
  4. "残差 ≈ 0" 的精确机制(链回 docs 自我更正):

    • 任何持续性套利机会会自我消除:
      • 时刻 t:Uni V2 和 Sushi 价差 $10
      • 时刻 t+0.01s:某 searcher 提交 backrun → 价差缩到 $1
      • 时刻 t+0.1s:另一 searcher 也来 → 价差缩到 $0.05
    • 竞争压价过程:愿付的 priority fee → "机会价值 − 边际成本"
      • 大池子机会 $1000 → 优胜者愿付 $950 priority fee → 净利 $50
    • 这就是为什么 Phase 4 我们 fork 观察跨 V2 套利残差近零—— 不是机会不存在,是已被基础设施齐全的人吃掉、留给我们的是残渣
    • docs 2026-05-19 自我更正核心:零残差是 footprint,不是 absence
  5. "如何上桌"门槛叠加:

    • 看到机会(mempool 监听) = 入门
    • 算出最优策略(实时算多个 pool 闭式最优) = 中级
    • 抢到执行权(co-located 节点 + 毫秒级延迟 + 高 tip) = 高级
    • 维持 relay 关系(builder 优先收你的 bundle) = 头部
    • 算法迭代(每周看链上数据反向工程对手策略) = 持续头部
    • 每一层都 10× 难度——这是 05 §5 L0–L4 阶梯的精确填充

5. 必须先认识的前置名词(小词典)

名词 一句话 类比
MEV Maximum Extractable Value 12 秒未来窗的可提取价值
searcher 找 MEV 机会的实体 战场扫荡兵(13 §5 / 14 §5)
opportunity 一个具体的 MEV 机会 一片落地的肥肉
frontrun 抢在 victim tx 前面执行 插队抢先
backrun 在 victim tx 后面立刻收尾 紧跟收尾
sandwich frontrun + backrun 夹击 victim 两边夹击
JIT (Just-In-Time) 大 swap 前后瞬间铸/销 LP 临时插队卖手续费
CEX-DEX arb CEX 价 vs DEX 价的跨域套利 两市两价
slippage tolerance 用户愿接受的最大成交价偏离 容忍多坏的成交
priority fee bidding 搜寻者间用 tip 出价竞争 暗拍出价
bundle 14 §5 复习;多 tx 原子组 套餐
toxic / non-toxic MEV 有害 / 无害(基本定义) 吸血 vs 修正
OFA / SUAVE / batch auction 让 MEV 分配更公平的设计方向 公平拍卖机制
public good MEV 全网共享、非排他的 MEV 收益(少见) 共有山林
jaredfromsubway.eth mainnet top 1 searcher 之一 著名"狗厨"

6. 一个完整过程走一遍:三种策略的字节级对照

把我们项目里已实现 + 未实现 的策略各走一遍,看每个具体的 tx 结构差异:

策略 A:DEX 套利(我们的 Arbitrageur,已实现)

─── 触发:观察到 Uni V2 和 Sushi USDC/WETH 价差 ≥ 总成本阈值 ─
bundle = [
  arbTx (我们的 Arbitrageur.arb([UNI, SUSHI], USDC, optimalAmount))
]
arbTx 内(13 §6 走过):
  ① flashLoan(USDC, optimalAmount)
  ② swap USDC → WETH on Uni V2
  ③ swap WETH → USDC on Sushi
  ④ require(amountOut >= owed)
  ⑤ approve + return → POOL 收回本金 + 5bps
利润 = amountOut − owed − gas

→ 非毒:把两池价差缩回平衡。我们 wei-exact 验证。

策略 B:清算(我们的 LiquidationBot,已实现)

─── 触发:victim HF 跨过 1.0(oracle 更新 / 抵押跌)─
bundle = [
  liquidateTx (LiquidationBot.executeLiquidation(victim))
]
liquidateTx 内(11 §6 走过):
  ① flashLoan(USDC, debtToCover)
  ② approve POOL
  ③ POOL.liquidationCall(WETH, USDC, victim, debtToCover, false)
  ④ swap seized WETH → USDC on Uni V2
  ⑤ approve + return → POOL 收回本金 + 5bps
利润 = swapOut − debtToCover − premium − gas

→ 非毒:清掉坏债,保护 Aave 偿付能力,给系统正外部性。

策略 C:三明治(我们没实现,理由 + 机制)

─── 触发:victim 大 swap 在 mempool ─
bundle = [
  attacker_buy_tx,    // 我提前买,把价推高
  victim_swap_tx,     // victim 在更高价位 swap
  attacker_sell_tx,   // 我马上卖出
]
所有三条 tx 必须**同块同序**——这是 Flashbots bundle 的强保证(16 待写)

attacker_buy_tx:
  amountIn = chosen so that final price after victim 不超 victim slippage 上限
  此 buy 推高价格但不让 victim revert

victim_swap_tx:
  victim 仍在 slippage tolerance 内成交,但单价比"无三明治"差

attacker_sell_tx:
  反向卖,在三明治内整体 net profit

经济:
  attacker 利润 = price_after_victim − price_before_attacker
                ≈ victim 的"额外滑点"成本

→ 有毒:把 victim 的额外滑点变成自己的利润。我们项目刻意不做—— 既是教学诚信、又是基础设施门槛(参与三明治需要 ~$10k+/月 co-location + 算法迭代)。

策略 D:JIT 流动性(V3 only,未实现)

─── 触发:V3 池大 swap 在 mempool,路径会穿过特定 tick 区间 ─
bundle = [
  mint_lp_tx,         // 在 swap 即将穿过的区间集中流动性
  victim_swap_tx,     // victim 大 swap 经过我的区间,付手续费给我
  burn_lp_tx,         // 我撤掉 LP,结清头寸
]
利润 = victim 那一笔的手续费 × 我吸收的 swap 量比例 − gas

→ 中性:吃的是 LP 手续费,不直接害 victim。会被现有被动 LP 投诉"被插队"。

各策略 gas 与利润量级(mainnet 典型)

策略 单笔 gas 利润下限 利润上限
DEX 套利 400k-600k 几 $ 几百 $
清算 800k-1.2M 几十 $ 几千 $
三明治 300k-500k 5-50 $ 几百 $
JIT LP 500k-800k 几 $ 几百 $
CEX-DEX 400k 链上 + CEX 几 $ 几千 $

→ 单笔利润不大,靠数量 × 频率累加。jaredfromsubway 一天可能跑 1000+ 三明治。


7. 常见误区(逐条拍死)

误区 实情
"MEV 是 bug,能消除" 不是。是结构性事实(Phil Daian 2019)。能改变的是分配,不是存在
"MEV 都是坏的" 套利、清算非毒,对系统正外部。三明治、frontrun 有毒。"毒/非毒"的分类是行内共识
"禁止 MEV" 禁不了。同样的 tx ordering 自由让闪电贷、Uniswap、Aave 都能跑——你禁 MEV 也禁了这些
"MEV 是矿工拿走的" PoS 后变 proposer + builder + searcher 三方分。proposer 拿 priority fee + 部分 builder 出价
"PBS 让 MEV 公平了" 让流程透明了,没让分配公平。头部 searcher 仍占 60% 以上
"三明治合法" 是。但伦理被广泛批评;很多用户用 Flashbots Protect 主动避开
"用 Flashbots Protect 就 100% 防三明治" 99%。极少数情况 builder 私下分享 hint 可能仍泄露(这是 OFA 设计要解决的)
"我能写 backrun 就能盈利" 不能。看到机会 ≠ 抢到执行权。延迟 + 算法 + 资金都要积累
"残差 ≈ 0 说明没机会" 错。零残差是被吃光的 footprint。有机会但你抢不到——这是 docs 自我更正核心
"MEV 会在 L2/rollup 消失" 不会。出现新形态(sequencer MEV)。L2 上 sequencer 默认有 100% MEV 权
"CEX-DEX 套利就是 Phase 1 我们看的那种" 是同一类,但需要跨域基础设施(CEX 账户 + 跨域同步)远超链上裸 backrun
"MEV 总量逐年下降" 不一定。$$ 总量跟链上活跃度强相关;2024-2025 有反弹
"JIT LP 是 V2 也能做" 不。V2 没集中流动性,铸 LP 必须按当前价比例双边——做不到 JIT 的"针对单 swap 价位"

8. 与本项目实践的对应

我们 4 份合约的 MEV 类目精确归位

  • Arbitrageur.sol = DEX 套利(cross-pool)。残差竞争烈,需要 0 延迟 + 最优 amountIn
  • MultiPoolArbitrageur.sol = DEX 套利多路径 + 闭式最优。via_ir = true(07 §1.5)来自这里的局部变量爆栈
  • LiquidationBot.sol = 清算。HF 跨 1 → 第一个抢到的吃
  • predictBackrun.ts = backrun(一般)基础设施。看 mempool + 算 victim 影响 + 决定是否要发

我们刻意没做"sandwich"的三层理由

  1. 伦理:三明治吃用户滑点。教学项目用诚信展示什么是 MEV,不站到吃用户那一边
  2. 基础设施门槛:需要 ~$10k+/月 co-location 节点 + 算法迭代 + builder 关系
  3. 同质化竞争:头部 sandwich searcher(如 jaredfromsubway)已经把利润压到接近边际成本

Phase 1 CEX-CEX 套利死的精确归位

  • 类目:CEX-CEX 套利(非链上 MEV,但同一性质:跨域价差捕获)
  • 死因:本来该捕获的人已经在做(Wintermute / Jump 等 quant firm 跨 5 大 CEX co-location), retail 看到的"机会"是他们当前没碰到的角落——意味着也不会再有人来碰
  • 我们看到 3352 次 0 正残差= footprint of 已被工业级 quant 收割的结构性后果(docs 2026-05-19 自我更正 此条)
  • 链上 backrun 是同样的逻辑只是换战场——我们没做就是这个清醒认知

"残差 = footprint" 的精确机制(最终把更正落到数学)

  • Phase 1 / Phase 4 反复观察"机会等于 0" → 反向证明:有人在持续地把机会吃到 0
  • 套利者的竞争压利润下界 = "机会价值 − 最低边际成本(gas + tip + 5bps)"
  • 你看到"残差 0"意味着:愿意付 99.x% priority fee 的人已经吃完——你想拿那 0.y% 就要更好的基础设施
  • 这是一种严格意义上的市场效率——并不意味着没机会,意味着对你而言进入不了

14 / 16 / 17 的承接

  • 14 mempool:看机会的窗口;15 给窗口里能看到的"目录"
  • 16 Flashbots / bundle:把策略变成真 tx 上线的工具链
  • 17 跨链:MEV 跨域 = 失去原子性 + 新风险 + 新机会(这是 docs 跨链补遗的源头)

9. 自检问题(答得出才算过)

  1. MEV 这名字的"M"原本指什么?为什么改了?这背后的角色变化是什么?
  2. 列出 5 大类 MEV 策略 + 我们项目对应了哪几类、刻意没做哪一类 + 三层理由是什么?
  3. 三明治攻击在 EVM 层的精确 bundle 结构是什么?利润数学上等于什么?为什么是"有毒"MEV?
  4. "残差 ≈ 0" 现象在 MEV 经济学上的精确含义是什么?这跟"没机会"为什么不是一回事?
  5. JIT 流动性为什么只能在 V3 做?V2 不行的原因是什么?
  6. 当前 mainnet $1.5B+ MEV 累计中各类占比大致是?top 5 searcher 占多少?
  7. "MEV 能被消除"和"MEV 能被重新分配"哪个对?为什么?OFA / batch auction 试图解决什么?
  8. 我们 Phase 1 CEX 套利死的故事,用本篇 §4.4 残差机制重新解释一遍。

── Q&A / 更正记录区(按日期追加)──

规范见 README.md §0。质疑/反馈/纠错按日期累积,不抹错误轨迹。

  • (2026-05-21 建立。暂无 Q&A。)