← 返回文章列表
July 17, 2026
5 分鐘閱讀

MEV 剖析:三明治攻擊、搶先交易與記憶體池的黑暗森林

MEV 剖析:三明治攻擊、搶先交易與記憶體池的黑暗森林
#mev
#三明治攻擊
#搶先交易
#mempool
#flashbots
#DeFi
#ethereum

當你在去中心化交易所簽署一筆 swap 並將其廣播到公共 RPC 端點時,你並沒有向撮合引擎傳送一條私密指令。你釋出的是一份已簽名、可執行的意圖宣告,公開掛在一塊全球公告板上,並且你還給願意執行它的任何人附上了一筆賞金——也就是 gas 價格。所有人都能讀到這份宣告。但沒有人有義務公平地執行它、按順序執行它,或者乾脆執行它。它相對於其他交易落地的順序,並不是你提交時自帶的屬性;而是由某個第三方決定的——這個第三方恰恰能靠著對你不利的安排獲利。

這正是鏈上交易令人不安的核心所在。在《加密市場中的統計套利與配對交易》一文中,我們曾順帶提到,在 CEX 和 DEX 之間轉移倉位存在"MEV 風險",但當時沒有展開說明。本文正是要補上這筆債。它是一個系列文章的入口,主題是鏈上執行的經濟學,其任務是把詞彙表——記憶體池(mempool)、bundle、backrun(尾隨交易)、三明治(sandwich)、PBS——定義得足夠精確,以便後續討論利用閃電貸的原子套利面向量化人群的 Uniswap v3 集中流動性的文章可以預設你已經理解這臺機器的運作方式。

MEV——最大(或最多)可提取價值(Maximal/Maximum Extractable Value)——是指某一方透過選擇區塊內交易的納入、排除與排序,在標準區塊獎勵和優先費之外能夠額外提取的利潤。這不是一個漏洞,而是無許可區塊鏈排序機制的結構性後果。自 2019 年該機制被正式表述以來,累計被提取的價值已達數十億美元規模,一整個行業——搜尋者(searcher)、構建者(builder)、中繼(relay)、區塊提議者(proposer)——已經圍繞著攫取和再分配這部分價值發展起來。如果你在鏈上交易,那麼你要麼正在繳納這筆稅,要麼已經採取了刻意的措施來避免它。

1. 交易生命週期:為什麼你的意圖是公開的

要看清價值從哪裡洩漏出去,我們不妨追蹤一筆交易從你的錢包到最終確認區塊的全過程。

公共記憶體池

當你的錢包簽署一筆交易並提交到某個標準節點的 RPC 端點時,該節點會驗證它(簽名、nonce、餘額是否充足),如果通過驗證,就會將其在點對點網路中廣播給其他節點。每個節點會把這些尚未被打包的交易儲存在一個本地緩衝區中,稱為記憶體池(memory pool,mempool)。在一兩秒之內,網路上幾乎所有節點——包括那些整個業務就是從待處理交易中提取價值的參與方營運的節點——都會持有一份你已簽名、完全解碼的交易副本。

"完全解碼"是這句話裡的關鍵詞。你的交易並非一段不透明的二進位制資料,而是對某個已知合約的 ABI 編碼呼叫。任何監視記憶體池的人都可以解碼它,直白地讀出:*這個地址即將在 Uniswap v2 的 WETH/USDC 池中用 40 枚 ETH 換取 USDC,且願意接受最少 96,000 USDC。*最後那個條款——最低可接受輸出——就是你的滑點容忍度,它不只是一個提示,而是編譯進 calldata 的硬性參數。我們很快就會看到,它同時也是攻擊者的預算上限。

記憶體池有時被稱為黑暗森林(dark forest),這個說法來自 Dan Robinson 和 Georgios Konstantopoulos 在 2020 年寫的一篇文章,借用了劉慈欣的比喻:在這個空間裡,任何暴露出來的實體都會立刻被你看不見的獵手盯上。把一筆天真的、有利可圖的交易廣播進公共記憶體池,它很可能永遠不會以你簽署時的形式落進區塊——因為某個機器人會先一步吞掉這個機會,並把周圍的區塊內容重新編排成對你不利的樣子。

