如果 mempool 裡的交易本來就是公開的,為什麼交易所或協議不能乾脆設計成不公開待處理交易,直接從源頭杜絕三明治攻擊?
這個問題的答案牽涉到以太坊這類公有鏈的基礎設計哲學:公開的 mempool 本身是去中心化、無需許可這個特性的直接產物——任何驗證者都需要能看到即將處理的交易,才能公平地競爭把交易打包進區塊的機會,如果從協定層級把 mempool 完全隱藏起來,等於是把「誰能看到交易、誰能決定交易順序」的權力,集中到少數幾個有特殊管道的參與者手上,這跟去中心化的核心精神直接衝突。
目前業界採用的解法,不是從協定層級消滅公開 mempool,而是提供「私有 RPC」跟「訂單流拍賣」這類選擇性的替代管道——使用者可以主動選擇把自己的交易直接送給特定的區塊建構者,繞開公開 mempool 的曝光風險,但這是使用者自願選擇的額外服務,而不是整個網路被迫改變的底層規則。這種漸進式的市場解法,某種程度上反映了在去中心化理想跟使用者實際保護需求之間,業界目前選擇的折衷路徑。
JaredfromSubway 這次的損失,跟一般使用者常聽到的「私鑰被盜」或「合約漏洞被駭」,本質上有什麼不同?
這裡的核心差異在於攻擊入口本身。私鑰被盜通常代表使用者的簽署憑證外洩(例如透過釣魚網站或惡意軟體),攻擊者拿到私鑰之後,能直接以受害者的身分簽署任何交易;合約漏洞被駭則是攻擊者找到智能合約程式碼本身邏輯上的錯誤,透過精心設計的呼叫方式,讓合約執行出開發者原本沒有預期到的行為,藉此掏空資金。
JaredfromSubway 這次的損失兩者都不是——攻擊者既沒有取得機器人的私鑰,也沒有攻破任何一個智能合約的程式碼漏洞,單純是利用機器人「自動信任並互動任何看起來有套利價值的代幣」這個行為邏輯本身。這代表這次攻擊真正暴露的弱點,不是密碼學層面或程式碼層面的問題,而是自動化交易系統在設計時,對「什麼樣的互動對象值得信任」這件事,缺乏足夠嚴謹的事前篩選機制——這類弱點通常比程式碼漏洞更難被傳統的資安審計工具偵測出來,因為程式碼本身完全正確地執行了它被設計要做的事,問題出在「它被設計要做的事」這個判斷邏輯本身有破綻。
三明治攻擊的整體規模已經下降 75%,這是不是代表一般使用者現在做代幣交換,已經不太需要特別擔心被夾單了?
整體規模下降確實是真實趨勢,但這個數字反映的是「業界整體平均風險」的下降,不代表每一筆個別交易的風險都同等降低。使用 MEV 防護工具(私有 RPC、訂單流拍賣)的使用者,確實大幅降低了自己被鎖定的機率,這也是整體數字下滑的主要貢獻來源;但如果一般使用者仍然透過預設的公開 RPC 節點送出交易、且沒有主動調整過滑點設定,暴露的風險並沒有因為整體市場規模縮小而自動消失——這就像是「整體犯罪率下降」不代表「每一個沒鎖門的人」風險都跟著等比例下降,防護措施本身有沒有被實際使用,才是決定個人風險高低的關鍵。
更精確的理解是:三明治攻擊的整體「性價比」正在下降,因為愈來愈多容易得手的目標已經改用防護工具,這反而可能讓仍未採取防護的使用者,在攻擊者眼中變成相對更有吸引力的少數剩餘目標——攻擊者的資源不會消失,只會愈來愈集中在還沒設防的那一小群人身上。
如果我要開始使用私有 RPC 或訂單流拍賣這類 MEV 防護工具,實際上該注意什麼,是不是設定完就完全不用擔心了?
第一個該注意的,是私有 RPC 或訂單流拍賣本身也是由特定的服務商或建構者提供的服務,使用這類工具代表你把「誰能看到我的待處理交易」這個問題,從「所有 mempool 參與者」縮小到「這一個特定的服務商」——這確實大幅降低了被三明治攻擊的風險,但也代表你多了一層對這個服務商本身的信任假設,值得留意這個服務商本身的商譽跟過往紀錄。
第二個該注意的,是這類工具通常無法完全杜絕所有形式的 MEV,例如某些訂單流拍賣機制本身的設計,是把原本可能被三明治攻擊機器人拿走的價差,轉為由拍賣得標者支付給使用者的回饋,這類機制能改善使用者的實際成交價,但這是一種價差重分配,而不是讓價差完全消失。第三,即使使用了防護工具,滑點設定依然是必要的最後一道防線——防護工具主要降低的是「被鎖定」的機率,而不是完全消除「市場本身在那個時間點確實劇烈波動」這個風險,兩者需要同時搭配,才能提供比較完整的保護。
JaredfromSubway.eth 是以太坊上最惡名昭彰的三明治攻擊機器人,長期靠夾住其他使用者的交易套利,累積獲利估計高達 2.95 億美元。2026 年 6 月,一名身分不明的攻擊者部署了 66 個偽裝成 WETH、USDC、USDT 等知名代幣的假合約,讓這個機器人的自動交易邏輯像平常一樣去掃描套利機會,在過程中不知不覺對這些假合約授予了代幣支用權限——等授權累積到一定程度,攻擊者一次性把機器人真正持有的 ETH 跟穩定幣全數轉走,捲走至少 750 萬美元。這起事件之所以值得特別關注,不是因為金額規模,而是因為它精準示範了三明治攻擊這種掠奪機制本身依賴的資訊優勢,反過來也能被拿來對付掠奪者自己。
三明治攻擊利用的是區塊鏈交易在被打包進區塊之前,會先短暫出現在公開的等待區(mempool)裡這個特性——任何人都能看到即將發生、但尚未確認的交易內容。當一筆大額的代幣交換交易出現在 mempool 裡,MEV 機器人會判斷這筆交易執行後可能造成的價格衝擊,接著搶先送出一筆買單(付出比原始交易更高的手續費,確保自己的交易被優先排進區塊),把價格墊高;等到原始交易在墊高後的價格成交、使用者因此拿到比預期更少的代幣之後,機器人再送出一筆賣單,用墊高後的價格獲利了結——整個過程,原始使用者的交易被夾在攻擊者的兩筆交易中間,這也是「三明治」這個名字的由來。
這次攻擊之所以成功,關鍵在於攻擊者精準利用了 JaredfromSubway 機器人本身的自動化邏輯:這個機器人的核心任務就是持續掃描 mempool 裡出現的套利機會,並自動對看起來有利可圖的代幣交易做出反應。攻擊者部署的 66 個假合約,外觀跟命名都刻意模仿知名代幣,讓機器人的自動化系統誤判這是真正值得套利的交易機會,在互動過程中依照正常流程授予了代幣支用權限——這個授權動作,正是機器人自己每天對成千上萬筆真實交易執行的標準流程,攻擊者沒有攻破任何智能合約漏洞,單純是利用機器人「看到疑似套利機會就自動互動」這個行為模式本身當作攻擊入口。等授權累積足夠,攻擊者才發動最後一擊,把機器人錢包裡真正的資產一次清空。
根據涵蓋超過 9.5 萬筆攻擊案例的資料集,三明治攻擊的月提取金額從 2024 年底的約 1000 萬美元,降到 2025 年 10 月的約 250 萬美元,降幅達 75%。這個下滑趨勢主要歸功於使用者愈來愈廣泛採用 MEV 防護工具,例如透過私有 RPC 節點或訂單流拍賣機制,讓待處理的交易不會出現在三明治機器人掃描的公開 mempool 裡——攻擊者根本看不到交易內容,自然也就無從下手。目前以太坊上超過 88% 的 MEV-Boost 區塊由三家中繼機構處理,其中單一一家建構者就佔了一半以上的區塊,這種集中化的區塊建構市場結構,某種程度上也讓大規模、系統性的三明治攻擊愈來愈難以規模化執行。
最實際的重點不是這個特定機器人的下場,而是同一批讓三明治攻擊經濟規模萎縮的 MEV 防護工具,你自己也能直接使用——把交易改走私有 RPC 或訂單流拍賣,能讓你待處理的交易對掃描公開 mempool 的機器人隱形,這比單純調低滑點容忍度是更直接的防禦手段。如果你依然設定滑點,記得那是取捨,不是萬靈丹——設得太緊,正常交易反而容易失敗觸發 Revert(Gas 費照樣要付);設得太鬆,又留給三明治攻擊正好可以利用的價格衝擊空間;沒有一個對所有交易都安全的固定數字,只有貼合特定代幣流動性跟當下波動程度的合理設定。