即時流動性攻擊是什麼,跟一般的流動性提供有什麼不同?
即時流動性攻擊(常簡稱 JIT)指的是 MEV 機器人利用區塊鏈交易在正式確認前會短暫停留在公開 mempool 的特性,在偵測到某筆即將成交、金額夠大的交易後,搶先在這筆交易的前面插入一筆交易,把巨額流動性精準注入到集中流動性機制裡、恰好覆蓋這筆大額交易會用到的價格區間,等這筆交易完成、機器人賺到對應比例的手續費之後,緊接著在同一個區塊裡插入另一筆交易,把剛才注入的流動性全部撤出。整個流程從注入到撤出,全部發生在同一個區塊確認的極短時間窗口內。
跟一般認知的流動性提供最大的不同在於「曝險時間長度」與「動機」:一般流動性提供者是基於對某個資產配對長期看好、或者想賺取持續的交易手續費,願意讓資金在資金池裡曝險數天、數週甚至更長時間,承擔相應的無常損失風險;JIT 流動性提供者的曝險時間短到只有一個區塊確認的時間(通常幾秒鐘),幾乎不承擔任何價格波動風險,純粹是為了精準截胡這筆特定大額交易產生的手續費,跟真正想長期支持這個資金池流動性深度的動機完全無關。
即時流動性攻擊為什麼會存在,是什麼技術條件讓它成為可能?
這個現象之所以能存在,直接建立在前面文章介紹過的集中流動性機制上——傳統 AMM 的流動性分散在整個價格區間,任何人想針對「某一筆特定交易會經過的價格區間」精準注入流動性,技術上極為困難;集中流動性機制則讓流動性提供者能把資金精準集中在一個極窄的價格區間內,這個「精準」的特性,原本是為了提升一般流動性提供者的資金效率而設計,卻也意外地讓 MEV 機器人能利用同樣的精準度,針對某一筆即將成交的特定交易,量身打造一個恰好覆蓋這筆交易價格區間的流動性部位。
另一個必要條件是區塊鏈交易能在同一個區塊裡被排序、且交易在被打包確認前會短暫停留在公開可見的 mempool——這讓機器人能看到即將成交的交易內容、計算出這筆交易會消耗的價格區間,並確保自己注入流動性、原交易成交、撤出流動性這三個動作,能被安排在同一個區塊裡依序執行,不會被中途其他人插隊打斷。這兩個技術條件(集中流動性的精準機制、交易排序的可操控性)同時存在,才讓 JIT 流動性攻擊在技術上真正可行。
即時流動性攻擊具體怎麼執行,一次完整的攻擊流程是什麼樣子?
典型的即時流動性攻擊流程包含幾個環節:
對機器人而言,這整套流程幾乎沒有方向性風險——因為注入跟撤出都發生在極短的同一個區塊時間窗口內,資產價格幾乎不可能在這麼短的時間內出現顯著波動,機器人主要的成本只有交易手續費與優先費,賺取的則是原本該分配給真正長期流動性提供者的那部分手續費收入。
即時流動性攻擊對一般用戶有什麼實際影響,分別對交易者跟長期流動性提供者有什麼不同的衝擊?
對執行交易的用戶而言,JIT 流動性的存在某種程度上是一體兩面——短期來看,機器人臨時注入的巨額流動性,理論上能讓你這筆交易的實際滑點變小(因為當下資金池深度暫時被大幅拉高),這是這個現象少數對交易者有利的一面;但長期來看,如果 JIT 流動性攻擊頻繁發生在某個資金池,會讓這個資金池顯示的「正常」流動性深度失真,你在其他沒有被 JIT 機器人盯上的交易時刻,實際體驗到的滑點可能遠比你根據過去交易紀錄預期的更差。
對真正想長期提供流動性賺取手續費的用戶而言,JIT 攻擊的衝擊更直接:機器人截胡了原本該分配給你的手續費收入,尤其是那些金額夠大、有利可圖的大額交易,往往最容易被 JIT 機器人盯上,這代表你長期持有部位、承擔無常損失風險換來的手續費收益,實際到手的比例可能因為 JIT 攻擊而被壓縮。理解這個現象,能幫助你評估某個資金池顯示的歷史手續費收益率時,去查證這個收益率有多少比例是被 JIT 機器人截胡前的理論值、多少比例才是長期流動性提供者實際能拿到的淨收益,這是評估一個資金池實際提供流動性划不划算時,值得納入考量的細節。
以太坊生態系裡採用集中流動性設計的主流去中心化交易所上線後,多份鏈上數據研究陸續觀察到即時流動性攻擊的實例——同一個地址在同一個區塊裡,先插入一筆大額流動性注入交易,緊接著在同一區塊的稍後位置插入流動性撤出交易,兩筆交易之間僅間隔著一筆原本要執行的大額兌換交易,這種「注入-成交-撤出」在單一區塊內完整發生的模式,成為研究者用來辨識 JIT 流動性攻擊的具體技術特徵,也促使部分協議與研究團隊開始討論是否該在機制設計層面限制這種瞬間流動性行為。
此為市場結構現象詞條,無正向取捨可言——即時流動性攻擊對真正的長期流動性提供者純粹是收益被截胡的損失,唯一能討論的取捨在於:集中流動性機制帶來的高資金效率,跟這個機制被 JIT 機器人利用的副作用,本質上是同一套設計特性的一體兩面,能提升效率的精準性,同時也能被用來精準截胡,這是協議選擇採用集中流動性架構時附帶的結構性風險,不是用戶能片面改變的變數。