上一篇《Web3 的 Anti MEV:深入剖析“夹”与反制之道》我们抓了个现行:攻击者扫 mempool、插抢跑交易、夹走 40 USDT,全程都在“矿工”的眼皮底下完成。但你可能隐约察觉到一个时代错误——那篇文章里的主角,叫矿工。
问题是,2022 年 9 月以太坊合并(The Merge)转入 PoS 之后,链上已经没有矿工了。出块不再靠算力硬拼,改成“押 32 ETH 押金,每 12 秒摇号抽一位验证者当值”。于是两个更尖锐的问题冒了出来:现在到底谁在排序交易?三明治们攫取的 MEV,又被谁分走了?
一句话剧透:排序权被拆成了一条四个工种的流水线——Searcher 蹲点捕猎、Builder 打包报价、Relay 中转担保、Validator 签字收钱,每 12 秒办一场拍卖决定这个 slot 归谁。以前夹你的是一个矿工,现在夹你的是一条流水线。顺带说一句,你常听说的 blob——让 L2 转账只要几分钱的那位——和这套流水线共享同一个”稀缺资源交给市场拍卖”的思想,但那是另一篇的主角(见文末相关阅读),本文只讲流水线。
老规矩,代码驱动:本文用一段可直接运行的 Python 模拟,把一场 MEV-Boost 拍卖的分账跑给你看。
合并之前:夹你的人叫矿工
先别急,要讲清楚“变了什么”,得先记住“原来长什么样”。
合并之前,以太坊和比特币一样是 PoW(工作量证明)。玩法很简单粗暴:一群矿工用算力赛跑,抢记账权。系统出一道超难的数学题,谁先算出答案(找到那个合法的 nonce),谁就赢下这个块的记账权,拿走块奖励和手续费。
你琢磨一下这个过程:全世界几万台矿机盯着同一道题疯狂内卷,最后只有一个赢家。像一场比谁手速快的抢答赛,奖品是记账权——只不过参赛者拼的不是脑瓜子,是电费和矿机。
画个重点:矿工赢下记账权之后,不但决定哪些交易能装进块里,还决定这些交易的先后顺序。打包和排序,两样权力捏在同一个人手里。所以他想夹你就顺手夹你,想抢跑就自己抢跑——上一篇那批三明治主角,就是从矿工群体里长出来的。MEV 当年的全称叫 Miner Extractable Value,“矿工”可提取价值,名副其实。
PoW 的问题也摆在明面上:费电、慢,安全性全靠算力军备竞赛——你想搞垮网络?行,先买下全网一大半的矿机。
合并之后:改成“押金 + 摇号”
2022 年 9 月,The Merge,以太坊切换到 PoS(权益证明)。出块逻辑从“赛跑”变成了“押金 + 摇号”,我们一步一步拆:
- 第一步:交押金拿资格。 想参与出块,先质押 32 ETH。这钱是干什么的?保证金。像出摊先交押金办执照,规矩明码标价:你敢作恶(比如给两个分叉同时签名),押金直接罚没(slashing)——不是罚款,是当场销毁。
- 第二步:每 12 秒摇一次号。 12 秒一个 slot,这是以太坊的出块心跳,32 个 slot 组成一个 epoch(约 6.4 分钟)。每个 slot 开场,协议通过 RANDAO(由验证者们预先提交的随机数种子共同搅出来的随机数)从活跃验证者集合里抽出一位当 proposer——出块人。
- 第三步:其他人投票。 没被抽中的验证者也不是白坐着,抽取出的验证者委员会对 proposer 的区块进行 attest(证明),票数够了区块才算最终确认。
你被摇中了,才有活干;没摇中,这 12 秒与你无关。
到底变了什么?逐条说
你可能要问了:不就换个出块方式吗,跟 MEV 有啥关系?
关系大了。画个重点,PoW 换成 PoS,一共换了四样东西:
① 出块的人换了。 从“常年握着大算力、7×24 小时蹲在池子边的职业矿工”,变成“每 12 秒临时轮值一次的普通验证者”——可能就是你家里一台跑着验证节点的小机器。听起来,夹子的门槛好像消失了?
② 但轮值者既没能力也没时间夹你。 你琢磨一下:一个 slot 只有 12 秒,摇号摇到你,可能几个月才轮上一次。扫描 mempool、监控 DEX 价差、排交易顺序、拼低延迟网络——这些脏活根本来不及干,一台家用机器也干不过专业机构。于是排序的活儿,外包出去了。
③ MEV 从“顺手赚的外快”变成一条产业链。 以前矿工一肩挑:找机会、打包、排序、上链全是自己干,MEV 是矿工的副业。现在拆成四个专业工种:Searcher 找机会、Builder 打包、Relay 中转担保、Validator 收最高出价。夹子从副业变成了流水线上的标准工位。
④ 安全性的来源换了。 以前靠“算力竞赛”——攻击网络的成本是买矿机,买了还能转卖;现在靠“押金 + 罚没”——攻击成本是质押金,作恶被抓是直接烧掉。想让链停摆?先想想愿不愿意往火里扔几十个亿。
一句话点题:以前夹你的是一个矿工,现在夹你的是一条流水线。流水线长什么样,下一节拆开看。