作為優先順序佇列的 gas 價格

以太坊的費用市場(在 EIP-1559 之後)把 gas 價格拆分成協議層的基礎費(base fee,會被銷毀)和優先費(priority fee,也就是"小費",歸區塊提議者所有)。在構建區塊時,構建者出於經濟動機會優先納入給它支付最多的交易。粗略地說,記憶體池就是一個以小費為鍵的優先順序佇列:小費越高,越早被納入。

正是這個機制讓排序變得可以被購買。如果我看到你的待處理 swap,並希望我的交易緊挨在你之前執行,我不需要破解任何東西,只需提交一筆支付更高小費的交易即可。構建者遵循自身激勵,會把我的交易排在前面。排序並不是協議提供的公平性保證;而是協議本身執行的一場拍賣,而被拍賣的標的正是根據你待處理交易中的資訊採取行動的權利

兩個事實合在一起,就構成了整個 MEV 問題:

  1. 待處理交易是可見的(公共記憶體池)。
  2. 它們的排序是可以出售的(小費優先拍賣)。

下面的一切都是這兩點的推論。

從錢包到區塊的交易生命週期:已簽名交易廣播到公共記憶體池,對搜尋者可見,由構建者按優先費排序打包進區塊

2. 三明治攻擊機制,附實際數學推導

三明治攻擊是針對 swap 交易者的經典有毒 MEV 策略,值得把算術過程完整推一遍,因為這些數字能解釋為什麼滑點設定是你所能掌控的最重要的防禦參數。

恆定乘積不變數

一個 Uniswap v2 池持有代幣 X 的儲備量 xx 和代幣 Y 的儲備量 yy,並在每筆交易之後(暫時忽略手續費)維持不變數

xy=kx \cdot y = k

如果交易者向池中賣出 Δx\Delta x 數量的代幣 X,新的 X 儲備量為 x+Δxx + \Delta x,為了保持 kk 不變,池子必須支付出

Δy=ykx+Δx=yΔxx+Δx.\Delta y = y - \frac{k}{x + \Delta x} = \frac{y \, \Delta x}{x + \Delta x}.

考慮 Uniswap v2 0.3% 的手續費,輸入量會被 γ=0.997\gamma = 0.997 縮放:

Δy=yγΔxx+γΔx.\Delta y = \frac{y \, \gamma \, \Delta x}{x + \gamma \, \Delta x}.

關鍵性質在於:你朝一個方向買入的量越大,你的邊際價格就越差。價格衝擊是凸的。而這個凸性正是攻擊者用來變現的東西。

場景設定

考慮一個 WETH/USDC 池。為了數字乾淨一些,假設儲備量使 ETH 價格約為 2,500 USDC:

  • x=10,000x = 10{,}000 WETH
  • y=25,000,000y = 25{,}000{,}000 USDC
  • k=2.5×1011k = 2.5 \times 10^{11}

你想用 40 枚 WETH 買入 USDC(即向池中賣出 WETH)。忽略手續費,在一個空區塊中一次誠實的成交會給你

Δy=25,000,0004010,000+40=1,000,000,00010,04099,601 USDC.\Delta y = \frac{25{,}000{,}000 \cdot 40}{10{,}000 + 40} = \frac{1{,}000{,}000{,}000}{10{,}040} \approx 99{,}601 \text{ USDC}.

你交易前的現貨價格是 25,000,000/10,000=2,50025{,}000{,}000 / 10{,}000 = 2{,}500 USDC/WETH,所以按交易前中間價計算,40 WETH "值" 100,000 USDC。而你實際收到 99,601——這約 399 USDC 的差額,是你自己的價格衝擊加上手續費造成的。現在假設你設定了1% 的滑點容忍度。你交易中的 amountOutMin 就是

99,601×0.9998,605 USDC.99{,}601 \times 0.99 \approx 98{,}605 \text{ USDC}.

