抗 MEV 方案可歸爲兩大陣營,MEV 可提取型旨在實現對權力再公平分配,而 MEV 可消除型則利用加密手段實現跨維壓縮權力尋租空間。

撰文:Harper Li、Jinbin Xie
編譯:Yahile

前言

在 2020 年 8 月,Paradigm 的交易員 Dan Robinson 嘗試收回原本質押在 Uniswap 的流動性代幣。爲此他部署了 setter 和 getter 兩個合約,並先後調用兩個合約實現收回流動性代幣。但其合約調用並沒有成功完整實施,反被攻擊者發現並捷足先登。攻擊者執行了他原本要調用的合約。同年次月,Sam Sun 發現了 lien finance 的合約漏洞問題,該漏洞一旦被攻擊可造成 2.5 萬個 ETH 的鉅額損失。作者嘗試拯救 lien finance 的合約漏洞,但卻擔心遭遇 Robinson 相似的問題。若攻擊者發現他的拯救計劃,攻擊者將可以發現此漏洞、執行攻擊並拿走平臺上的 2.5 萬個 ETH。

爲此,儘管此次拯救行動事發突然,Sam 聯繫多方人士,並最終在星火礦池的幫助下躲避攻擊者監聽、攻擊,成功實施漏洞修復。星火礦池在此事件中將執行的交易放進其私密的 mempool,防止被鏈上的攻擊者監聽。而這同時也是決定兩個事件成敗的根本原因。

這兩個事件揭露了當前的區塊鏈是黑暗森林這一事實。實際上區塊鏈節點網絡構成的黑暗森林中存在一批伺機而動的套利機器人 / 攻擊者。所有等待被打包的待確定狀態交易(pending transaction)在等待池(Mempool)中被曝露在黑暗森林中。攻擊者可查看追蹤每筆交易、每一個內部合約調用以及每一條指令,並對這些交易進行當前鏈上最常見的搶跑和三明治攻擊。

我們認爲鏈上攻擊產生的本質原因在於區塊鏈的設計。

  • 首先是區塊鏈的 mempool 設計,所有交易被髮送出去後,並不是直接由礦工打包,而是需要先暫時進入 mempool。mempool 包含着待確認交易(pending transactions),且由於 mempool 具有公開性,任何人可以監聽 mempool 的每筆交易、每個調用的函數。這爲攻擊者提供了監聽交易事件的條件。
  • 其次區塊鏈出塊時間爲攻擊者提供了執行時間。據 Etherscan 數據顯示,目前以太坊的平均出塊時間爲 13s。

爲以太坊黑暗森林建造護欄,全景式解讀八項抗 MEV 方案以太坊平均出塊時間,來源:Etherscan

在 2019 年的 《Flashboy 2.0》 這篇文章中,首次提到了礦工可提取價值(MEV:Miner-extractable value)這一概念:指礦工可以通過在他們生產的區塊中包含、重新排序、插入或忽略交易來獲得的額外利潤。經過區塊鏈這兩年的發展,以及鏈上活動的研究進程推進,目前 MEV 已經延伸爲最大可提取價值(Most extractable value)。

當前 MEV 掠奪戰參與者包括非礦工和礦工兩者。非礦工主要指套利 / 清算等機器人,礦工指負責挑選交易並且打包上鍊的個體,礦工擁有的權力是非礦工羣體無可比擬的。我們歸納總結了如下圖表,以展示現有 MEV 掠奪的相關特徵。

爲以太坊黑暗森林建造護欄,全景式解讀八項抗 MEV 方案MEV 掠奪特點彙總,來源:Huobi Ventures

MEV 解決方案尚存可提取型、可消除型

目前如何解決 MEV 掠奪問題,保護普通交易者的利益成爲了 MEV 這一領域中爭相研究、開發的課題。目前主要有兩方態度,一是認可 MEV 存在的不可避免性,並通過提取解決當下的困境,二是從交易源頭抹殺或降低 MEV。基於此,本篇報告分別從 MEV 提取、MEV 消除兩種思路對現有 MEV 解決方案進行討論。

