W3
11技术原理进阶8 个步骤预计 30-40 分钟v1 · 更新于 2026-09-19

MEV 与交易排序:从三明治攻击到 PBS

解释一个普通人本该关心、却常被忽略的事实:<strong>区块空间是稀缺资源,而谁决定交易的先后顺序,就能从中提取价值。</strong> 先用具体数字走完一次三明治攻击的全过程,再梳理 MEV 的几大来源(DEX 套利、清算、抢跑、NFT 抢购),然后把区块生产的产业链摊开——搜索者、构建者、中继、提议者各自拿什么、为什么会有 PBS(提议者与构建者分离)。最后回到用户侧:私有内存池如何避免被夹、滑点设置与三明治的关系、以及为什么「把滑点调到 50% 让交易一定成功」是一个会让你损失更多的选择。

⚠️
本章要点提示

MEV 造成的损失通常是「看不见的手续费」:你的交易成功上链了,只是成交价比应得的更差。要避免这类损失,请改掉两个习惯:一、不要为了「让交易一定成功」把滑点调到很高(例如 20% 以上)——高滑点等于公开告诉所有人「我接受很差的成交价」,三明治攻击者会优先盯上你;二、不要把大额交易直接发到公共内存池,改用提供私有通道的 RPC 或聚合器。

另外请注意:私有的失败代价更高——如果交易被夹后再失败,你付出了 Gas 却什么也没得到,所以「先小额试一次、确认路径与参数正确」这个动作,在大额交易前是必须的。

01

MEV 是什么:从「谁决定交易顺序」说起

登录记录进度

MEV(Maximal Extractable Value,最大可提取价值)指的是:区块生产者(或能影响交易排序的人)通过选择包含哪些交易、排除哪些交易、以及按什么顺序排列所能获得的额外利润。

为什么排序有价?因为交易不是原子的——同一时刻有成千上万笔交易在竞争,顺序不同,结果就不同。最直观的例子是 DEX 套利:如果 Uniswap 上 ETH 价格比 SushiSwap 低 1%,谁先在便宜的池子买入、再在贵的池子卖出,谁就赚到这 1%;而这两笔交易的顺序必须正确(先买后卖),且要被及时打包,否则机会消失。

这类「必须排在特定位置才有意义」的交易,催生了一个专门抢这些机会的产业。理解 MEV 的关键是接受一件事:在公链上,「晚一步」不只是慢,而是「结果不同」。这也解释了为什么单纯提高 Gas 价格(优先费)会成为竞价手段。

💡
小技巧:

MEV 不全是坏事:套利让不同交易所的价格重新对齐,清算让借贷协议不坏账。问题在于它也可能以直接损害普通用户的方式发生(如三明治攻击)。

02

走一遍三明治攻击的完整过程

登录记录进度

用一个具体场景把攻击掰开。假设某流动性较薄的池子里 ETH 价格 1000 USDT,你要用 500 USDT 买入 ETH,为了「保证成功」你把滑点设成 10%(即接受最差 1100 USDT 的成交价)。

攻击者看到你挂在公共内存池里的这笔待打包交易,于是:第一步(前置,frontrun):用更高的 Gas 费抢先买入 ETH,把池子价格从 1000 推高到约 1040;第二步(你成交):你的交易在 1040 附近成交,本来 500 USDT 能买到的 ETH,现在少买了约 4%;第三步(后置,backrun):攻击者立刻把刚买入的 ETH 卖回池子,收回约 520 USDT。

攻击者净赚的钱,正是你多付的价差,而你得到的是「交易成功、数量变少」——区块浏览器上不会显示「你被攻击了」。攻击者还要与区块构建者分成(这叫 payment for order flow 或直接贿赂),所以真正吃掉的不止他一个。

看出关键了吗:滑点设得越宽,攻击者能吃的空间越大;你的交易越值得夹,你越容易被夹。

🚫
避坑提醒:

把滑点当成「成功率开关」是非常危险的。 滑点 10% 意味着你主动授权「成交价比预期差 10% 我也认」。在大额或低流动性池子上,这几乎等于邀请三明治攻击。正确做法是:先小额试探真实成交价,再按真实价格设一个的滑点(例如 0.5%–1%),并接受「可能要重试」。

03

MEV 的其他来源:套利、清算与抢跑

登录记录进度

三明治只是最常被讨论的一种,MEV 的来源至少还有四类。一、DEX 套利(arbitrage):不同池子出现价差时,抢先对齐价格——这类通常被认为有益(价格发现),也是 MEV 里占比最大的部分之一。

二、清算(liquidation):借贷协议中抵押率跌破阈值的仓位可被清算,清算人获得折扣或奖励,所以大家争抢「第一个触发清算」,速度竞争极其激烈。三、抢跑(frontrunning):看到一笔会明显影响价格的交易(如大额买入、抢购)后,抢在它前面执行同样的操作,常见于 NFT 抢购与代币上线。

四、尾随(backrunning):跟在某笔交易之后立即执行,赚取它造成的价格偏移,通常被认为是相对良性的。这里的共同点是:机会值多少,取决于你能不能在正确的位置上链,所以这些都变成对区块空间的竞价。

理解这些来源,你就能读懂为什么有新项目宣传「MEV 返还给用户」——那是把本来被第三方拿走的一部分,试图还给交易发起者。

04

区块生产产业链:搜索者、构建者、中继、提议者

登录记录进度

在现在的以太坊上,「谁打包你的交易」已经是一条分工明确的生产线。搜索者(Searcher):在内存池与链上数据里找机会,构造有利可图的交易组合(多个交易打包成一套,必须同时成立),然后把「出价」提交给构建者。

