0313 分钟
BACKRUN · ARBITRAGE · PRICE GAP

用户制造的价格差,谁来回跑?

观察用户的大额交换如何留下价格差,再让搜索者在用户之后执行回跑,把差价和排序小费放到同一张账上。

本章目标学完后,你应该能:
  • 解释回跑为什么依赖前一笔交易先改变状态
  • 比较池内价格、外部参考和搜索者库存
  • 追踪套利收益不是凭空创造的价值
章节位置第 3 / 4 章
  1. 上一章夹子交易赚走的是什么?
  2. 本章用户制造的价格差,谁来回跑?

    观察用户的大额交换如何留下价格差,再让搜索者在用户之后执行回跑,把差价和排序小费放到同一张账上。

  3. 下一章私有订单流改变了哪些风险?
阅读前

先想一想这几个问题

展开答案前,可以先在心里做个判断。与预期不同的内容可以加入复习列表。

Q01回跑套利把价格修好了,为什么还会被说成价值提取?
简要回答

它既可能改善后续价格,也把用户交易制造的短暂价差收入分给搜索者和提议者。‘系统有用’与‘收益分配公平’是两个问题。

和原先判断相比:

用户的一笔大交换可能把池内价格推离外部参考。回跑者不需要抢在用户前面,它只要确保自己在用户之后执行,就能对着已经改变的储备取另一边。

价格差从哪里来

用户用积分买 TOKEN 后,池子里的 TOKEN 变少、积分变多,池内价格上升。这个状态可能暂时偏离其他市场的价格。搜索者看到用户交易后,在同一个区块里卖出 TOKEN,赚取一部分由新状态产生的价差。

ORDERING SIMULATION虚拟池 · 不连接真实网络
SECURITY 001 · MEMPOOL / ORDERING / MEV

谁决定交易的顺序?

把一笔交换放进确定性池子,再观察可见性、排序、滑点保护和价值提取如何改变结果。

当前场景回跑套利阶段:待提交
池内现货价120.00积分 / TOKEN
用户预估输出90TOKEN
用户实际输出0TOKEN
搜索者盈亏0积分,已计排序小费
搜索者可见0 条交易池记录
FOCUS EXPERIMENT · BACKRUN成交后的价格差由谁捕获?

比较用户交易前后的池子状态,再检查回跑者的库存账。

初始预估 90 TOKEN最小得到 84 TOKEN夹子提取 0 TOKEN
从意图到共享状态回跑套利
  1. 01
    交易池意图是否可见
  2. 02
    区块排序谁先执行
  3. 03
    共享状态节点共同重放
交易池
还没有提交交易
区块最终排序
观察交易池后构建区块

交易池记录不是成交,区块排序也不是赔付。只有执行才会真正移动余额和池子储备。

BALANCE LEDGER · NO VALUE FROM NOWHERE谁获利、谁支付,哪些资产真的移动了?

搜索者利润、提议者小费、池子手续费和用户输出都放在同一张账上。

池子120,000 积分 · 1,000 TOKEN
用户30,000 积分 · 200 TOKEN
搜索者20,000 积分 · 200 TOKEN
提议者0 积分 · 0 TOKEN
观察提示

先提交一笔用户交换。关键问题不是交易是否合法,而是谁能在它成为共享状态前看见并排序它。

排序事件1 EVENTS
  1. 01

    公开池创建:120,000 积分 + 1,000 TOKEN,任何公开交易都可能改变下一笔报价。

操作记录实验时间轴
1 个状态快照

拖动滑块可以回到此前的步骤。从那里继续操作时,后续记录会替换为新的操作序列。

初始状态
查看实验记录 →

实验室把搜索者的初始 TOKEN、积分、池内储备、搜索者盈亏和提议者排序小费放在一起显示。观察回跑并不创造新的 TOKEN:它只是让库存和价格再移动一次。

展开:这一步如何实现
poolPrice_before = pool.quote()
execute(victim)
poolPrice_after = pool.quote()
if poolPrice_after != externalReference:
    execute(searcher_backrun)
    pay(ordering_tip)

回跑策略还可能跨多个池子、借用闪电贷或与清算结合。教学模型先保留一条池子和一条确定性排序,重点是把依赖关系和资产流说清楚。

理解检查

为什么回跑套利必须依赖用户先执行?

把提议者放进账本

排序权本身也有价格。实验室中搜索者支付一个明确的小费给区块提议者;真实系统可能通过 bundle、gas、builder 竞价和其他支付路径实现。无论形式如何,都要问:谁承担成本,谁获得收入,谁拥有拒绝或重排的权力。

本章小结完成练习和理解检查后,可以保存本章