這個數字現在在記憶體池中是公開的。它告訴任何觀察者:*這個人願意為他們的 40 WETH 接受最低 98,605 USDC。*你在乾淨區塊中本可獲得的數量(99,601)與你的底線(98,605)之間的差額——大約 996 USDC——正是你自願讓渡給任何搶先交易者的空間。這就是攻擊者的預算。

攻擊過程,逐步拆解

搜尋者構造三筆交易,並強制它們在同一個區塊中以如下順序落地:

1. 搶跑(攻擊者先買入)。 攻擊者在你之前把自己的 WETH 賣進池子,推高 USDC 相對 WETH 的價格,這樣當你的交易落地時,你每枚 WETH 能換到的 USDC 就變少了。攻擊者會精心控制這筆交易的規模,使你的交易仍然滿足 amountOutMin——如果不滿足,你的 swap 就會回滾,也就沒有受害者可供三明治了。最優搶跑規模,正是恰好把你壓到底線上的那個最大值。

假設攻擊者用自己的 40 WETH 搶跑。池子變為 x=10,040x = 10{,}040,根據不變數,攻擊者收到

25,000,0004010,04099,601 USDC out,\frac{25{,}000{,}000 \cdot 40}{10{,}040} \approx 99{,}601 \text{ USDC out},

此時儲備變為 x=10,040x = 10{,}040 WETH,y24,900,399y \approx 24{,}900{,}399 USDC。

2. 受害者(你的 swap 在惡化後的池子中執行)。 你的 40 WETH 現在要面對這樣的儲備:

Δy=24,900,3994010,040+40=996,015,96010,08098,811 USDC.\Delta y = \frac{24{,}900{,}399 \cdot 40}{10{,}040 + 40} = \frac{996{,}015{,}960}{10{,}080} \approx 98{,}811 \text{ USDC}.

檢查約束條件:98,811 > 98,605,所以你的交易不會回滾——你成交了,只是成交價更差。你實際收到 98,811,而不是乾淨區塊中本該得到的 99,601。你損失了大約 790 USDC,而且你完全不知道發生了什麼;你的 swap "成功"了。此時池子為 x=10,080x = 10{,}080 WETH,y24,801,588y \approx 24{,}801{,}588 USDC。

3. 尾隨(攻擊者賣回)。 攻擊者現在把第一步買入的 USDC 賣回池子——等價於買回自己的 WETH——從而收割你的交易所製造出的更高價格。用手頭約 99,601 USDC 買回 WETH:

Δx=10,08099,60124,801,588+99,6011,004,010,08024,901,18940.32 WETH.\Delta x = \frac{10{,}080 \cdot 99{,}601}{24{,}801{,}588 + 99{,}601} \approx \frac{1{,}004{,}010{,}080}{24{,}901{,}189} \approx 40.32 \text{ WETH}.

攻擊者在第一步花掉 40 WETH,在第三步收回 40.32 WETH——扣除 gas 前獲利約 0.32 WETH(約 800 USDC),幾乎全部來自你的滑點預算。收緊你的滑點,這筆預算就會縮小;攻擊者的最優搶跑規模隨之下降,一旦低於某個閾值,三明治攻擊在扣除 gas 後就不再有利可圖,搜尋者也就會放過你。

這裡的教訓不是"滑點容忍度不好"。你需要一定的容忍度,否則你的交易會在普通的價格波動中就回滾。教訓是:滑點容忍度是一個可以被直接提取的量,把它隨手設成 1% 這樣的懶惰預設值,甚至更糟——在流動性稀薄的池子裡設成"自動"——等同於把這麼多錢留在桌上,任由觀察者拿走。在一個低流動性的池子裡,如果你自己的交易就能把價格推動好幾個百分點,預設滑點可能會讓出你名義金額中一個驚人的比例。

搜尋者利潤條件的一個簡化示意:

def sandwich_profit(x, y, gamma, victim_dx, victim_min_out, attack_dx, gas_cost):
    out1 = (y * gamma * attack_dx) / (x + gamma * attack_dx)
    x1, y1 = x + attack_dx, y - out1
    vout = (y1 * gamma * victim_dx) / (x1 + gamma * victim_dx)
    if vout < victim_min_out:
        return None  # victim would revert; no sandwich
    x2, y2 = x1 + victim_dx, y1 - vout
    got_back = (x2 * gamma * out1) / (y2 + gamma * out1)
    return got_back - attack_dx - gas_cost  # profit in WETH

