所有文章
指南

三明治攻击是什么?Solana 的 MEV 防护

三明治攻击在兑换显示成功的同时抽走几美元。它怎么发生、1,000 美元的例子、滑点该收到多紧,以及 2026 年新出的防护。

8 分钟阅读 J Tools Editorial
一张编辑插画:Solana 上的三明治攻击与 MEV 防护,配合这篇指南使用

兑换显示成功,走势图也没动。可是到账的代币,比屏幕一开始报的数少了一截。这就是三明治攻击

据公开报道的数字,三明治攻击的机器人从普通交易者手上抽走的钱大约是 5 亿美元。一次几美元,走势图一直很安静。

三明治攻击是什么

兑换就是把一种代币换成另一种。你买,价格就往上挪一点,池子的定价机制本来就是这样。

三明治攻击是机器人把自己的买卖夹在你这一单的前后,把差价拿走。整套动作发生在同一个区块里,也就是网络一起确认的那一批交易。

  1. 机器人抢在你前面买进同一个代币,把价格顶高。
  2. 你的单子接着成交,成交在被顶高之后的价位。
  3. 机器人立刻卖出,把你这一单推上去的那段差价收走。

你是中间的馅,机器人是上下两片面包。链上写着成功,界面变绿,一来一回又在同一瞬间回到原位,走势图看起来毫发无损。

MEV 是什么,没有公开内存池为什么还会被夹

推动三明治攻击的那套东西有名字,叫 MEV(最大可提取价值):机器人靠调换区块里交易的顺序、或者往中间插一笔,把钱挤出来。谁决定顺序,谁就靠顺序赚钱。

以太坊有一个公开的候车室(内存池),待确认的交易都排在那里,谁都能看。Solana 没有这个地方,单子从连接服务商直接送到下一个出块方手上。那机器人为什么还是看得见?漏了两个口子。

  • 一部分连接服务商会把待确认的交易,悄悄递给合作的机器人网络。
  • 出块方手上的排队队列,跟它合作的机器人读得到。

所以这里不是玻璃房,是两扇一直开着的侧门。这类攻击大多走 Jito:把一组交易封成一个包(bundle),带上小费按固定顺序发出去,出块方要么全收,要么全丢。被拿来作恶的这套机制,待会儿也是你自己的护甲。

不到一秒钟发生了什么

拿 1,000 美元的 SOL 去换一个小模因币,价格保护开着没关。

  • 机器人看到你这笔买单,抢先零点几秒买进,把价格推高大约 5%。
  • 你的单子成交在这个更差的价位,到手的币比报价时少。
  • 机器人随后卖出,大概带走 40 美元。

钱包里写着兑换成功。这 40 美元的漏洞,除非把预期价位和实际成交价摆在一起比,否则看不见。一天几千笔堆起来,就是开头那个数字。

滑点是免费的第一道防线

这篇只记一件事的话,记滑点:价格可以变差到什么程度,超过就自动取消这笔兑换。相当于交代一句「3 美元买,超过 3.3 美元就算了」。

它对三明治攻击有效的地方就在这里。上限收紧,机器人能拿走的钱也就到顶了。它要把价格顶过你的上限,你这一单直接取消,它手里还剩一堆为了设局买进的代币。

账算下来是你占便宜:取消只付一点点网络费,被夹一次付的是这一单的百分之几。取消不是故障,是防线起了作用。Solana 官方文档对交易的说明写得很清楚,一笔交易要么整笔成功,要么整笔回滚。

收到多紧,看池子有多深。池子就是兑换时对手方的那两堆代币,越厚价格越推不动,越浅越跳。

池子类型例子建议滑点
深池、大池SOL 与 USDC 的交易对0.5% 到 1%
中等池子站稳脚跟的中型代币1% 到 2%
浅池、新池刚出生的模因币2% 到 3%

50% 这种数字等于喊「多少钱我都要」,盯着的机器人全来了。反过来给一个波动很大的模因币写 0.1%,正常的抖动就会让单子一直取消,也不是保护。上限按池子挑。

滑点作用示意图:左边是一直开着的流道,右边是在水滴后面关上的单向阀,表示收紧上限能限制被抽走的金额

逐个场景怎么定,写在滑点设置怎么定这个数字里。

避开三明治攻击的四个步骤

不用变成专家。普通人做普通的单子,从上往下做这四件事就够了。

  1. 收紧滑点。按上面那张表挑。小单子光靠这一条,大部分攻击就不成立。
  2. 用路由干净的兑换工具。Solana 兑换工具走 Jupiter 取路径,签名前给出当前报价,还会跑链上执行检查。
  3. 单子别开太大,大的拆开。大多数三明治攻击的机器人不碰大约 500 到 1,000 美元以下的单子,网络费加小费就把利润吃光了。多钱包批量兑换把同一笔兑换按固定顺序分到几个钱包,一笔大单变成每份都低于机器人门槛的小份。手续费以工具页面上的当前数字为准。
  4. 先看池子。筹码集中在少数几个钱包的代币更好操纵。用持币快照工具看清楚谁拿着多少,再决定这一单开多大。

