作者:Daii來源:mirror
上周三(3月12日),一位加密交易者,被MEV攻擊一次性損失21.5萬美元的事情刷屏了。
2.MEV的原理
要理解MEV的工作原理,我們需要先明白Blockchain是如何記錄和更新信息的。2.1Blockchain狀態(tài)更新機(jī)制
Blockchain可以被看作是一個不斷增長的賬本,它記錄了所有發(fā)生的交易。這個賬本的狀態(tài),例如每個賬戶的余額、Uniswap交易池中各種Tokens的儲備量等,都是由之前的交易決定的。
當(dāng)一個新的區(qū)塊被添加到Blockchain上時,這個區(qū)塊中包含的所有交易都會被按照它們在區(qū)塊中的排列順序逐一執(zhí)行。每執(zhí)行一筆交易,Blockchain的全局狀態(tài)就會相應(yīng)地發(fā)生改變。
也就是說,不只是區(qū)塊的順序很重要,區(qū)塊中的交易排序也很重要。那么區(qū)塊中的交易排序又是如何決定的呢?2.2驗證者決定交易排序
當(dāng)用戶在Blockchain網(wǎng)絡(luò)上發(fā)起一筆交易時,例如這一筆通過Uniswap把USDC轉(zhuǎn)換為USDT的交易,首先會被廣播到網(wǎng)絡(luò)中的節(jié)點。經(jīng)過初步驗證后,這筆交易會進(jìn)入一個名為“內(nèi)存池”(mempool)的區(qū)域。內(nèi)存池就像一個等待區(qū)域,其中的交易尚未被確認(rèn)并添加到Blockchain的下一個區(qū)塊中。
以前的礦工(在PoW系統(tǒng)中),現(xiàn)在的驗證者(在PoS系統(tǒng)中)有權(quán)從內(nèi)存池中選擇交易,并決定這些交易在下一個區(qū)塊中的排列順序。
區(qū)塊中交易的順序至關(guān)重要。 在一個區(qū)塊被最終確認(rèn)并添加到Blockchain上之前,這個區(qū)塊中的交易會按照驗證者(比如bobTheBuilder)確定的順序執(zhí)行。這意味著,如果一個區(qū)塊中包含了多筆與同一個交易池交互的交易,那么這些交易的執(zhí)行順序?qū)⒅苯佑绊懙矫恳还P交易的結(jié)果。
這種能力使得驗證者可以優(yōu)先處理特定交易、延遲或排除其他交易,甚至插入自己的交易來最大化利潤。
本次交易的排序,同樣重要,稍有差池就不可能攻擊成功。2.3本次MEV攻擊的交易排序
我們先簡單了解一下,本次MEV攻擊相關(guān)的3個交易:
此時這個池的USDC與USDT之間的兌換比例就遠(yuǎn)遠(yuǎn)不是1:1了,而是1:17了,也就是說此時需要17USDC才能兌換到1個USDT,不過這個比例只是大概,因為這個池是V3的,里面的流動性不是均勻分布的。
還有一點,我要告訴你。實際上攻擊者并沒有一次性動用1865萬的USDC,實際使用的USDC為109萬,連6%都不到。他是如何做到的呢?等我們把攻擊講完了會再詳細(xì)講。3.2交易2,執(zhí)行22萬USDC兌換USDT
點擊上圖交易2的鏈接可以看到下圖。
交易A,將池里的流動性恢復(fù)正常,用1732萬USDT換回了交易1860萬USDC;
交易B,分贓準(zhǔn)備,將部分收益——20.4萬USDC兌換為105ETH;
交易C,分贓,將100.558ETH支付給驗證者bob-The-Builder.eth。
至此,三明治攻擊結(jié)束。
現(xiàn)在來回答上面提到的一個很重要的問題:攻擊者如何用109萬USDC實現(xiàn)了1800萬的攻擊的。4.攻擊者是如何實現(xiàn)1800萬USDC的池攻擊的
攻擊者之所以能只用 109萬USDC 的本金,實現(xiàn) 1800萬美元級別 的攻擊,是因為Blockchain世界存在一個神奇又特殊的機(jī)制——UniswapV3的閃電兌換(FlashSwap)。4.1什么是閃電兌換(FlashSwap)?
簡單來說:
閃電兌換允許用戶在同一筆交易中先從Uniswap池中取出資產(chǎn),再用另一種資產(chǎn)(或同種資產(chǎn)加手續(xù)費(fèi))償還。
只要整個操作在同一個交易內(nèi)完成,Uniswap就允許這種「先取貨、再付款」的行為。請注意,必須是在同一個交易內(nèi)完成。這樣設(shè)計,是為了保障Uniswap平臺自身的安全性:
零風(fēng)險借貸:Uniswap允許用戶無抵押從池子臨時取走資金(類似借貸),但必須在交易結(jié)束時立即償還。
原子性(Atomicity):整個操作必須是原子的,要么完全成功(資金歸還),要么徹底失?。ń灰谆貪L)。
閃電兌換的設(shè)計初衷是為了更有效地進(jìn)行鏈上套利(Arbitrage),但卻不幸地被MEV攻擊者利用,成為市場操縱的利器。4.2閃電兌換,是如何助攻的?
下面我們看圖說畫,一步一步來了解一下本次攻擊的閃電兌換是如何實現(xiàn)的,見下圖。
F4攻擊者再將Curve兌換來的1755萬USDC,加上自己原本準(zhǔn)備的109萬USDC(Aave借貸所得),共1864萬USDC,一次性還給Uniswap,閃電交換完成;
這筆交易(交易1)過后,攻擊者的賬戶余額減少了109萬USDC,因為歸還給Uniswap的1864萬USDC中只有1755萬USDC是從Curve換來的,其余的109萬USDC是攻擊者的自有資金。
你應(yīng)該發(fā)現(xiàn)了,這一筆交易實際讓攻擊者損失了109萬。但是,后面的交易3,同樣通過閃電交換的手法,不但把109萬USDC拿回頭了,而且,還賺了20多萬。
下面我們根據(jù)交易3的數(shù)據(jù)一步一步來分析一下。
K1攻擊者,用閃電交換取出在Uniswap1860萬USDC;
K2攻擊者,通過用剛剛從Uniswap取出的USDC中的一部分1730萬USDC,換回了1732萬USDT;
K1攻擊者,把從Curve換回來的1732萬USDT還給了Uniswap。閃電交換完成。你需要注意的是,攻擊者通過K2只花了1730萬USDC就獲得了1732萬USDT。余下的130(=1860-1730)萬USDC中,有109萬的自有資金,其余的21萬USDC就是本次攻擊的利潤了。
K3攻擊者,把本金還回AAVE,拿走自己701WETH,同時把20萬USDC兌換成了105ETH,并把其中的100.558ETH發(fā)給驗證者作為小費(fèi)(約20萬美元),自己只留了1萬美元不到的收益。
你或許會驚訝,為什么攻擊者愿意將高達(dá)20萬美元的利潤拱手讓給驗證者?4.3為什么要給20萬美元的「小費(fèi)」?
其實,這并不是慷慨,而是三明治攻擊這種MEV攻擊成功的必要條件:
攻擊成功的核心就是交易順序的精準(zhǔn)控制,而控制交易順序的正是驗證者(bobTheBuilder)。
驗證者不僅幫助攻擊者確保受害者的交易處于攻擊交易之間,更關(guān)鍵的是驗證者能確保其他競爭的MEV機(jī)器人無法插隊或干擾攻擊的順利完成。
因此,攻擊者寧可犧牲絕大部分利潤來確保攻擊成功,并保留一定的利潤給自己。
需要特別說明一下,MEV攻擊也是有成本的,在Uniswap閃電兌換有成本,在Curve交易也有成本,只是由于費(fèi)率比較低大概是0.01~0.05%,所以與攻擊所得相比可以不值一提。
最后再提醒一下,MEV攻擊的防御其實也很簡單,你只需:設(shè)定好滑點容忍度,不要超過1%;大筆交易分幾筆執(zhí)行。所以,你大可不必因噎廢食,從此不敢在DEX(DEX)交易了。結(jié)語:黑暗森林中的警示與啟示
這起21.5萬美元的MEV攻擊事件,無疑是Blockchain世界“黑暗森林”法則的又一次殘酷展現(xiàn)。它生動地揭示了在去中心化、無需許可的環(huán)境下,潛藏著利用機(jī)制漏洞攫取利益的復(fù)雜博弈。
從更高的層面來看,MEV的出現(xiàn)是Blockchain透明性和可編程性雙刃劍效應(yīng)的體現(xiàn)。
一方面,所有交易記錄公開可查,使得攻擊行為能夠被追蹤和分析;
另一方面,智能合約的復(fù)雜邏輯和交易執(zhí)行的確定性,也為精明的參與者提供了可乘之機(jī)。
這并非簡單的黑客行為,而是對Blockchain底層機(jī)制的深刻理解和利用,它考驗著協(xié)議設(shè)計的魯棒性,也挑戰(zhàn)著參與者的風(fēng)險意識。
理解MEV,認(rèn)識其風(fēng)險,才能更好地在這個充滿機(jī)遇但也暗藏危機(jī)的數(shù)字世界中航行。記住,在Blockchain的“黑暗森林”中,唯有敬畏規(guī)則、提升認(rèn)知,方能避免成為下一個被吞噬的獵物。
這也是我想通過本文努力達(dá)到的效果。
免責(zé)聲明:MEV三明治攻擊全解析:從排序到閃兌的致命鏈條文章轉(zhuǎn)發(fā)自互聯(lián)網(wǎng),版權(quán)歸其所有。
文章內(nèi)容不代表本站立場和任何投資暗示。加密貨幣市場極其波動,風(fēng)險很高,可能不適合所有投資者。在投資加密貨幣之前,請確保自己充分了解市場和投資的風(fēng)險,并考慮自己的財務(wù)狀況和風(fēng)險承受能力。此外,請遵循您所在國家的法律法規(guī),以及遵守交易所和錢包提供商的規(guī)定。對于任何因使用加密貨幣所造成的投資損失或其他損失,本站不承擔(dān)任何責(zé)任。
Copyright © 2021.Company 元宇宙YITB.COM All rights reserved.元宇宙YITB.COM