通過鏈上數據和交易,了解 MEV 機器人攻擊個過程。本文源自 Ye & Kan , Sentio 所著文章《Dive into MEV Through Data and Transaction Insights 》,由 BlockBeats 整理、編譯和撰寫。
(前情提要:MEV發展及潛在機會在哪?一覽市場規模、價值鏈與產業格局)
(背景補充:MEV賽道總覽:重要性被低估了嗎? )
MEV 機器人攻擊在 DeFi 中很常見,但很多人對其理解也僅限概念上,例如套利攻擊、三明治攻擊等,但其實通過追蹤鏈上交易資料可以更好地理解 MEV。近日,Web3 觀測平臺 Sentio 發文解讀了 MEV,通過鏈上資料和示例可以幫助你更好地理解 MEV。
文章開始前簡單介紹一下 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賺爛紀錄:單日獲利100萬,近1個月總利潤超1,300萬美元
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
套利、三明治攻擊和清算是提取 MEV 的主要方式。此外,MEV 中還有其他一些策略,這些策略是利基的、神祕的和未被發現的( 參考連結 ),這些均被稱為長尾 MEV。