对新手最安心的一条:机器人基本不理小单子。50 美元或者 100 美元的兑换,滑点写得像样,基本在雷达底下。

2026 年有什么变化

今年防守这一侧也在动,有三样东西正在改变 Solana 三明治攻击的力量对比。

  • Jito DontFront。把你的交易钉在 bundle 的最前面,抢在你前面买进这一手最简单的动作就没了。更宽的那些套路它不全挡得住。
  • JitoBAM(加密内存池)。交易一直加密到执行的那一刻,只在专用的安全硬件里打开。读不到的东西,机器人没法围着它设局。现在正在铺开。
  • Alpenglow 升级。把交易变成不可撤销的那一刻(最终确认)压到大约 150 毫秒,比以前快了大约 100 倍。窗口越短,机器人靠的那段缝隙越窄。

没有哪一个是万能按钮。防护是分层的,要哪一层,看单子多大、池子多深。bundle 到底保证什么,写在Jito bundle 保证什么里;全收还是全丢的规则在 Jito 的官方文档

你的情况合适的防护
500 美元以下的小单收紧滑点通常就够了
1,000 美元以上的单笔收紧滑点,再拆到几个钱包
浅池里的新模因币先看池子,再写 2% 到 3%
协同进场(进阶)自己发一个封好的 bundle

进阶:发币方和多钱包玩家

下面这一段是给跑代币发行、同时调度很多钱包的人看的。普通交易者可以跳过。

想让自己的几个钱包干净地进场,敞开的路径会给狙击机器人留缝,也就是开盘那一刻抢着买的那种。对面怎么动手,写在狙击机器人怎么运作里。

自发打包示意图:一排钱包汇进同一个封好的包,方括号外面是一个被挡住的机器人剪影

自己发一个封好的 bundle,顺序就定死了,外面的机器人插不进来。打包交易工具支持 Raydium、Pump.fun 和 Moonshot,从几个钱包在同一个区块里买进。手续费以工具页面上的当前数字为准。卖出这一侧是同一个思路。

看着像保护、其实不是的做法

  • 关掉预检。交易不会因此对机器人隐身,只是少了一道护栏。
  • 凌晨三点交易。机器人不睡觉,是 24 小时跑着的软件。
  • 「无三明治攻击」的招牌。宣传语不是保证。说不清楚它怎么起作用,就当装饰。
  • 什么都写 0.1%。深池上没问题,浅的模因币上只会一直失败。

三明治攻击、抢跑和尾随的区别

这三个词经常混着用,可机器人的动作不一样。看一个工具到底防住哪一种时,这个区别有用。

  • 抢跑是抢在你前面的一笔买单,吃你这一单推上去的那段。
  • 尾随是紧跟在你后面的一笔,捡你这一单打开的价差,多数时候不直接从你身上拿。
  • 三明治攻击是两件事一起做:前面顶价,后面卖进你留出的余量。

所以每一次三明治攻击里都有一次抢跑,反过来不成立。

三明治攻击常见问题

被夹走的钱能追回来吗?

追不回来。交易已经在链上结算,机器人的利润在同一个区块里就走了,没有人可以找。能改的是下一单:收紧上限、挑干净的路径,同一手就不划算了。

小单子会被三明治攻击吗?

很少。大多数机器人跳过大约 500 到 1,000 美元以下的单子,100 美元的兑换不值它动手。

用私有 RPC 能挡住吗?

只挡一半。漏的是共享订单流的服务商和出块方的队列,换一个不外传的服务商能降低暴露。

用 Jito 就能防住三明治攻击吗?

只防一部分。DontFront 把你顶到最前面,最简单的那一手就没了,但它替代不了一个像样的滑点。单笔普通兑换根本用不上 bundle。

滑点到底该收到多紧?

按池子深度来。深的交易对 0.5% 到 1%,浅的新模因币 2% 到 3%。

对普通交易者来说

三明治攻击的机器人是真的,也真的拿走了不少钱。防护分三层:滑点的纪律、不在落地前把单子传出去的连接、以及打包和排序的规则。哪一层都不是墙。

按池子定上限,单笔别开太大,下手前先看一眼深度。小单子做到这些就够了。

这篇是科普,不是投资建议。代币交易有真实风险,包括亏掉本金,任何防护都消不掉这个风险。只用亏得起的钱。

深度怎么读写在流动性池的深度与风险,路径怎么选写在Jupiter、Raydium 与 Orca 的对比

J
作者
J Tools Editorial

来自 J Tools 团队的文章。

查看 J Tools Editorial 发表的所有文章 →

相关文章