提取 MEV 的解決方案

從目前已研究結果來看,關於提取 MEV 方案目前有如下三類方式 :

  • 隱私交易:通過將交易存入隱私 mempool,而非公開型的 mempool,以躲開攻擊者的監聽。
  • FRaaS:FRaaS (Front-running as a Service)通過提取交易的 MEV 並進行利潤再分配的方式保護交易者利益,同時礦工由於有賞金激勵將放棄攻擊。
  • MEV Auction:將礦工的挑選交易權力和交易排序權力進行分拆,礦工仍然保留挑選交易的權力,而交易排序權力則通過拍賣的方式拍賣給第三方。

爲以太坊黑暗森林建造護欄,全景式解讀八項抗 MEV 方案MEV 可提取型的解決方式,來源:Huobi Ventures

隱私交易

正如前文所述,交易在 mempool 中等待被礦工打包,同時也面臨被監聽、攻擊的風險。因此有些協議希望以繞過公開的 mempool 的方式,讓交易在隱私的 mempool 裏排隊等待打包,使其無法被廣播至其他節點。

提供這類服務的協議目前有 1inch 的 Stealth Transactions,太極網絡以及 bloXroute。

1inch 的 Stealth Transactions 目前僅在 1inch 錢包 ios 客戶端提供。目前這種方式面臨交易可能被打包進叔塊從而被公開。

太極網絡由星火礦池創立,用戶可以通過太極網絡提供的接口直接發送交易到星火礦池的隱私池。由於星火礦池並不對這筆交易進行網絡廣播,這筆被髮送出去的交易在未被正式確認前,在 Etherscan 上無法看到該筆交易的狀態。

bloXroute 提供隱私通信功能,允許交易在不被暴露情況下直接到達礦工手中。

bloXroute 的 BDN (區塊鏈分發網絡)通過自己的網關軟件將區塊鏈節點與 BDN 鏈接,網關軟件和區塊鏈節點首先翻譯從區塊鏈進入 BDN 的信息。然後,在第二層,它會進行區塊壓縮。通過極大縮小區塊大小,使其隨後更高效地在區塊鏈分發網絡 (BDN) 中發送 / 傳輸。

MEV Auction——Optimism

MEV Auction 最早出現於 2020 年年初,由 Karl Floersch 提出。Karl Floersch 是 L2 方案 Optimism 的 CTO。MEVA 成爲契合 Optimism 的一個良好抗 MEV 的方式。

談及 MEVA 需先說明礦工在 MEV 掠奪戰中作爲最大贏傢俱有的兩大權力交易抉擇權力和交易排序的權力。MEVA 機制在技術上將礦工的兩大權力進行拆分:礦工保留原有的交易抉擇權力,但選擇之後礦工不可對交易進行排序,而由一個名爲 Sequencer 的角色對礦工挑選的交易進行排序權力。礦工通過拍賣過程選取唯一的 Sequencer。

爲以太坊黑暗森林建造護欄,全景式解讀八項抗 MEV 方案MEVA 流程圖,來源:ethresear.ch

在 Optimism L2 系統中,礦工所具有的角色(交易排序和驗證區塊)被劃分爲兩個部分。Sequencers 管理交易排序,Validators 將其添加到 Optimism L2 區塊鏈上。 該方案契合 Layer2,是由於 L2 架構上早已存在 Sequencer。交易被提交給「Sequencer」序列器,由序列器生成保證交易執行和排序的已簽名收據。

但 MEVA 這一方式目前仍然存在問題:

  • Sequencers 之間存在串通、Sequencer 自身作惡,造成人爲壓低拍賣價格。針對這一問題,目前的解決方案是開發一個開源的 sequencer 軟件,增加用戶參與 sequencer 競價活動的容易度。
  • 無法完全避免礦工同時仍然保有兩個權力:sequencer 可以自己成立礦池。

FRaaS