当值者的活儿,朴素得惊人
听起来 proposer 责任重大?实际上他的活儿朴素得吓人:从收到的候选区块里挑一个“最好”的,签个名,广播。签名,就完事了。
那组装区块呢——扫描交易、排排序、塞点 MEV 这些“脏活”呢?答案是:默认情况下,proposer 不自己干,全部外包出去了。为什么会演化成这样,还得从 MEV 的军备竞赛说起。
MEV 供应链:四个角色一台戏
随着 DeFi 发展,MEV 的提取越来越专业:拼的是低延迟网络、私人订单流、复杂的排序算法——一台家用验证机根本竞争不过专业机构。你琢磨一下,如果放任每个验证者为了 MEV 自建全套基础设施,结果必然是:共识层被 MEV 业务绑架,小验证者出局,staking 向巨头集中。
于是社区在协议外做了一个设计决策:PBS(Proposer-Builder Separation,提议者-构建者分离)——把“排序权”从共识层剥离出去,拆成四个角色分工协作。用开餐厅打比方:老板(验证者)不再自己研究菜单,把厨房整个外包出去,自己只管端盘子和收钱——“决定上什么菜”和“端盘子”,分开。
Searcher:蹲点的职业黄牛
Searcher(搜索者)就是上一篇里那批人的现代形态:扫描 mempool、监控 DEX 价差、盯着借贷协议的清算机会,一旦发现猎物,构造出一个 bundle(原子包)——若干笔交易捆在一起提交,要么全部执行,要么全部回滚。
bundle 的原子性是 Searcher 利润保障的关键。上一篇里攻击者最怕什么?怕“抢跑交易被别人插队”,夹到一半夹崩了。在 bundle 里这个问题不存在——包内任何一笔交易失败,整个包从链上状态的角度看等于没发生过。像黄牛组团倒票,票款全齐才交割,缺一张整单作废:Searcher 不会亏本金,最多损失点 gas。
Builder:包工头
Builder(构建者)干的是包工头的活:大量收集各家 Searcher 的 bundle,再混上普通用户的交易,组装成“利润最大的区块”,然后向 proposer 报价。
报价逻辑很直白:这个区块里能提取的 MEV,大头通过出价返还给 proposer——出价越高,中标的概率越大。Builder 自己只留个零头(现实里头部 Builder 之间是贴身肉搏,利润率薄得像纸)。
Relay:不站队的担保快递柜
Relay(中继)是 Builder 和 proposer 之间的中间人。先别急,这个角色解决的是一个信任死结:proposer 怎么敢在没见过区块内容的情况下签名?万一区块是无效的、害我被罚没押金呢?万一它偷了我的 MEV 呢?
Relay 的做法像快递柜带担保验货:先验证 Builder 的报价和区块的有效性(区块无效会害 proposer 被罚没质押金,所以它必须验),然后只把“出价金额 + 区块哈希”递给 proposer。proposer 对着报价签名——此时他签的是个“盲盒”,签名之后 Relay 才公开区块完整内容。这个“先报价、后验货”的流程保护了双方:proposer 不被骗签无效区块,Builder 的策略在签名前也不会泄露。
Validator/Proposer:只管收钱的当值房东
最后是共识层的验证者。轮到他出块的那 12 秒,他什么都不用干,看谁报价高就签谁的头——像收租的甲方一样在出价列表里挑数字最大的那个。MEV 的大头以出价的形式流向他,而他不承担任何 MEV 竞争的成本。
串起来看这条流水线
1 | Searcher(找 MEV,造 bundle) |

