Skip to content
survivorff's blog
Go back

Solana 没有 mempool,为什么还是被 MEV 收割了几亿美元

8 min read

一个说不通的事实

MEV(Maximal Extractable Value)的教科书解释是这样的:链上有一个公开的 mempool,你的交易在被打包前所有人都能看到,于是搜索者从里面挑有利可图的交易下手。

按这个逻辑,Solana 应该几乎没有 MEV。因为 Solana 没有公开 mempool——交易不进入一个全网可见的池子,而是直接转发给当前 slot 的 Leader 节点。理论上,只有 Leader 和少数近端节点能看到未确认的交易。

但现实是:2025 年 Solana 上被捕获的 MEV 总量在 $720M 量级,其中三明治攻击给用户造成的损失,16 个月里大约 $500M

没有 mempool,钱是怎么被夹走的?

这篇就想把这个悖论讲清楚。它是我理解 Solana 交易世界的一把钥匙——也是做交易系统时绕不过去的一课。

分工说明:这篇讲的是 MEV 本身的攻防逻辑。Jito 作为基础设施的三大组件、Tip 的定价机制、平台方具体怎么接,我写在《Jito 到底是什么,为什么每个 Solana 交易平台都离不开它》,两篇配合读比较完整。


悖论的答案:提取者就在门里面

先把以太坊和 Solana 的路径摆在一起:

以太坊Solana
交易先去哪公开 mempool直接发给当前 Leader
谁能看到未确认交易所有人Leader(及近端节点)
MEV 从哪来外部搜索者扫 mempoolLeader 侧

答案其实很直白:你不需要一个公开的池子,只要你是那个负责打包的人。

具体链路:

  1. 用户的交易广播到当前 slot 的 Leader
  2. Leader 节点本身(或它的合作方)运行 MEV 搜索软件
  3. 搜索软件分析流入的交易,找出可获利机会
  4. 在自己即将打包的这批交易里,插入攻击交易
  5. 打包出块

用户的交易从未对公众”公开”过,但对唯一需要看到它的那个角色——Leader——已经完全透明了。

这是我觉得最反直觉的一点:“没有 mempool” 降低的是外部攻击面,但没有解决”排序权集中在 Leader 手上”这个结构性问题。 MEV 的根源从来不是 mempool,而是谁有权决定顺序。mempool 只是让这个权力对外泄漏了一次而已。


三明治攻击:钱具体怎么没的

理解了”提取者在门里面”,三明治攻击就好懂了。

用户 Alice 提交:买入 Token X(愿意接受 5% 滑点)


攻击者在打包侧看到这笔交易


构建一个原子包,顺序写死:
  [1] 攻击者先买入 Token X   → 推高价格
  [2] Alice 的交易           → 以被推高后的价格成交
  [3] 攻击者立即卖出          → 落袋


付高优先费 / Tip,让这个包获得执行优先权

关键在于顺序是被设计出来的,不是运气。攻击者不需要预测市场,他只需要保证自己的买入排在 Alice 前面、卖出排在 Alice 后面。

两边的账:

注意最后一点:Alice 自己设的滑点上限,就是攻击者的利润上限。 这是整件事里最容易被忽略的地方——用户以为滑点是”保护”,实际它同时也是”授权”:你告诉了市场”我最多能忍受亏这么多”,而攻击者会精确地拿走这个额度。


三代防护:一场军备竞赛

Solana 生态对 MEV 的应对,大致走了三代。把它当成一条演进线来看,比单独记住某个功能有用得多。

第一代:靠用户自己设滑点

最原始的办法:让用户把滑点设小(比如 1%)。

失败得很彻底,原因有两个:

把风控责任推给用户,从来不是一个工程解。

第二代:从协议层禁止插队

代表是 Jito 在 2024 年推出的 DontFront:在提交时声明这个交易包的前面不允许插入其他交易,由打包侧保证。

这一代的思路变了——不再指望用户,而是在排序权那一层上锁。效果很直接:2025 年三明治攻击下降约 93%,用户损失减少约 $3 亿

但它有代价,也有边界:

第三代:不禁止,改成分账

代表是 BAM(Block Auction Marketplace)。思路又变了一次:既然排序权必然值钱,那就别假装它不存在,而是让这份价值回流给交易的发起人。

粗略机制:用户提交时可以声明愿意分享一部分 MEV,搜索者为这个机会竞价,赢家拿走 MEV 但必须返还一部分给用户(rebate),用户最终拿到比裸提交更好的价格。

三代放在一起看,那条主线很清楚:

从”让用户自己扛” → “从协议层禁止” → “把权力定价并分账”。

MEV 没有被消灭,它被制度化了。我觉得这比”消灭 MEV”更接近现实——只要有排序权,就有租金,问题永远是这份租金归谁。


不是所有 MEV 都该被消灭

这一点值得单独说,因为很容易被”MEV = 恶”带偏。

套利是有益的 MEV。 场景很常见:Token X 在 Raydium 报 $0.10,在 PumpSwap 报 $0.12。套利者用一个原子包同时在低价侧买、高价侧卖。

结果是:

受害者是谁?没有。 被”拿走”的是两个市场之间本就不该存在的价差。

这就是为什么 Solana 生态对原子套利相对宽容,而对三明治攻击持续加码防御——判断标准不是”有没有人赚钱”,而是”有没有人因此变差”。三明治里 Alice 明确变差了;套利里没有对应的受害者。

做交易系统的时候,这个区分很实用:你要防的是前者,而后者其实在帮你的用户改善成交。


落到实处

如果你是交易者

如果你在做平台

具体的 Tip 定价、Bundle 怎么构建、平台侧怎么接,都在《Jito 到底是什么》那篇里写了。


结论

回到开头那个悖论。

Solana 取消公开 mempool,确实关掉了一扇门——但 MEV 依然存在,因为它的根从来不长在 mempool 上,而长在”排序权”上。只要有人决定顺序,就有租金可收。

所以这个行业的演进方向不是”如何消灭 MEV”,而是:

作为开发者和用户,理解 MEV 的意义不在于躲开它,而在于看清这份租金怎么定价、最后归谁——然后让自己站在合理的一侧。


延伸阅读


更多 Solana 深度内容:订阅 RSS关注 X


Share this post on:

Previous Post
同一个事件,在两个平台是两个世界——预测市场聚合器的第一个难题
Next Post
Meme 交易平台的牛熊切换:一个平台方的生存笔记

继续阅读

如果觉得有用

订阅更新,每次发新文章第一时间收到。不发广告、不搞推销。