Front-running as a Service 指通過提取 MEV、並將其進行利潤再分配的方式解決 MEV 問題。這一方式本質上通過補償交易者以及讓利礦工、攻擊者,使多方達成合作,造成多贏局面。在 FRaaS 方案中,攻擊者變成了搜尋者,搜尋者負責搜尋交易中可能出現的 MEV,並通過一定策略完成 MEV 提取。目前採用該種抗 MEV 方式的協議較多,是當前較爲受歡迎的解決 MEV 的方式。

Flashbots

Flashbots 是一個專門針對 MEV 的研究及發展平臺,目前主要有三個垂直業務:

  • Flashbots Auction:礦工和搜尋者之間的隱私通信渠道。
  • Flashbots Data:檢測 MEV 數據情況;目前具體產品是 MEV-Explore 和 Dashboard。前者目前捕捉覆蓋 8 個主要的 defi 協議。
  • Flashbots research。:一個開放、透明和合作的研究平臺,解決與 MEV 有關的短期和長期的研究問題。

Flashbots Auction 構成包括:MEV-Geth 和 MEV-Relay,前者是 go-ethereum 以太坊節點客戶端,後者是一個交易捆綁中繼器。
三個主要的角色:搜尋者(searcher)、中繼(relayer)、礦工(miner)。三者之間傳送的信息是 Flashbots Bundle 交易,每個 bundle 交易內容包括一個交易列表(指明發送者希望打包上鍊的多筆連續交易,包含先跑 / 尾隨等交易),區塊高度,最小超時時間、最大超時時間。

  • 搜尋者 Searchers

目前 Flashbots 的搜尋者可劃分爲三類人:套利、清算機器人,尋求搶跑防禦的交易者,以及以太坊 Dapp,如 mistX。由 searchers 直接向 relayers 提交 bundles,保證該筆交易不被網絡中其他節點發現。

發送者發送交易時需向礦工支付一定小費,這一小費並不是以 Gas 費用支付的方式實現,而是通過 coinbase 交易,向出塊者(即礦池)支付 ETH 作爲分傭。這種支付方式保證了即使交易失敗也不需要支付成本,但這個方式存在攻擊隱患。

  • 中繼 Relayers

從 searchers 處收集 bundles 併發送給礦工。在這一個過程中 relayers 本身可能也成爲攻擊者,因此此處需要信任 relayers 將誠實行動。

relayers 除了隱私傳送 bundle 交易外,還具有緩解 DOS 威脅的功用。由於 searchers 發送失效的 bundles 也爲零成本,因此可能出現 searchers 可以隨意提交 bundles,即這就爲他們提供了用無效的 bundles 向網絡發送垃圾郵件的能力,從而對其他網絡參與者形成拒絕服務攻擊。由於以太坊節點沒有能力自行處理這種水平的負載,中繼器成爲緩解這種 DOS 威脅的手段。

  • 礦工

礦工作爲接收 bundle 交易的最終人,通過運行 MEV-Geth 客戶端接入 Flashbots 網絡。

礦工每個區塊只能打包一筆 bundle 交易,因此爲了使自己利益最大化,礦工將選擇由 searchers 支付小費最高的 bundle 交易。據悉 Flashbots 目前有計劃開發在一個區塊裏面打包多個 bundles。

同樣此處無法完全信任礦工。礦工在接觸到 bundle 的內容後,可通過解析交易,通過可以重新排序或增加交易進行 MEV 提取。

ArcherDAO

ArcherDAO 擁有兩個獨立的產品:Archer Relay 和 Archer Swap。但兩個產品均具有抗 MEV 特徵。

  • Archer Relay

Archer Relay 與 MEV-Geth 客戶端兼容,使得用戶以搜尋者的角色參與 Flashbots 生態。

  • Archer Swap

Archer Swap 以提前端交易界面形式出現,允許用戶直接提交 token 交易。Archer Relay 網絡中的 backrunning bots 將針對在 Archer Swap 上產生的交易進行 MEV 搜尋、提取、捆綁等行爲,並通過 Flashbots+Archer relayer 發送給礦工。