搜尋者會對 attack_dx 做一個小型最佳化,找出能讓 vout >= victim_min_out 仍然成立的最大搶跑規模。那個最優點恰好卡在你的滑點底線上——換句話說,攻擊者能拿走的收益,恰恰被你留出的空間精確地限定了上限。

3. MEV 的分類:有毒與良性

"MEV"常被當作一個貶義詞使用,但並非所有 MEV 都是從受害者身上榨取價值。按照"是否有人因排序而變得更糟"來對策略分類會很有幫助。

搶先交易(Frontrunning)。 觀察到一筆待處理的有利可圖的交易,複製或搶先執行它,並支付更高的小費以確保先行成交。典型場景是:看到一筆會推動價格的大額買單,搶在它之前買入。這純粹是有毒的:受害者要麼拿到更差的價格,要麼其機會被直接竊取。

尾隨交易(Backrunning)。 把你的交易安排在目標交易之後緊接著執行,以利用它所創造出的狀態。關鍵在於,純粹的尾隨交易不會使目標交易的執行結果變差——因為它在目標交易之後執行,此時受害者的價格已經鎖定。如果你的大額 swap 把 WETH/USDC 池的價格打得偏離了 Binance 的價格,套利者會尾隨你把價格拉回一致,並賺取其中的差價。你並沒有受到傷害;事實上,正是這種套利維持著鏈上價格與更廣泛市場的一致性。尾隨交易是這個光譜中良性的一端——而且,正如我們接下來會看到的,現代 MEV 防護系統恰恰是被設計來把尾隨交易的利潤返還給創造出這一機會的使用者的。

三明治攻擊(Sandwiching)。 如上文剖析的那樣,是包裹在同一個受害者交易兩側的一筆搶跑加一筆尾隨。它天生就是有毒的:搶跑交易存在的唯一目的,就是惡化受害者的成交結果,好讓尾隨交易能夠收割它。

原子套利(Atomic arbitrage)。 單筆交易在一個場所低價買入某資產、在另一個場所高價賣出——比如 WETH 在 Uniswap 上比在 Sushiswap 上便宜——從而獲得無風險利潤,整個過程在一筆交易內要麼全部完成、要麼全部不發生(如果無利可圖就會回滾)。沒有特定的受害者;它只是在彌合市場留下的價格差異。通常被認為是良性的——它改善了跨場所的價格一致性——它也是本系列中原子套利與閃電貸一文的主題,閃電貸"無需自有資金"的特性讓這種策略格外鋒利。

清算(Liquidations)。 當一筆借貸倉位(Aave、Compound、Maker)的抵押率跌破閾值時,協議會向任何償還壞賬並沒收抵押品的人提供獎勵。搜尋者會爭相成為那個清算者。這裡確實存在一個"受害者"——被清算的借款人——但無論如何,他們都會按協議規則被清算;MEV 競爭主要決定的是能拿到這筆獎勵,並且透過競爭可能會壓縮獎勵的大小。對市場健康而言可稱之為中性偏良性,但對借款人而言並不愉快。

大致的分類圖譜:

策略 是否有受害者受損 結論
搶先交易 有毒
三明治攻擊 有毒
尾隨交易(純粹) 良性
原子套利 良性(改善價格一致性)
清算 借款人(按協議規則) 中性

有毒/良性的這條界線之所以重要,是因為整個現代 MEV 緩解技術棧本質上都是在試圖壓制有毒策略,同時保留——並重新分配——良性策略。你不可能在禁止排序博弈的同時,不破壞那些維繫 DEX 價格誠實的套利行為。訣竅在於把有毒的價值重新導流回它原本被奪走的那個人手中。

4. 簡史:從 gas 拍賣到 Flashbots

Flash Boys 2.0 與優先 gas 拍賣