构建者(Builder):收集大量搜索者的出价与普通用户的交易,组装出总收益最高的区块,并把区块头与出价交给中继。中继(Relay):在构建者与验证者之间做可信传递,负责「验证者不知道区块内容却要先签名」这一环的信任问题。

提议者(Proposer):也就是当轮的验证者,在中继送来的若干候选区块里选出价最高的那个签名发布。这条链的经济逻辑很直白:谁的区块能带来更多价值,谁就更可能被选中

而普通用户在这条链条的最末端——你的交易只是被当成「可提取价值的原料」之一参与排序。

💡
小技巧:

搜索者构造的是「打包成一套的多个交易」,所以你在浏览器上常会看到同一区块里有几笔顺序紧密相关的交易——那不一定是攻击,也可能是一次套利组合。

05

PBS:为什么要把造块和提议拆开

登录记录进度

PBS(Proposer-Builder Separation,提议者与构建者分离)是理解当前 MEV 格局的核心概念。在早期,验证者自己既选交易又造区块,问题有两个:一、专业化作弊——会跑复杂搜索策略的验证者能赚到远超其他验证者的收益,质押变得「技术越好收益越高」,加剧中心化;二、风险暴露——验证者要自己维护复杂的搜索与排序逻辑,一旦出错可能被罚没。

PBS 的做法是把两件事分开:构建者专门负责「把区块造得最赚钱」提议者只负责「在候选区块里选出价最高的」。好处是验证者不必懂 MEV 也能获得可观收益,质押门槛更均匀;代价是引入了新的中心化风险——构建者与中继是少数几个实体,如果构建者市场集中在两三家手里,他们事实上掌握了全网的交易排序权。

所以学界与工程界一直在讨论更彻底的方案(如将构建者角色协议化),目的都是削弱「少数人决定全网顺序」这件事

06

私有内存池:让交易不在公开场合排队

登录记录进度

对付三明治攻击最直接的办法是不让攻击者看到你的待处理交易。公共内存池(public mempool)是所有节点都能看到的待打包交易池,也是搜索者捡机会的地方;私有内存池 / 私有通道(private RPC)的思路是:你把交易发给一个可信的中继,它不广播到公共内存池,而是直接交给构建者打包。

攻击者看不到你的交易,就无法精确地在你前后插单——他们最多只能盲目猜测,成本与风险都高得多。主流做法包括 Flashbots Protect 一类私有 RPC、以及一些钱包/聚合器内置的私有路由。使用时需要注意三件事:一、私有通道通常失败率更高(因为它不参与公共竞价,遇到区块满载可能排不上),所以不要把「一定成功」寄托在它上面;二、不同私有通道的信任假设不同(有的会记录你的交易用于分析),选之前看清它收集什么数据;三、私有通道防的是「被夹」,不防「成交价差」——报价本身差,你依然会亏。

💡
小技巧:

实用组合:私有通道 + 紧滑点 + 先小额试探。三者叠加才能同时防住「被夹」与「滑点过宽」。

07

滑点设置:一个直接决定你损失多少钱的参数

登录记录进度

把滑点单独拿出来说,因为它是唯一完全由你自己控制、且直接影响损失大小的参数。滑点的本质是一次授权:「只要成交价在我预期的 X% 以内,就允许成交,不用再问我」

设得太紧,交易容易因价格波动而失败(你只损失 Gas);设得太宽,就等于给攻击者留出提取空间,并且让「失败」变成「以很差的价格成功」。实务上有三条经验:一、按池子深度设——主流币兑主流币、深度好的池子可以设 0.1%–0.5%;小市值币、新池子波动大,但也不要超过 1%–2%,宁可分开多次。

二、看真实成交价再定——先用极小金额走一次,看到实际成交价与报价的偏差,再决定正式交易滑点。三、大额拆单——单笔金额越小,越不值得被夹;把一笔大额拆成几笔小额、间隔一段时间,能显著降低被针对性攻击的概率。

最后请记住一个反直觉的事实:「交易成功」不是目标,「以合理价格成交」才是目标。

🚫
避坑提醒:

不要用滑点来「解决交易失败」。 如果一笔交易总是因为滑点失败,正确做法是查清原因(池子深度不足?报价过期?代币有转账税?),而不是把滑点调到 50%。后者在貔貅盘与假币场景下会让你的资金以最差价格被全部吃掉。

08

用户自保清单与 MEV 的再分配尝试

登录记录进度

先说行业侧的进展:既然 MEV 客观存在,一部分项目尝试把它还给用户——例如批量拍卖(把同一时间段内方向相反的交易配对,减少对价格池的冲击)、意图式成交(由求解器竞争给你报价,见另一篇关于 Intent 的章节)、以及 MEV 返还型 RPC。

这些机制在特定条件下确实能改善成交价,但要注意它们的收益来源仍然是 MEV,只是分配方式变了,且依赖其内部竞争是否真实存在。用户侧的自保清单可以收成五条:一、优先用主打 MEV 保护的私有 RPC 或聚合器;二、滑点按池子深度设紧,绝不为了成功率放宽;三、大额拆单、间隔执行;四、避开流动性极薄的池子做市价单,优先限价或聚合器比价;五、把「交易失败」当成正常结果,失败只损失 Gas,被夹则直接损失资金。

做到这五条,你无法完全摆脱 MEV,但能把它对你钱包的影响降到很低。

💡
小技巧:

把 MEV 理解成「区块空间的市场化定价」:你无法关闭这个市场,但可以选择不在最显眼的位置、以最宽的条件参与它。

来源与时效

本章记录平台 通用 · 客户端 Web / App · 版本 v1 · 最后更新 2026-09-19 Web3 产品的界面与规则更新频繁,动手前请以官方当前界面与公告为准。

这一章可以动手试

区块链域有 2 个练习, 在浏览器里真跑(不连钱包、不发交易),可以拿它们验证刚读到的结论。