ArcherDAO 利用了 Flashbots 的技術完成抗 MEV,但仍然與 Flashbots 存在不同點。ArcherDAO 的產品將搜尋者與交易者的角色進行更加清晰的化分,Archer Relay 爲搜尋者轉發 bundle 交易,此處的搜尋者任務爲搜尋各個 DEX 中 MEV 提取的機會。而 Archer Swap 針對尋求 MEV 防禦的交易者,這一交易者在 Archer Swap 上進行交易。搜尋者與交易者的角色的化分體現於 Archer Relay 的搜尋者無法接觸通過 Archer Swap 發佈的交易,只有 ArcherDAO 內部的 backrunning bots 可以。

其次是與礦池合作方不同:目前 ArcherDAO 明確與 2miners、Ezil 達成合作;Flashbots 的三月份的報告宣稱其已經與 12 個礦池合作。

mistX by alchemist

alchemist 是由 @thegostep 在 2 月發的一條 twitter 開始,沒有開發團隊,沒有路線圖,完全由社區推動。@thegostep 活躍於區塊鏈領域,是以太坊、Ampleforth 的核心開發者之一,同時也參與了 Flashbots。alchemist 團隊有 5 個核心項目正在進行:Crucible、Copper、mistX、sandwitched 查詢和 Crucible NFT Design。

mistX 同樣採用 Flashbots 技術,保護用戶發起的交易不會發到公開的 mempool,而是 bundle 在一起進入 Flashbot 系統。此外該團隊還開發的 sandwiched.wtf 查詢工具可用於查詢某一個智能合約賬戶是否存在被進行三明治攻擊過。

KeeperDAO

KeeperDAO 整體項目分爲三個主要業務線:Hiding Game、Coordination Game 和 Incentive Game。這三個業務分別解決三個問題:Hiding Game 解決現有交易以及清算問題中的 MEV 問題,Coordination Game 則主要激勵 keepers 之間進行合作,Incentive Game 主要關注 $ROOK 和平臺治理問題。這三個業務之間以一種有機的方式結合,互相支持彼此。

KeeperDAO 同樣認爲由於 swap 必不可免產生滑點,攻擊者可通過先跑 / 尾隨交易進行攻擊,對 traders 造成損失。且由於交易被曝露在 mempool 中,容易造成多方競爭或雙方互相「競價」的局面,引發 Gas war。

針對這兩種情況 KeeperDAO 認爲可讓交易者與 Keepers 一起合作。其主要過程爲交易者首先提交交易給 KeeperDAO,由給 KeeperDAO 內的 Keepers 分析該筆交易並判斷是否可以通過先跑 / 尾隨策略獲得收益。若這一交易存在可獲取收益,keepers 根據平臺預先規定的交易排序進行執行這筆交易,獲得其中利益。獲取的利益需要返還給項目平臺,由項目進行每日彙總分配。

對交易者而言,他們在交易中獲得了更好的價格,因交易者的交易滑點可通過平臺鑄造的 $ROOK 被抵消。可見交易者與 keepers 合作帶來了雙贏局面。

在整個交易體系中,KeeperDAO 將每隔 100 個區塊進行一次排序,排序結果決定現有 Keepers 的交易順序。由於定序交易,keepers 避免遭受 gas war 的困擾。但是,KeeperDAO 之內的 Keepers 仍然需要與 keeperDAO 之外的交易者競爭。

BackRunMe by bloXroute——MEV 的利益分配

bloXroute 除了前文所述的隱私交易外,還利用了 DEX 交易滑點這一特徵開發出針對 MEV 的交易設計。

具體的實現過程如下:

  • bloXroute 發送 metadata 給搜尋者,由搜尋者執行 backrun 交易。
  • 搜尋者將根據交易創建併發送 bundles,bloXroute 檢測 searcher 的回覆。
  • bloXroute 以隱私通訊方式發送收益最高 backrunning MEV bundle 給 pools。
  • 當然若搜尋者發現不存在 backrun 的機會,則這筆交易將變成普通的隱私交易發送到礦工手中。