這一現象在 2019 年的論文**《Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges》中被首次命名和度量,作者為 Philip Daian、Steven Goldfeder、Tyler Kell、Yunqi Li、Xueyuan Zhao、Iddo Bentov、Lorenz Breidenbach 和 Ari Juels。該論文提出了"礦工可提取價值"(miner extractable value)這一術語(後來隨著行業從工作量證明礦工轉向權益證明提議者,被推廣為"最大可提取價值"),並記錄了優先 gas 拍賣(priority gas auctions,PGA)**:機器人之間實時抬價競標 gas 價格,以贏得對某個有利可圖機會的排序權。

PGA 的病態特徵顯而易見。因為機器人手中唯一的槓桿就是公開的 gas 價格,它們會展開公開競價戰——在同樣短短幾秒鐘內,反覆以更高的小費重新提交交易——只為搶下一次套利或清算的機會。由此產生兩個醜陋的後果。第一,這會擁塞網路,抬高所有人的 gas 價格,無論是否與 MEV 相關。第二,更令人擔憂的是,論文指出,如果一個區塊中可獲取的 MEV 超過區塊獎勵本身,理性的礦工就會被激勵去重組鏈以竊取它,這直接威脅到共識穩定性本身。MEV 不僅僅是一個使用者公平性問題,它是對整條鏈的威脅。

Flashbots 作為應對方案

Flashbots 於 2020 年上線,目的正是化解 PGA 問題。它的核心洞見是:把排序拍賣從公共記憶體池移出,轉移到一個密封競價、鏈下的通道中。搜尋者不再廣播一筆交易並捲入一場公開的 gas 戰爭,而是組裝一個 bundle(捆綁交易)——一份按特定相對順序、原子性地要麼全部納入、要麼全部不納入的有序交易列表——並把它私下提交給一個區塊構建者(block builder),同時附上一份出價(通常以直接轉賬給提議者的形式支付,而不是透過 gas 價格)。構建者會從它收到的所有 bundle 和交易中,組裝出它能構建的價值最高的區塊,並將其提交給提議者。

兩件事同時得到改善。搜尋者不再向公共記憶體池傳送大量註定失敗的競價交易,從而降低了對普通使用者造成的 gas 價格外部性。而且,獲勝的 bundle 要麼完整落地,要麼完全不落地,消除了過去那些會堵塞區塊的"失敗搶跑"交易。競價戰依然在發生——只是它現在是構建者內部的一場私密拍賣,而不是鏈上的一場公開叫價混戰。

PBS:提議者-構建者分離

Flashbots 的架構被推廣為提議者-構建者分離(proposer-builder separation,PBS),這是當今以太坊上的主導模型。各個角色被拆分為:

  • **搜尋者(Searchers)**發現 MEV 機會,並將其打包成 bundle。
  • **構建者(Builders)**從 bundle 和公共交易中競相組裝出單個價值最高的完整區塊。
  • **中繼(Relays)**位於構建者和提議者之間,從構建者那裡接收完整區塊,只把區塊的頭部資訊加上一份價值出價傳遞給提議者,這樣提議者在看到區塊內容之前就要先做出承諾(防止提議者直接竊取這份 MEV)。
  • 提議者(Proposers)(驗證者)挑選出價最高的區塊頭,簽名,並收取報酬。

這一機制目前是透過 MEV-Boost 在協議之外實現的,這是絕大多數以太坊驗證者都在執行的中介軟體——大約 80%–90% 的區塊是透過 MEV-Boost 由外部構建者構建的。這套機制是有效的,但它依賴於可信的中繼。下一步,內嵌式 PBS(enshrined PBS,ePBS,EIP-7732),旨在把提議者-構建者分離直接嵌入以太坊協議本身,移除對可信中繼的依賴。截至 2026 年年中,它計劃在 Glamsterdam 升級中推出,目標是在 2026 年晚些時候實現主網啟用,支持者聲稱透過改善區塊的承諾方式以及縮窄有毒重排序的可乘之機,它能大幅削減使用者承受的 MEV 損失。在它真正上線之前,應把這些具體數字視為願景而非事實,但方向是明確的:協議正在把它多年來假裝不存在的那條 MEV 供應鏈納入自身。

MEV-Share:把價值還回去

