原文作者:Ye & Kan, Sentio
原文編譯:Leo,BlockBeats
MEV 機器人攻擊在DeFi 中很常見,但很多人對其理解也僅限概念上,例如套利攻擊、三明治攻擊等,但其實通過追踪鏈上交易數據可以更好地理解MEV。近日,Web3 觀測平台 Sentio 發文解讀了 MEV,通過鏈上數據和示例可以幫助你更好地理解 MEV。 BlockBeats 編譯如下:
文章開始前簡單介紹一下Sentio,Sentio 是一個鏈上數據監測平台,通過低代碼解決方案從智能合約數據生成指標、日誌和跟踪,可用於分析和監控、模擬/調試交易、數據導出API 等。目前 Sentio 支持 ETH、BSC、Polygon、Solana、Sui、Aptos 等鏈。該平台由來自 Google、Linkedin、微軟和 TikTok 的資深工程師創建,並得到了 Lightspeed Venture Partners、Hashkey Capital 和 Canonical Crypto 等頂級 VC 的支持。
隨著區塊鍊和DeFi 的不斷發展,最大可提取價值(MEV)已成為一個頗具吸引力且有爭議的話題。本文旨在通過來自 Sentio 的真實交易、數據點和簡單執行示例來深入探討 MEV 相關話題,為大家揭開 MEV 概念的神秘面紗。
MEV 是指礦工、驗證者或交易訂單者在將區塊中的交易添加到鏈上之前通過對區塊中的交易順序後獲取的潛在利潤。這種重組交易順序的行為也提供了獲取利潤的機會。
下圖是近 14 天內兩種 MEV 策略(即套利和三明治)產生的每日收入和利潤,以證明 MEV 的機會有多大。每日總收入平均值超過 50 萬美元,每日利潤平均值在 10 萬美元左右。僅 jaredfromsubway.eth(藍色區域)收入就佔據了三明治攻擊的總利潤和收入金額的一半。
我們從最「簡單」的套利策略開始,來說明MEV 交易的工作原理。讓我們從上帝視角看一下典型MEV 套利交易的工作流程,如下圖:
套利交易:首先,MEV 機器人發現2 個流動性池之間存在價格差距;隨後機器人可以在單筆交易中從低價池買入並在高價池賣出,從而產生利潤。
例如,交易A 是套利交易,點擊交易A 鏈接就可以在Sentio 調試器的幫助下查看詳細的資金流向、持倉變化和交易跟踪,以逐步了解此交易的執行情況。
圖中的MEV 交易是由0x1a6 開頭交易機器人發起的,本次交易中,MEV-bot 能夠檢測到Uniswap V3 池中SDEX 中WETH 的價格比SmarDex 池中的WETH 價格更便宜(SmarDex 是一個類似Uniswap V2 的DEX)。 MEV-bot 首先在低價池中 swap,然後將收到的 WETH 到高價池賣出,最終獲利 0.07ETH(5.91-5.98)。
此外,本次交易中的第5 步支付了0.047 ETH 給Flashbots,這是MEV 機器人向區塊構建者支付的賄賂,以使其包含在後面的區塊中,考慮到賄賂費用,MEV 機器人私下賺取了0.02 WETH 收益。
讓我們更深入地了解MEV-bot 是如何在0x1a6 上找到獲利機會的。可以看到本次MEV 交易位於Block 17935927 上,在該交易之前,同一區塊還有一筆交易B,這筆交易在SmarDex 池中進行了大額swap(在SDEX 上swap 了8.52 WETH),該交易使該池中的ETH 價格上漲。
上面的MEV-bot 很快注意到這一過程,並在這筆交易之後添加了自己的交易,抓住了這個「低入高出」的機會。
在交易被納入區塊之前,MEV 機器人如何發現交易的呢,這就不得不提到mempool 了,在交易被添加到區塊並上鍊前,它們存在於一個被稱為mempool 的池中,mempool 中的交易尚未確認時會等待納入到下一個區塊。區塊構建者負責選擇要納入哪些交易以及按什麼順序納入,這個過程可能會受到交易費用和 Gas 價格等因素的影響(這是 MEV 機器人為獲得參與而支付的費用)。
在上述情況下,MEV 機器人可以查看所有 mempool 交易,並發現該某筆交易存在。隨後 MEV 機器人在其後面添加另一筆交易,形成 bundle 以獲取利潤。 MEV 機器人可以使用 Flashbot 等工具創建 bundle,並強制 bundle 交易包含在同一塊中並按所需順序執行。
事實上,在這個特定的區塊中發生了更多的 MEV 交易。由於這是一個Flashbot 構建塊,你可以點擊進入Marto 構建的Flashbot瀏覽器來查看更多交易,並在Sentio 調試器中查看資金流、餘額變化和調用跟踪詳細信息。
套利策略通常是在有利可圖的交易後追加交易,但三明治攻擊是一種通過在目標交易之前和之後添加1 個(或更多)交易並強制這些交易按順序執行來獲利的策略。讓我們從上帝視角看一下典型MEV 三明治攻擊的運作流程,如下圖:
首先,用戶向mempool 提交交易,MEV 機器人持續監控所有mempool 交易,並追踪該交易,並確定該交易是否可以成為三明治的盈利機會。一旦發現機會,MEV 機器人需要通過在目標交易之前和之後插入交易(就像包裝三明治)來創建一個 bundle,並向區塊構建者提交該 bundle。當 mempool 交易被包含在下一個區塊中並執行時,bundle 交易將按照下面的確切順序執行。
MEV 機器人通過操縱池流動性來產生利潤。在搶先交易中,MEV 機器人可以以較低的價格購買資產。在目標交易之後,攻擊者以更高的價格出售之前購買的 token。
我們以區塊 17786884 上的最近 3 筆交易為例(Position 0—2)。
Position 0(搶先交易): 0x850 開頭的交易
該交易是由MEV 機器人插入的,以swap 724.6 WETH 為1.34M USDC,目標交易之前,該交易是按1857 ETH/USDC 價格進行的。
Position(目標交易者):0xc3ae 開頭的交易
目標交易者希望swap 2743 ETH 為USDT(Uniswap V3),最終由Uniswap Router 處理並以平均1851 ETH/USDC 價格完成交易。由於搶先交易的出現,目標交易者遭受了不同的價格,在MEV 機器人搶跑的池中以1850 ETH/USDC 的價格swap 了1782 ETH
Position 2(後跑):0x040 開頭的交易
該交易是由MEV-bot 在目標交易之後插入的,134M USDC 被swap 為727.6 ETH。 Position 0 和 Position 2 結合的最終結果是 MEV-bot 獲利了 3 ETH,而目標交易者則遭受了更高的 swap 價格。下面這兩個 Position 的持倉變化可以讓您快速了解 MEV 機器人獲取的利潤。
為了保護swap 免受三明治攻擊的影響,你應始終設置最大滑點。否則,滑點將被三明治攻擊利用,並成為 MEV-bot 的收入(例如,以編程方式設置時,在應用 UI 或 amountOutMinimum/sqrtpricelimitx 96 參數內的 swap 設置中設置一個百分比)。
MEV 機器人還可以在藉貸協議中獲利,借貸協議是連接貸款人和借款人的DEX(例如MakerDAO、Aave、Compound 等)。借款人提供平台支持的抵押品後可以藉入一定價值的資產,當借款人的抵押品無法償還債務時,就會發生清算,清算人被激勵以低價購買抵押品償還債務。 (
讓我們以0x652 開頭的交易為例。
0x310 地址開頭的MEV機器人通過從Balancer 獲得閃電貸獲得212 USDT 借款,然後MEV-bot 在步驟3-8 中清償了借款人所欠的USDT,0x994 地址開頭的MEV 機器人以折扣價獲得了抵押品作為回報,在步驟8-11 中,MEV 機器人將所有收到的TUSD swap 為WETH 和USDT ,並在步驟12 中還清了初始閃電貸,所有步驟都在一次交易中完成。
套利、三明治攻擊和清算是提取 MEV 的主要方式。此外,MEV 中還有其他一些策略,這些策略是利基的、神秘的和未被發現的(參考鏈接),這些均被稱為長尾MEV。
原文鏈接
欢迎加入律动 BlockBeats 官方社群:
Telegram 订阅群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方账号:https://twitter.com/BlockBeatsAsia