爲以太坊黑暗森林建造護欄,全景式解讀八項抗 MEV 方案

其他

  • MiningDAO

這一項目允許任意以太坊用戶 propose 整個區塊給礦工,同時每個區塊附有一定獎勵,若成功被打包上鍊,則該獎勵將支付給礦工。因此礦工爲了自己的利益最大化,將選擇獎勵最高的區塊。與前文所述的幾個協議不同,該協議針對的對象爲下一個區塊,而非某筆交易。

如下圖顯示,該項目將競爭下一個區塊視爲訂單市場 DEX,每個用戶可以提交一個可供打包的區塊,此處即訂單對象,組成區塊訂單市場 DEX。用戶支付的成本爲每個區塊訂單附帶的由用戶支付的獎勵賞金,而礦工從這個區塊訂單市場中挑選獎勵賞金最高的區塊訂單。一旦成交,則礦工將用戶提供的區塊訂單打包上鍊,同時獲得用戶支付的獎勵賞金。

  • BackBone Cabal

該協議針對 sushiswap 的項目,用戶向 YCabal 發送交易,產生滑點等套利機會,後由礦工進行先跑 / 後跑等策略。

提取 MEV 方案的優缺點

這類陣營認爲 MEV 由用戶產生,是一個不可避免的鏈上交易特質,基於此該陣營的方案對 MEV 採用接納態度保護用戶。目前該陣營存在三大類協議,三類方案具有各自特色:隱私交易方案通過繞過公開 mempool、繞過公開監聽保護用戶的 MEV 不被提取;MEVA 將礦工的權力進行技術劃分保護用戶權益;FRaaS 則對將 MEV 提取作爲一項服務並進行利潤劃分實現多贏局面。

爲以太坊黑暗森林建造護欄,全景式解讀八項抗 MEV 方案

消除 MEV 的解決方案

MEV 的出現,體現了作爲特權階級的礦工,利用對區塊的特權進行權力尋租的產物。前文介紹 MEV 提取型方案覆蓋超過 10 種協議,由於這些協議認爲 MEV 不可避免,因而採取擁抱 MEV 的態度解決現有 MEV 問題,若以鴿派形容這一陣營,則另有一派作爲鷹派認爲 MEV 可消除。本文這部分將闡述作爲鷹派的開發者們如何選擇利用多種手段將權力尋租的空間降至最低乃至消滅。

如何使 MEV 最小化或者阻止其出現?所謂礦工可提取價值(MEV),是指礦工(或驗證者、排序器等)通過在其生產的區塊內任意包含、排除或重排序交易等能力所獲得利潤的一種度量。所以目前市面上的抗 MEV 協議設法在交易提交到礦池的時候,進行採取措施。目前已總結如下四種方式:

  • 鏈內操作
  • 鏈下操作
  • 加密
  • 新型交易模式

鏈內操作

Chainlink 方案 -- 無須去改變 L1 主鏈,將交易隊列信息和預言機報告提交給預言機,生成序列號和 Nonce 值,並在預言機網絡進行廣播。同時預言機可以監控消息池,主動獲取交易隊列。後續智能合約可以從預言機獲取正確序列。

LibSubmarine 方案 -- 鏈上智能合約,對交易信息進行隱私保護,避免被套利者發現。

Veedo 方案 -- 利用 VDF (時間延遲函數),利用時間鎖將交易信息延遲一段時間,然後再公開。套利者無法及時獲取套利空間。

鏈下操作

Automata 方案 -- 交易隊列通過加密中間件服務,依據當前的交易隊列生成唯一的簽名,礦工無法對交易隊列插入新的交易,否則簽名會發生變化。此時 Dex 在接收交易隊列時候,即可識別到簽名的變化,即可拒絕該交易。