PBS 的本质是把共识层和 MEV 解耦:验证者只需要“老实签名”这一种朴素能力就能吃到大额 MEV,不需要去卷低延迟网络和排序算法。共识层的激励保持简单,就不会为了 MEV 而复杂化、中心化——这就是协议设计者想要的效果。
MEV-Boost:事实上的标配
先别急,你可能想在文档里找一个叫“PBS”的协议开关——找不到。PBS 目前不是以太坊协议内置的,而是通过一个链下 sidecar 软件实现的:MEV-Boost——由 Flashbots 主导开发的开源软件,验证者把它跑在共识客户端旁边,它负责连接各个 Relay、拿报价、提交签名。上一篇里提到的 Flashbots 私人交易通道(MEV-Relay),如今就演进成了这套体系的一部分。
规模有多大?据 mevboost.pics 统计,截至写作时,约 90% 的以太坊区块经由 MEV-Boost 中标出块。也就是说,绝大多数验证者早就接受了“我签字、别人排序”的分工——一个不跑 MEV-Boost 的验证者每个 slot 都在给共识做慈善(本 slot 的 MEV-Boost 溢价约为本地出块的 26 倍,下面模拟会算给你看)。
来,把一场拍卖完整跑一遍。我们要模拟的是:3 个 Builder 各自揣着搜刮来的 bundle 组块竞价,验证者手里还有个兜底选项——不装 MEV-Boost、自己本地出块——看看这 12 秒里的钱最终怎么分:
1 | """ |
代码说明:
先说直觉,整个模拟就是一场三层分成:Searcher 抓到猎物,让渡大头给 Builder 换“入选资格”;Builder 把区块卖出最高价,出价的大头给 proposer;proposer 只管签名。层层都是“我帮你赚钱,你分我大头”。对着代码看几个关键参数:
- Bundle:Searcher 的原子包,
mev_value是这个包能提取的总 MEV。 - Searcher:
keep_ratio是它从 bundle 价值里自己留下的比例(现实里大约 10%~15%,竞争使然),剩下的让渡给 Builder——这就是它购买“入选区块”资格的方式。 - Builder:
pass_ratio是收入中拿去出价返给 proposer 的比例(现实里头部 Builder 普遍在 90% 上下),剩下的revenue - bid是 Builder 留存。 - 拍卖逻辑:三个 Builder 各自组装、报价;proposer 还有一个兜底选项——不装 MEV-Boost、自己本地出块,但本地排序只能拿到 gas 小费。最后
max一选,签名广播。 - 分账细节:只有中标 Builder 区块里的 bundle 会被执行,所以只有它的 Searcher 真正落袋——这就是 Searcher 们拼命把 bundle 同时投给多个 Builder 的原因。
运行结果:
1 | === 本 slot(12 秒)的 MEV-Boost 出块拍卖 === |
三组数字值得咀嚼:
- proposer 躺赚 0.5224 ETH,是本地出块的 26 倍——这就是 90% 验证者都装 MEV-Boost 的经济学解释,没人跟钱过不去;
- Builder A 留存 0.0580 ETH,约为区块总 MEV 的 9%——贴身肉搏的包工头,日子并不滋润;
- 没中标的清算猎手一分钱没有,但也不亏本金——bundle 的原子性保证了他最多浪费点带宽。像黄牛蹲了一晚上没抢到票,顶多白熬个通宵。
一张 40 美元的账单:跟着一笔被夹的交易走一遍
供应链讲的是”谁干活、谁分钱”,但你可能还是没看到最关键的一幕:钱是怎么从受害者口袋里漏出来的?上一篇我们模拟过一次完整的”夹”,攻击者毛利 40.08 USDT——这个数字不是天上掉下来的,现在把它一笔一笔对上。
口径沿用上一篇:池子初始 1,000,000 USDT + 1,000 ETH,用户要买 10000 USDT 的 ETH,攻击者抢跑买 2000、等价格推高后卖出。四个时刻的池子状态:
| 时刻 | 池子(USDT / ETH) | ETH 价格 | 攻击者手里 |
|---|---|---|---|
| 抢跑前 | 1,000,000 / 1,000.00 | 1,000.00 | 0 |
| 抢跑 2000 成交后 | 1,002,000 / 998.00 | 1,004.00 | 1.996008 ETH(成本 2000) |
| 用户 10000 成交后 | 1,012,000 / 988.14 | 1,024.14 | 1.996008 ETH(市值 2044.20) |
| 反向卖出后 | 1,009,960 / 990.14 | 1,020.02 | 0(卖回得 2040.08 USDT) |
毛利 = 2040.08 − 2000 = 40.08 USDT。再看受害者:如果没有攻击者插队,用户这 10000 USDT 能买到 9.900990 ETH;被夹之后实际到手 9.861700 ETH——凭空少了 0.039291 ETH,按成交价折合约 40.2 USDT。攻击者的毛利和用户的损失严丝合缝对上了:羊毛真的只出在羊身上,一分不多、一分不少。
最后一层:这 40 USDT 顺着流水线怎么分。按本文模拟同款的比例(Searcher 留 12%,Builder 把剩余的 90% 出价给 Validator):
| 分账 | 金额 |
|---|---|
| 用户的成交滑点损失 | ≈ 40.2 USDT |
| Searcher 留存(毛利 × 12%) | ≈ 4.81 USDT |
| Builder 留存(剩余 × 10%) | ≈ 3.53 USDT |
| Validator 收到的出价 | ≈ 31.74 USDT |
四行对上了。所以下次你在 DEX 成交完,盯着到手的数量嘀咕”怎么比页面估价少了 4%”——那 4% 没有消失,它顺着流水线向上走,最后变成某个验证者这个 slot 的拍卖出价。这就是”夹”的全貌:钱从你的成交滑点里漏出去,沿着一层层抽成,汇进拍下出块的赢家口袋。
MEV 类型谱系
供应链讲完了,回头看 Searcher 们蹲点到底在猎什么。MEV 不是单一物种,按“对生态是否有害”大致可以排个谱系:
| 类型 | 玩法 | 对生态 | 一句话点评 |
|---|---|---|---|
| 套利 MEV | 发现同一个资产在两个池子价差,搬平它 | 中性偏健康 | 帮市场定价,赚的是“搬运费” |
| 清算 MEV | 监控借贷协议的仓位健康度,抢先执行清算赚罚金 | 健康 | 清算条款就是设计给他们赚的生意 |
| 三明治 | 抢跑+反向抢跑夹住用户交易 | 有害 | 上一节那张 40 美元账单的主角,代码级拆解见《Web3 的 Anti MEV:深入剖析“夹”与反制之道》 |
| backrun | 紧跟某笔大交易之后抢下一个位置 | 灰色地带 | 大交易造成的价格错位它只是“顺路”捡走 |
清算 MEV 展开说一句。在《探索 DeFi 借贷与收益率交易的无限潜力》里我们讲过,借贷协议要求超额抵押,一旦抵押品价值跌破清算线,任何人都可以替协议触发清算、赚走一笔清算罚金。这套机制保证协议永远有偿付能力——Searcher 们争抢清算机会,客观上是在帮协议“排毒”,属于生态设计的原生一环。而清算时机往往取决于喂价,喂价本身又是另一场博弈,详见《预言机:DeFi 里的价格到底是从哪来的?》。
总结
合并之后,以太坊的 MEV 故事从“矿工独吞”变成了“供应链分账”,收个尾:
- PoW → PoS 到底变了什么:出块从“算力赛跑”变成“押金 + 摇号”——押 32 ETH 拿资格,每 12 秒随机抽一位 proposer 当值,其他人投票;安全来源从算力竞赛变成“押金 + 作恶罚没”。出块人从职业矿工变成临时轮值的普通人,单个人既没能力也没时间自己夹人,排序的脏活自然外包了出去;
- 供应链四角色:Searcher 造 bundle 捕猎(职业黄牛)、Builder 组区块出价(包工头)、Relay 验货传话(不站队的担保快递柜)、Validator 盲签收钱(当值房东)。这套分工就是 PBS——把“决定上什么菜”和“端盘子”分开,防止共识层为了 MEV 复杂化和中心化;
- MEV-Boost:PBS 的事实实现,截至写作时约 90% 的区块经它中标,验证者每个 slot 的 MEV 收入是本地出块的几十倍,没人有理由拒绝;
- 类型谱系:套利中性偏健康、清算是协议原生生意、三明治有害、backrun 灰色——供应链只是管道,流过什么货才是伦理问题;
MEV 不会消失——只要排序权有价值,就有人竞争排序权。PBS 没有消灭 MEV,只是把它从矿工的暗箱里请出来,放进了公开拍卖的市场。至于区块车厢里的另一件新货物——blob,它怎么把 L2 的转账打到几分钱,见续篇《blob:你的 L2 转账为什么只要几分钱》。
相关阅读
- 《Web3 的 Anti MEV:深入剖析“夹”与反制之道》:本文的直接前置,三明治攻击的代码级拆解在那一篇
- 《blob:你的 L2 转账为什么只要几分钱》:区块车厢里的另一件新货物,与本文共享”稀缺资源交给市场拍卖”的思想
- 《探索 DeFi 借贷与收益率交易的无限潜力》:清算 MEV 是 searcher 的主要猎场之一
- 《预言机:DeFi 里的价格到底是从哪来的?》:喂价与排序的博弈
- 《从零开始构建区块链》:PoS 在那篇只有一句话,本文展开