對普通交易者而言,最具意義的進展是 MEV-Share,Flashbots 的訂單流拍賣機制。這個想法顛倒了黑暗森林的邏輯。你的交易不再對每一個捕食者可見,而是被私下傳送給一個 MEV-Share 節點,該節點只向搜尋者透露關於它的部分提示(你可以選擇透露多少)。搜尋者競價爭奪對你交易的尾隨權——記住,尾隨交易不會傷害你——由此產生的利潤中的很大一部分會返還給你,其餘部分則在搜尋者和提議者之間分配,以促成該 bundle 被納入區塊。

這種經濟學上的重新框定十分巧妙。一筆大額 swap創造了一個尾隨交易的機會;問題只在於誰來捕獲它。在黑暗森林的世界裡,搜尋者和構建者拿走了全部。而在 MEV-Share 之下,你自己的交易所創造的價值,大部分會被返還給你。Flashbots 面向消費者的 RPC 服務 Flashbots Protect 就是透過這套系統來路由零售交易的,2025 年它還在此基礎上加入了 gas 費退款,顯著提高了使用者能拿回的部分。這正是"再分配良性部分、壓制有毒部分"這一原則的具體落地。

5. 交易者的實用防禦手段

你不需要自己營運一個搜尋者來擺脫獵物的處境。按影響力大致排序:

有意識地按池子設定滑點

第二節已經確立了:你的滑點容忍度就是攻擊者的預算。由此可以得出兩條規則。第一,滑點的大小應該匹配池子的實際流動性和你這筆交易的價格衝擊,而不是習慣性地設成 1%。在一個深度充足的池子裡,0.1%–0.3% 的容忍度可能就綽綽有餘;在一個流動性稀薄的池子裡,要麼接受你無法安全地交易這麼大的規模,要麼把交易拆分成更小的批次。第二,在低流動性交易對上永遠不要使用"自動"/"無限制"滑點——那等於是一張簽了名的空白支票。如果一筆 swap 在較緊的容忍度下持續回滾,這是市場在告訴你,這筆交易對這個池子而言太大了,而不是在提示你去放寬底線。

透過私有 RPC 路由交易

最乾淨的結構性解決方案,是讓你的交易徹底不進入公共記憶體池。把你的錢包指向一個私有 RPC,讓交易直接轉發給構建者,而不是在網路中廣播:

  • Flashbots Protect——把你的交易送入 MEV-Share 系統,使其對搶先交易者永遠不可公開見,並把任何尾隨交易價值的一部分外加 gas 費退款返還給你。
  • MEV Blocker(由 CoW Protocol 等機構提供)——一個類似的私有 RPC 服務,可以防止搶先交易和三明治攻擊,並把尾隨交易利潤返還給使用者,採用免費使用的收費模式。

由於三明治攻擊要求攻擊者看到你待處理的交易並在其前面插入一筆搶跑交易,把你的交易從公共記憶體池中移除,就從根本上消除了搶跑的機會。尾隨交易的機會依然存在,但現在它會被拍賣返還給你,而不是被竊取。代價是對 RPC 營運方要有一點信任,偶爾納入速度會略慢一些——相比消除三明治風險,這通常是微不足道的。(一項 2025 年針對私有保護 RPC 的基準研究發現,它們在真實世界中的結算效果並非總是嚴格優於公開提交,所以這種效果雖強但並非普遍適用;對大多數零售規模的 DEX swap 而言,私有路由仍然是正確的預設選擇。)

優先選擇批次拍賣和基於意圖的交易場所

一些 DEX 設計從結構上就消除了排序優勢。CoW Protocol統一結算價格的批次拍賣方式結算交易——同一批次中的每一筆交易都以相同的價格結算,因此不存在可供利用的"第一"和"最後"位置,求解器(solver)之間競爭的是誰能給你最好的執行結果,而不是誰能圍繞你重新排序。基於意圖的系統——你簽署的是你想要什麼,而由求解器去尋找執行路徑,而不是你簽署一個具體的執行路徑——同樣剝奪了三明治攻擊的立足之地。如果你在做較大規模的交易,這些場所的價值遠超任何滑點上的微調。

