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?最大有多大?
MEV 是指礦工、驗證者或交易訂單者在將區塊中的交易添加到鏈上之前通過對區塊中的交易順序後獲取的潛在利潤。這種重組交易順序的行爲也提供了獲取利潤的機會。
下圖是近 14 天內兩種 MEV 策略(即套利和三明治)產生的每日收入和利潤,以證明 MEV 的機會有多大。每日總收入平均值超過 50 萬美元,每日利潤平均值在 10 萬美元左右。僅 jaredfromsubway.eth(藍色區域)收入就佔據了三明治攻擊的總利潤和收入金額的一半。
MEV 是如何運作的?
套利
我們從最「簡單」的套利策略开始,來說明 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
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。