Arbitrum 方案 - 有些方案覺得不能完全阻止 MEV 的出現,儘可能最小化的阻止 MEV 的出現。將交易聚合打包在智能合約的 CallData 中,這樣 L1 對交易無法做修改。在 L2 層,在最短 15 分鐘窗口內完成交易的結算。整個流程儘可能減少 MEV 的出現。

Vega Protocol 方案 -- 建立全新的主鏈,在鏈本身層面進行,在單位時間內,對最先廣播,被節點知曉最多的交易優先執行," 如果有一個時間 t,使所有誠實的驗證者在 t 之前看到 a,在 t 之後看到 b,那麼 a 必須被安排在 b 之前 "。

加密

Sikka 方案 -- 作爲隱私中間件,對交易信息和自身消息池進行加密,交易被 2/3 節點打包驗證之後,進行公開。

Shutter Network 方案 -- 利用 DKG 分佈式密鑰生成服務,在交易發出之前進行加密,通過礦工消息池之後,確認被打包在區塊之中,再進行對交易信息的解密。

新型交易模式

CowSwap 方案 -- 兩個人同時持有互相想要的資產,即可直接匹配交易,而無需做市商或流動性提供者撮合交易。這樣即可以爲個人交易者帶來最佳的價格,也免除通過做市商或流動性提供者產生的手續費。CowSwap 上允許用戶利用 CoW 的方式直接交易。無法通過 CoW 結算的訂單直接通過自動做市商 (AMM) 匹配交易。要是批量拍賣訂單中有 CoW 訂單。小額單完全匹配後,剩餘沒有通過 CoW 匹配的訂單,便會交由 CowSwap 整合的流動性市場匹配。整個訂單結算價格以通過外部流動性獲取的剩餘訂單價格爲準。

消除 MEV 方案 / 協議對比:

爲以太坊黑暗森林建造護欄,全景式解讀八項抗 MEV 方案

消除 MEV 解決方案的優缺點

不管是礦工,驗證節點,排序器都是對順序有特權的角色,從以下方式去消除 MEV 的出現,都會存在多多少少的優缺點。

  • 利用 L2 第三方公證組織,對確定的交易序列進行全網公開並進行標記,公開程度越大,越難被篡改。但是需要不同的 DeFi 協議支持該公證結果並且配合。
  • 利用對交易信息進行加密,讓容易被套利的信息,隱藏在黑暗森林中,讓套利者無法進行追蹤。但是對信息的加密和解密,帶來的資源消耗,從而導致交易體驗上的損耗,也是需要考慮的因素。
  • 新的交易模式,在模式上進行範式轉移,卻需要經過市場去檢驗是否能成功。

結論

區塊鏈經過十餘年發展,變得愈加成熟和複雜,也因此產生越來越多系統性問題,比如本文粗略探討的 MEV 問題。正如 Paradigm 的 《MEV and Me》 文章中所描述的,相較於最早出現的比特幣,後來出現的以太坊由於其應用層行爲的高度複雜性而產生的 MEV 遠高於比特幣。

目前 Flashbots 所捕捉到的 MEV 也僅覆蓋 8 個協議,且每個協議上所識別到的 MEV 也限於可被先跑 / 後跑 / 三明治等提取的種類。

Flashbots 通過 MEV 這一現象的研究加深了用戶對區塊鏈的瞭解。用戶開始瞭解自己在區塊鏈上的行爲相對應的風險收益結構,並反之通過開發、改進協議使區塊鏈更加具有真正的使用價值。

本文粗略探討了市面上現有的各種針對 MEV 的解決方案,並將其歸納爲兩大陣營。首先 MEV 可提取型,旨在實現對權力再公平分配,但也難以避免屠龍少年終成惡龍的局面。其次是 MEV 可消除型,則講述了不管如何在黑暗森林中隱身潛行、權力的再轉移,不如真正利用加密手段實現跨維壓縮權力尋租空間。

來源鏈接:huobi-ventures.medium.com