理解為什麼 L2 有所不同

如今在大多數以太坊 rollup 上(Arbitrum、Optimism、Base),區塊由 rollup 團隊營運的單一排序器(sequencer)生成。這裡沒有供搜尋者監視的公開待處理交易記憶體池,只有一個可信方在決定順序。實踐中,大多數排序器按照先到先得的原則排序交易,並不會對自己的使用者發起三明治攻擊,所以在這些鏈上,三明治攻擊在協議層面基本上是不存在的。

但要精確地理解這裡的取捨:你之所以能免受去中心化的 MEV 提取,原因是你信任了一個中心化的排序方不去提取它。排序器完全可以搶跑你;它只是選擇(並且出於聲譽約束)不這麼做。這是一種暫時的均衡。隨著 rollup 去中心化其排序器——共享排序器、基於以太坊本身的排序(based sequencing)、L2 上類 PBS 的拍賣機制——同樣的記憶體池可見性和排序可出售的動態可能會重新出現,L2 的 MEV 問題也會從一個已解決的問題變回一個開放的設計難題。不要想當然地認為"我在 L2 上"就意味著"MEV 永遠碰不到我";它的實際含義是"目前有一個可信方承諾不這麼做"。

應該帶入本系列後續文章的要點

把本文主題濃縮為幾個承重事實:

  1. 一筆公共記憶體池中的 swap 等於公開的意圖加上一個可購買的排序位。正是這個組合,而不是任何單一漏洞,構成了整個問題的本質。
  2. 在恆定乘積 AMM 上,你的滑點容忍度是一個攻擊者可以提取的量,而三明治攻擊能拿走的收益,恰恰被你留出的空間精確地限定了上限。設定滑點是一個安全決策,而不是一個方便開關。
  3. MEV 並非鐵板一塊:搶先交易和三明治攻擊是有毒的尾隨交易和原子套利是良性的,甚至是有用的,因為它們維繫著鏈上價格與市場的一致性。好的緩解方案應該壓制前者,同時重新分配後者。
  4. 行業的應對經歷了從 PGA(公開 gas 戰爭,Flash Boys 2.0,2019 年)到 Flashbots / bundle / PBS(密封的私有拍賣),再到 MEV-Share(把尾隨交易價值返還給使用者),以及接下來即將到來的、內嵌在協議中的 PBS
  5. 作為交易者,你的防禦手段包括針對每個池子設定緊湊的滑點私有 RPC(Flashbots Protect、MEV Blocker),以及批次拍賣場所——同時也要意識到,L2 的安全性目前只是對排序器的一種信任假設,而不是物理定律。

原子套利與閃電貸》一文將站在搜尋者的角度,看這張桌子的另一面——良性提取是如何透過借入資本和原子性回滾這一安全網構建起來的。《Uniswap v3 集中流動性》一文將重新審視上文推導的恆定乘積數學,說明集中流動性如何重塑價格衝擊曲線——從而重塑我們在這裡推導出的三明治預算。記憶體池是一片黑暗森林。現在你知道其中潛伏的獵手是誰了。

參考文獻

  • Daian, Goldfeder, Kell, Li, Zhao, Bentov, Breidenbach, Juels (2019), Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges. arXiv:1904.05234.
  • Robinson & Konstantopoulos (2020), Ethereum is a Dark Forest.
  • Flashbots documentation: MEV-Boost, MEV-Share, Flashbots Protect, MEV refunds (docs.flashbots.net).
  • Ethereum PBS / EIP-7732 (enshrined proposer-builder separation), Glamsterdam upgrade materials.
  • MEV Blocker (mevblocker.io); CoW Protocol batch-auction design.
  • Private MEV Protection RPCs: A Benchmark Study (arXiv:2505.19708, 2025).
免責宣告:本文提供的資訊僅用於教育和參考目的,不構成財務、投資或交易建議。加密貨幣交易涉及重大損失風險。

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

緊跟市場步伐

訂閱我們的時事通訊,獲取獨家 AI 交易見解、市場分析和平台更新。

我們尊重您的隱私。您可以隨時退訂。