昨天結尾停在一個開關:預言機(oracle)報價一更新,脫鉤的抵押品瞬間跌破清算線,清算程式就衝進去把倉位收掉。今天要問的是這條線的下游——去執行那些清算、又是怎麼從「交易被打包進區塊的順序」裡榨出額外的錢。這件事有個統一的名字:MEV(最大可提取價值,Maximal Extractable Value)。它不是某個攻擊手法,而是一整層經濟結構,你每次在鏈上換幣,可能都默默繳了它一筆。

📖 學

MEV 指的是「區塊生產者與其協作者,透過重新排序、插入或審查一個區塊裡的交易,能提取的超額價值」。這個字最早叫 Miner Extractable Value(礦工可提取價值),以太坊轉為權益證明(PoS)後,提取者從礦工變成驗證者(validator)與其背後的建構者(builder),於是改稱 Maximal Extractable Value,縮寫沒變。核心洞見很簡單:區塊裡交易的先後順序會影響每筆交易的成交結果,而「決定順序的人」握有這個順序的定價權。

要理解價值從哪來,先看記憶池(mempool)。你送出的交易不是立刻上鏈,而是先進到一個公開的等待區,任何人都看得到你「打算做什麼」——用多少錢買哪個幣、能容忍多少滑價。專門盯著記憶池找機會的程式叫搜尋者(searcher)。他們發現有利可圖的機會後,構造自己的交易,並用更高的手續費或直接付錢給建構者,買到「排在你前面或後面」的位置。

常見形式可以整理成一張表:

類型英文手法誰受害
套利arbitrage抓兩個交易所同一資產的價差,同一區塊內買低賣高大致中性,反而校正價格
清算liquidation搶先執行抵押不足的倉位、賺清算獎勵被清算者(本來就會被清算)
搶跑front-running看到你的大單,搶在你前面成交、推高你的成本你,滑價變差
三明治sandwich你的買單「前面塞一筆買、後面塞一筆賣」,兩片夾住你你,直接被抽走價差
尾隨backrunning緊跟在某筆交易「後面」下單,吃它造成的價格變化通常中性

其中最惡質的是三明治攻擊。假設你要在去中心化交易所(DEX)用一大筆錢買 A 幣。搜尋者搶先在你前面買進 A,把價格推高;你的單以被墊高的價格成交;他再緊接著在你後面把 A 賣掉獲利。你多付的那一截,原封不動進了他口袋。這就是為什麼 MEV 常被稱作隱形稅——它不寫在手續費欄位裡,而是藏在你「比預期差」的成交價中,多數人根本沒察覺自己被抽了。

現在把它接回昨天。昨天那個「預言機報價更新就觸發清算」的瞬間,正是 MEV 搜尋者的黃金時刻:清算機器人本身就是一種 MEV 搜尋者。誰能在報價更新後的第一個區塊、用最有利的位置搶到清算權,誰就拿走清算獎勵。所以脫鉤→清算這條線,下游其實是一場毫秒級的排序競標。理解 MEV,你才看懂昨天那個開關按下去之後,錢流向了哪裡。

制度面怎麼處理?最重要的一步是 PBS(提議者-建構者分離,proposer-builder separation)。它把「決定區塊內容」和「提議區塊上鏈」這兩件事拆開:建構者(builder)專門競標打包最賺錢的區塊,提議者(proposer,也就是驗證者)只負責選出價最高的那個區塊來提交,而不需要、也看不到裡面的細節。這麼做的目的,是避免每個小驗證者都得自己去搞複雜的 MEV 提取、造成中心化。目前以太坊主網上這件事是靠 Flashbots 的 MEV-Boost 這套鏈下軟體實現的,而「把 PBS 寫進協議本身」(enshrined PBS)仍在研究與推進中。

技術面的緩解方向有幾條並行。一是加密記憶池(encrypted mempool):交易內容在打包前先加密,搜尋者看不到你要幹嘛,自然無從搶跑;二是批次拍賣(batch auction):把一段時間內的訂單湊在一起、用同一個結算價成交,消掉「排序」這個可被操縱的維度;三是應用層自保,例如私有交易 RPC——像 Flashbots Protect,你把錢包的 RPC 端點換掉,交易就不經過公開記憶池、直接送進私有通道,搶跑與三明治機器人根本看不到你。這一條是散戶今天就能動手的。

🧠 記

  • MEV = 透過重排、插入、審查交易可提取的超額價值;提取者是區塊建構者/驗證者與搜尋者(searcher)。
  • 五種形式:套利、清算、搶跑(front-running)、三明治(sandwich)、尾隨(backrunning);其中三明治最傷散戶。
  • 隱形稅:MEV 不列在手續費,而藏在你變差的成交價(滑價)裡,多數人無感。
  • 清算機器人就是 MEV 搜尋者;昨天預言機觸發清算的瞬間,就是一場毫秒級排序競標。
  • PBS把「打包區塊」與「提議區塊」分離,避免驗證者中心化;主網目前靠 MEV-Boost 實現,協議內建版(enshrined PBS)仍在路上。
  • 緩解三路:加密記憶池、批次拍賣、私有交易 RPC(如 Flashbots Protect);散戶最容易做的是後者 + 設滑價上限。

✍️ 實踐

今天做兩件當天做得完的事。第一,打開你常用的 DEX(如 Uniswap)或錢包的交易設定,找到滑價上限(slippage tolerance)欄位,確認它不是預設的偏高值(有些介面預設 0.5% 甚至更高);把它調到符合這筆交易合理範圍的數字,滑價上限越低,三明治能榨走的空間就越小(代價是行情快時可能交易失敗)。順手看看錢包有沒有「MEV 保護」開關,有就打開。

第二,讀一筆真實的三明治攻擊交易。到區塊瀏覽器(如 Etherscan)或 MEV 專門看板(如 EigenPhi、libmev),找一組「買-受害單-賣」三連交易,對照它們的區塊位置與價格,親眼看看被夾的人多付了多少。看懂一筆,你對「隱形稅」的體感會完全不一樣。進階者可把主網 RPC 換成 Flashbots Protect,實測一筆私有交易。

🔗 延伸學習

💬 問 AI

我想深入理解 MEV(最大可提取價值)。請用一個具體的三明治攻擊(sandwich attack)數字範例,
帶我走一遍:搜尋者如何在我的買單前後各插一筆交易、我實際多付了多少、這筆錢怎麼分給
建構者(builder)與驗證者。接著解釋 PBS(提議者-建構者分離)與 MEV-Boost 如何改變這個
分配結構,以及加密記憶池、批次拍賣、私有交易 RPC(如 Flashbots Protect)三種緩解方案
各自擋掉的是哪一個環節、代價又是什麼。最後告訴我:作為散戶,今天能立刻做的三個自保動作。