跳到正文

夾擊攻擊

說明搜尋者如何在待處理兌換前後插入交易、惡化使用者成交結果,並從交易排序中提取價值。

更新於

僅供教育參考,不構成安全或投資建議。滑點控制與私有路由可降低夾擊風險,但不能保證成交品質、納入區塊、最終性或追回損失。

直接答案

夾擊攻擊是一種有害的最大可提取價值行為:攻擊者在使用者兌換前緊接著放入一筆交易,並在其後再放入一筆。第一筆交易把資金池價格推向不利於使用者的方向,使用者以較差匯率成交,最後一筆交易則按部分由使用者訂單造成的價格平掉攻擊者部位。

攻擊成立需要攻擊者提前看到使用者意圖或擁有排序優勢,訂單須產生足夠價格影響,而且使用者的執行限制仍允許兌換成功。它最常見於自動做市商兌換,但更廣泛的風險是:任何可預測的狀態變化,只要排序能讓他人提取價值,就可能受影響。

運作原理

使用者簽署並廣播兌換。若詳細資訊在納入區塊前進入公開交易池或其他可觀察訂單流,搜尋者便可解碼資產、數量、路徑、最低輸出和截止時間,並模擬不同交易順序。

對於 AMM 資金池中的買入,搜尋者先行買入。該搶跑交易改變儲備並提高使用者的成交價格。只要結果仍符合使用者的最低輸出條件,使用者隨後會獲得少於交易前報價的輸出代幣。搜尋者再在使用者之後賣出,透過尾隨交易捕獲部分價格變動。

總回款不等於利潤。攻擊者還須支付兩次兌換費、Gas 或構建者費用,並承擔失敗嘗試和庫存風險。競爭、其他交易、使用者兌換回滾或區塊順序變化都可能使整組交易虧損;夾擊並非天然原子化,也不保證成功。

滑點保護限制的是可接受的最差輸出,並不阻止排序。容忍度過寬會給不利成交留下更多空間,過緊則可能在波動中讓正常兌換回滾。應用程式和整合合約應執行基於目前報價、經使用者認可的最低輸出和適當截止時間,不能使用零值或陳舊的硬編碼值。

私有提交、受保護訂單流、批次拍賣、基於意圖的執行和拆單在某些系統中可降低暴露。保護效果取決於哪些中間方能看到訂單、構建者覆蓋、回退行為、流動性、費用和實作方式;「私有」或「MEV 保護」標籤並非通用保證。

範例

使用者提交一筆可見兌換,準備從 AMM 資金池用代幣 A 買入代幣 B。搜尋者模擬後發現,訂單足以推動資金池價格,而使用者設定的最低輸出也容許價格向不利方向變動後繼續成交。

搜尋者先買入代幣 B,使用者隨後以惡化後的匯率買入,搜尋者緊接著賣出代幣 B。使用者仍收到不低於簽名時設定的最低數量,卻少於之前的報價;搜尋者只能保留扣除兌換費、排序費用和執行成本後的餘額。

風險

使用者受到的直接損害是成交較差、實際滑點較高。在會對失敗執行收費的鏈和交易設計中,兌換回滾後還可能消耗 Gas。流動性薄弱、可見大單、寬鬆限制、市場波動和可預測路徑會增加暴露,但不存在一個能證明攻擊必然發生的單一門檻。

緩解措施也有取捨。拆成小單可能增加總費用或洩露重複策略;嚴格限制會增加回滾;私有路由帶來信任、審查、日誌和回退問題;受保護介面也可能只涵蓋部分鏈或路徑。應核驗簽名中的最低輸出、截止時間、路徑、端點政策、收據和所需最終性,而不能只相信保護標識。

常見誤解

  • 每次不利價格變動都是夾擊攻擊。 正常價格影響、市場波動、路由變化和套利也會使成交偏離報價;判斷夾擊需要交易排序證據。
  • 攻擊者只是從錢包裡偷走代幣。 典型夾擊是在使用者授權兌換前後改變資金池狀態,並不要求攻擊者的交易直接從使用者錢包轉出資產。
  • 設定任意滑點容忍度就能阻止攻擊。 最低輸出只能限制可接受的惡化程度,搜尋者仍可能最佳化夾擊,使兌換貼近該邊界成功。
  • 私有提交會消除 MEV。 它可對公開池隱藏訂單,但 RPC 營運者、中繼、構建者、求解器或公開回退仍可能觀察或影響訂單。
  • 成功收據證明成交公平。 成功只證明合約條件通過,不證明使用者獲得了最佳可用價格或避開了有害排序。

相關主題

來源

導覽

搜尋知識庫...