淺談礦工可提取價值MEV
00-1010mev是礦工可提取值的縮寫,即礦工可提取值。2019年,智能合同研究員菲爾黛安和他的同事們撰寫了Flash Boys2.0論文,并創造了“礦工可提取價值”(MEV)這一術語?,F在人們稱之為最大可提取價值——最大可提取價值。
知道創宇區塊鏈安全實驗室,這次談MEV,是充滿研究意義的。
00-1010
前言
MEV 概念與原理
MEV指的是區塊鏈礦商在未經許可的情況下,通過重新排序、審核或插入交易可以提取的總價值。簡而言之,礦工對其區塊內所有交易的順序擁有控制權,可以隨意控制交易的順序,從而獲得利益。
自2020年1月1日起,根據官方統計,提取的MEV至少價值9億美元。不難發現,提取的MEV正以n倍的速度快速增長,正如丹羅賓遜《Ethereum is a Dark Forest》文章中提到的,MEV在未來只會更可怕。
一、 什么是MEV?
我們可以把比特幣、以太坊等區塊鏈網絡比作一本書,“礦工”負責把要處理的交易信息打包成塊,然后全網驗證,加入到全局的書中。記錄交易信息的順序完全由礦工決定。
因此,為了獲得更多的利潤,礦商往往根據氣成本來決定交易順序。礦工根據自己決定交易順序的權利獲得額外的利益,這就是MEV。
雖然MEV最初被稱為“礦工可提取價值”,但現在人們更傾向于稱MEV為“最大可提取價值”,因為現在大多數MEV行為都不是由礦工發起的,而是由DeFi交易員和套利機器人取代的。
在以太坊的內存池中,MEV搜索者使用套利機器人來監控未決交易,并試圖利用他們創造的盈利機會。
從技術上來說,產生MEV的原因是,在傳輸到網絡的交易信息和在區塊鏈中打包到數據塊的實際交易信息之間存在延遲。
但是,處理方法是建立一個共享的掛起開放訪問內存池(mempool)。在事務被打包到一個塊中之前,事務將被存儲在mempool中。開放的mempool會讓別有用心的人故意去聽mempool,尋找獲利的機會。
這些包括插入新事務和重新排序事務序列。這些都說明礦商對交易的包裝有很大的控制力。
二、為什么會出現MEV問題
1、搶跑(front-running)
以太坊的內存池中有一個訂單交易,攻擊者利用略高于這個訂單的氣費進行搶先交易。此時,訂單可以以低于市場價的價格成交。
例如,在2021年10月29日,幾個MCN-uniswap池被黑客攻擊。主要原因是代幣契約的燒幣功能存在權限問題,任何人都可以在池中燒MCN。
攻擊者在池中焚燒了大量MCN代幣,導致池中MCN代幣價格失衡。攻擊者通過將預先交換的MCN代幣換成大量wet代幣來獲利。
然而,攻擊被MEV機器人捕獲,在攻擊者完成攻擊之前,MEV機器人獲利17.2萬美元。(https://ethers can . io/tx/0xd 091 AFE 6b 37256 ebb 3 DD 703 a 9646 b 27 AAF 7 ce 7 Fe 8832778886ba 0216361 f7f 00)
2、尾隨(back-running)
以太坊內存池有一個。
筆訂單交易,攻擊者提交一筆 gas 費略低的訂單,當前一訂單交易后,立即跟著交易,以此獲利。
例如搜索者機器人在一個池子中發現有一大筆買入訂單,由于池子中代幣量減少,所以導致代幣價格上漲,此時攻擊者緊跟著賣出代幣到池子中進行獲利。
3、三明治夾擊(sandwiching)
三明治夾擊是搶跑和尾隨的一種結合,攻擊者在交易者訂單前后分別安插兩筆交易,在交易者交易前搶先以更低的價格交易,在交易者完成交易后,緊接著將訂單以跟高價格售出而獲利。
二、主要防范策略
MEV 表面上看是礦工和搜索者雙雙獲利,皆大歡喜的事情。然而這種獲利可以卻被一些人看作是偷竊,因為此獲利方法是以損失普通交易者的利益而來,通過 MEV 提取得來的獲利全是取自每一位交易的普通用戶。
此外,MEV 還會造成區塊網絡的擁堵和 gas 費增長問題。隨著越來越多的套利機器人進行 gas 價格競爭,無形中就消耗著區塊鏈網絡帶寬造成網絡擁堵,gas 價格競爭愈演愈烈導致 gas 價格劇增。
由 gas 使用量圖我們不難看出,從 2021 年五月開始,gas 使用量有著明顯減少的趨勢。這正是因為 flashbots 的 MEV-Geth 日漸普及,這也是防范 MEV 的主要措施之一。
Flashbots Auction 概念與使用
一、 Flashbots簡介
Flashbots 成立于 2020 年 11 月,是一個針對 MEV 的去中心化研究和開發組織,致力于公開化MEV提取細節,使其透明化,民主化。
Flashbots 的項目業務分 3 個大類:flashbots auction,flashbots data,flashbots protect,flashbots auction 在以太坊用戶和礦工之間提供了一個私人通信渠道,用于在一個區塊內有效地傳達首選交易順序,flashbots data 則是用來掃描以太坊MEV數據并存儲在 Postgres 中以供查詢和分析。
flashbots protect 是將 flashbots auction 中除去客戶端等復雜部署剔除,抽象出交易捆綁打包等功能,讓 Metamask 等錢包可以集成 flashbot auction 的MEV保護功能。
flashbots 核心項目Flashbots Auction 包括 mev-geth,一個位于 go-ethereum 客戶端之上的補丁,以及 mev-relay,一個交易包中繼器。
二、MEV-Geth 和 MEV-Relay 的運作流程
1、使用者可使用 MEV-Geth 中的交易捆綁,其中包含:交易搜索者和/或其他用戶的內存池中待處理的一個或多個事務。
交易搜索者通過智能合約調用向礦工支付的小費函數。并且,Flashbots 捆綁包將始終位于該區塊的頂部。
2、MEV-Relay 接收捆綁交易,并將其發送給所有列入白名單的 MEV-Geth礦工。
3、礦工從 MEV-Relay 接收 Flashbots 捆綁包,并在 MEV-Geth 中對其進行處理。
4、MEV-Geth 從發送的所有捆綁交易中選擇利潤最高的捆綁交易上鏈,將捆綁交易放到一個新的區塊的頂部。
5、然后,MEV-Geth 將包含此捆綁包的區塊與不包含任何捆綁包的區塊進行比較。
6、僅當交易搜尋者的捆綁包包含在一個區塊中時,與他們的捆綁包相關的小費才會被支付。
7、如果區塊沒有包含捆綁交易,該交易沒有上鏈,則交易搜索者和/或其他用戶不會花任何錢,即交易失敗或者取消交易都無需支付 Gas 費。
Flashbots Auction 架構介紹及演示
Flashbots Auction 架構提出了一個由三個不同方組成的網絡。架構抽象出三方角色構成網絡。代表用戶的searcher,代表代理服務的relay 中繼器,代表礦工的miner,三者讓客戶可以使用這些方專門執行維持該通信渠道所需的部分工作。
Searcher
Seacher 代表想要利用 MEV 的以太坊用戶,他們可以使用 Flashbots 私人交易池,而不是常規的 p2p 交易池。這些用戶監控著鏈的狀態,并將可套利的交易捆綁包(bundle)發送至中繼器。
目前生態上的 searcher 一般有以下幾類:
1、尋求快速、無風險訪問區塊空間的以太坊機器人運營商(例如,套利和清算機器人)
2、尋求交易搶先保護的以太坊用戶(例如,Uniswap 交易者)
3、具有高級用例的以太坊 Dapps,例如帳戶抽象或無氣體交易(例如 tornado.cash 和 misxX)
Relay
交易打包成 bundle 后,會通過幾個叫 Relay(中繼器)的基礎設施傳播到各個 server,并將其轉發給各個 minner 節點。
當 searcher 使用 flashbots 服務,利用 relay 來發送他們的交易偏好,他們就不需要為失敗的交易出價付費。由于以太坊節點無法自行處理這種級別的負載,中繼器便承擔了緩解這種 DOS 威脅功能。
除此了解決垃圾交易問題,中繼者隱私也是 Flashbots Auction 架構必須解決的問題,以便實現完全的去中心化。目前,Flashbots 組織運營一個名為 MEV-Relay 的中繼器。
下圖則為MEV-Relay入口演示。
所獲得的區塊高度如圖:
中繼服務擁有對捆綁內容的完全訪問權限,可以任意重新排序,插入,審查發送給他們的捆綁包,還可以通過發送無效捆綁包來 DOS 礦工。所以不建議使用外部中繼器集成,這會產生很大的系統性風險。
Miner
礦工是最終收集所有捆綁包并產生區塊的一方。傳統礦工會使用以太坊客戶端進行區塊的挖掘,而我們的Miner使用flashbots提供的特殊維護的MEV-Geth客戶端,實現捆綁包的接收和交易的排序。
Flashbots 包中包含的信息允許 searcher 向礦工發送他們需要的交易順序以求利益最大化,這樣可以使礦工實現 MEV 組合獲利,而不是在單一維度上爭奪優先權。礦工可以評估所有收到的捆綁包,并將不沖突的捆綁包組合起來,以盡可能產生最有利可圖的塊。
以下為 Minner 打包交易的運行結果簡析。
MEV-Geth 節點會第一時間評估傳入的捆綁包,并選擇利益最大化的捆綁包放在區塊的頂部。然后該節點將 Flashbots 塊與普通塊進行比較,并開始挖掘最有利可圖的塊,測試如下。
運行結果如下
Searcher 會對針對即將打包至下一個區塊的交易進行監視,會使用更高的 gasprice,將可套利的交易捆綁包發送,并讓礦工搶先打包至區塊,Searcher 清楚地表達交易偏好是成功拍下區塊的重要原因,這也有效避免了網絡其余部分的負面外部性。
總結
MEV 的興起導致了一系列的問題,盡管 MEV 為礦工帶來了額外的利潤,同時也損失了其他用戶的利益,引起了以太坊環境的變化。
flashbots 為 MEV 問題設置的解決辦法也并非完美,盡管套利者之間的競爭被移到了另一個網絡中,解決了以太坊網絡擁堵和 Gas 費劇增的問題,從客觀角度來看,MEV-Geth 是否違背了去中心化的原則。
新的 MEV 提取策略不斷被發現和創建,當前對 MEV 問題的防范措施也可能會過時,對于 MEV 問題的研究仍需要我們不斷地探索。