淺談礦工可提取價值(MEV)
前言
MEV 是 Miner Extractable Value 的縮寫,即礦工可提取價值。2019 年,智能合約研究員菲爾·戴安(Phil Daian)和他的同事們一起撰寫了 Flash Boys 2.0 論文,並創造了"礦工可提取價值"(MEV)一詞。現如今,人們將之稱為 Maximal Extractable Value -- 最大可提取價值。
知道創宇區塊鏈安全實驗室 本次淺談一下充滿研究意義的 MEV。
MEV 概念與原理
一、 什么是 MEV?
MEV 是指區塊鏈礦工可以通過重新排序、審查或插入交易而無需許可地提取的總價值。簡而言之就是礦工對其所在區塊的一切交易的順序有控制權,能夠隨意控制交易的順序,並以此來進行獲取利益。
自 2020 年 1 月 1 日起至今,據官方數據統計,提取的 MEV 至少價值 9 億美元。不難發現,提取的 MEV 正成 N 倍瘋漲,就如 Dan Robinson 的《Ethereum is a Dark Forest》一文中提到的那樣,MEV 在未來只會更加可怕。
二、為什么會出現MEV問題
我們可以將比特幣、以太坊等區塊鏈網絡比作一本账本,而“礦工”負責將待處理的交易信息打包成區塊,然後由整個網絡進行驗證,並添加到全球的账本中,對於交易信息記錄的先後順序完全是由礦工決定的。
由此,礦工們為了獲取更大的利潤,往往會根據 gas 費用的高低來決定交易順序;礦工根據自己決定交易順序的權利來獲取額外的利益,這種獲得的收益就是MEV。
盡管最初MEV被稱為“礦工可提取價值”,但現在人們更傾向於稱 MEV 是“最大可提取價值”,因為現如今的大部分 MEV 行為不是由礦工發起的,而是由 DeFi 交易者和套利機器人替代。
在以太坊內存池中,MEV 搜索者用套利機器人監控待處理的交易,並試圖利用它們創造的有利可圖的機會。
技術角度來說,MEV 的產生是源於區塊鏈中交易信息被傳送到網絡與實際交易信息被打包至區塊之間存在延遲。
而處理方式卻是構建一個共享的待處理公开訪問內存池(mempool),在該交易被打包至區塊之前,該交易會存放在 mempool 中,公开的 mempool 會導致別有用心者可以有意監聽 mempool,尋找可以獲利的機會。
其中就包括,插入新交易,重新排序交易序列等手段。而這些都顯示了礦工對交易的打包有着極大的控制權。
MEV的利用和防範
一、典型攻擊手段
1、搶跑(front-running)
在以太坊內存池中存在一筆訂單交易,攻擊者使用略高於此訂單的 gas 費進行搶先交易。此時便能使用比市價更低的價格交易訂單。
例如 2021 年 10 月 29 日,多個 MCN-uniswap 池遭受黑客攻擊,主要原因是該代幣合約燒幣功能出現權限問題,使得任何人都能夠對池子中的 MCN 進行燒毀。
攻擊者燒毀池子中大量 MCN 代幣,導致池子中 MCN 代幣價格失衡,攻擊者通過將事先換取的 MCN 代幣換回大量 WETH 代幣而獲利。
然而該攻擊事件被 MEV 機器人捕捉到,機器人在攻擊者完成攻擊之前搶先完成交易並獲利 17.2 萬美元。(https://etherscan.io/tx/0xd091afe6b37256ebb3dd703a9646b27aaf7ce7fe8832778886ba0216361f7f00)
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 問題的研究仍需要我們不斷地探索。
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。
Arthur Hayes 新文聚焦 | 全球貨幣政策的真相,比特幣接下來何去何從?
作為一名宏觀經濟預測者,我試圖基於公开數據和當前事件,作出能夠指導投資組合資產配置的預測。我喜歡“...
Ouroboros DeFi:為什么 Usual Money 被低估了?
前言:Ouroboros DeFi 方法論在Ouroboros DeFi收益基金,我們的投資策略始...
WEEX 唯客交易所贊助臺北區塊鏈周 支持更多全球用戶Onboard Web3
第三屆臺北區塊鏈周(Taipei Blockchain Week, TBW)於 12 月 12-1...