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

兑换显示成功,走势图也没动。可是到账的代币,比屏幕一开始报的数少了一截。这就是三明治攻击。
据公开报道的数字,三明治攻击的机器人从普通交易者手上抽走的钱大约是 5 亿美元。一次几美元,走势图一直很安静。
三明治攻击是什么
兑换就是把一种代币换成另一种。你买,价格就往上挪一点,池子的定价机制本来就是这样。
三明治攻击是机器人把自己的买卖夹在你这一单的前后,把差价拿走。整套动作发生在同一个区块里。区块就是网络一起确认的那一批交易。
- 机器人抢在你前面买进同一个代币,把价格顶高。
- 你的单子接着成交,成交在被顶高之后的价位。
- 机器人立刻卖出,把你这一单推上去的那段差价收走。
你是中间的馅,机器人是上下两片面包。链上写着成功,界面变绿,一来一回又在同一瞬间回到原位,走势图看起来毫发无损。
MEV 是什么,没有公开内存池为什么还会被夹
推动三明治攻击的那套东西有名字,叫 MEV(最大可提取价值):机器人靠调换区块里交易的顺序、或者往中间插一笔,把钱挤出来。谁决定顺序,谁就靠顺序赚钱。
以太坊有一个公开的候车室(内存池),待确认的交易都排在那里,谁都能看。Solana 没有这个地方,单子从连接服务商(负责把你的交易转发给网络的服务)直接送到下一个出块方(正在打包下一个区块的那台电脑)手上。那机器人为什么还是看得见?漏了两个口子。
- 一部分连接服务商会把待确认的交易,悄悄递给合作的机器人网络。
- 出块方手上待处理的交易队列,跟它合作的机器人读得到。
所以 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%,正常的抖动就会让单子一直取消,你被挡在交易之外,也谈不上受保护。上限按池子挑。

逐个场景怎么定,写在Solana 滑点设置:这个数字怎么定里。
避开三明治攻击的四个步骤
不用变成专家。普通人做普通的单子,从上往下做这四件事就够了。
- 收紧滑点。按上面那张表挑。小单子光靠这一条,大部分攻击就不成立。
- 用路由干净的兑换工具。Solana 兑换工具走 Jupiter 取路径,签名前给出当前报价,还会跑链上执行检查。
- 单子别开太大,大的拆开。大多数三明治攻击的机器人不碰大约 500 到 1,000 美元以下的单子,网络费加小费就把利润吃光了。多钱包批量兑换把同一笔兑换按固定顺序分到几个钱包,一笔大单变成每份都低于机器人门槛的小份。手续费以工具页面上的当前数字为准。
- 先看池子。筹码集中在少数几个钱包的代币更好操纵。用持币快照工具看清楚谁拿着多少,再决定这一单开多大。
对新手最安心的一条:机器人基本不理小单子。50 美元或者 100 美元的兑换,滑点写得像样,基本在雷达底下。
2026 年有什么变化
今年防守这一侧也在动,有三样东西正在改变 Solana 三明治攻击的力量对比。
- Jito DontFront。把你的交易强制钉在 bundle 的最前面,抢在你前面买进这种最简单的手法就行不通了。范围更大的夹击套路,它没法全部挡住。
- JitoBAM(加密内存池)。交易一直加密到执行的那一刻,只在专用的安全硬件里打开。读不到的东西,机器人没法围着它设局。现在正在铺开。
- Alpenglow 升级。这项升级还在推进,目标是把交易变成不可撤销的那一刻(最终确认)压到大约 150 毫秒,比以前快大约 100 倍。窗口越短,机器人靠的那段缝隙越窄。
没有哪一个是万能按钮。防护是分层的,要哪一层,看单子多大、池子多深。bundle 到底保证什么,写在Jito bundle 保证什么里;全收还是全丢的规则在 Jito 的官方文档。
| 你的情况 | 合适的防护 |
|---|---|
| 500 美元以下的小单 | 收紧滑点通常就够了 |
| 1,000 美元以上的单笔 | 收紧滑点,再拆到几个钱包 |
| 浅池里的新模因币 | 先看池子,再写 2% 到 3% |
| 协同进场(进阶) | 自己发一个封好的 bundle |
进阶:发币方和多钱包玩家
下面这一段是给跑代币发行、同时调度很多钱包的人看的。普通交易者可以跳过。
发币时想让自己的几个钱包干净地进场,走公开路径会给狙击机器人留空子。狙击机器人就是代币一上线、开盘那一刻抢着买的机器人。这类机器人怎么动手,写在狙击机器人怎么运作里。

自己发一个封好的 bundle,顺序就定死了,外面的机器人插不进来。打包交易工具支持 Pump.fun、PumpSwap 和 Raydium,用 Jito bundle 从几个钱包买进,整包落在同一个区块里。一个 bundle 最多装五笔交易,Packed 模式下几个钱包共用一笔交易,所以一个 bundle 能装下多少笔买入,取决于平台。手续费以工具页面上的当前数字为准。卖出这一侧用的是同一个思路。
看着像保护、其实不是的做法
- 关掉预检。预检是发送前的那道安全检查。关掉它,交易不会因此对机器人隐身,只是少了一道护栏。
- 凌晨三点交易。机器人不睡觉,是 24 小时跑着的软件。
- 「无三明治攻击」的招牌。宣传语不是保证。说不清楚它怎么起作用,就当装饰。
- 什么都写 0.1%。深池上没问题,浅的模因币上只会一直失败。
三明治攻击、抢跑和尾随的区别
这三个词经常混着用,可机器人的动作不一样。看一个工具到底防住哪一种时,这个区别有用。
- 抢跑是抢在你前面的一笔买单,吃你这一单推上去的那段。
- 尾随是紧跟在你后面的一笔,捡你这一单打开的价差,多数时候不直接从你身上拿。
- 三明治攻击是两件事一起做:前面顶价,后面卖进你的滑点留出的余量。
所以每一次三明治攻击里都有一次抢跑,反过来不成立。
三明治攻击常见问题
被夹走的钱能追回来吗?
追不回来。交易已经在链上结算,机器人的利润在同一个区块里就走了,没有人可以找。能改的是下一单:收紧上限、挑干净的路径,同样的攻击就不再划算。
小单子会被三明治攻击吗?
很少。大多数机器人跳过大约 500 到 1,000 美元以下的单子,100 美元的兑换不值它动手。
用私有 RPC 能挡住吗?
只能挡一部分。漏口在共享订单流的服务商和出块方的队列上。换一个不外传交易的服务商能降低暴露,但真正起主要作用的还是收紧滑点。
用 Jito 就能防住三明治攻击吗?
只防一部分。DontFront 把你的交易钉在最前面,最简单的那种手法就行不通了,但它替代不了一个像样的滑点。单笔普通兑换根本用不上 bundle。
滑点到底该收到多紧?
按池子深度来。深的交易对 0.5% 到 1%,浅的新模因币 2% 到 3%。
对普通交易者来说
三明治攻击的机器人是真的,也真的拿走了不少钱。防护分三层:守住滑点上限、挑不会在交易落地前把单子外传的连接服务、再加上打包和排序的规则。哪一层都不是墙。
按池子定上限,单笔别开太大,下手前先看一眼深度。小单子做到这些就够了。
这篇是科普,不是投资建议。代币交易有真实风险,包括亏掉本金,任何防护都消不掉这个风险。只用亏得起的钱。
深度怎么读,写在流动性池是什么:在 Solana 上读懂深度与风险里;路径怎么选,写在Jupiter、Raydium 还是 Orca:Solana 上该用哪个 DEX里。


