国产偷亚洲偷欧美偷精品,国产午夜福利亚洲第一,国产精品亚洲五月天高清 ,国产无遮挡18禁网站免费,国产亚洲精久久久久久无码苍井空

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

理解 MEV,認識其風險,才能在這個充滿機遇但也暗藏危機的數(shù)字世界中航行。撰文:Daii

上周三(3 月 12 日),一位加密交易者遭遇 MEV 攻擊,一次性損失 21.5 萬美元的事件震驚了整個行業(yè)。這位用戶本想在 Uniswap v3 交易池中將價值 22.08 萬美元的 USDC 穩(wěn)定幣兌換成等值的 USDT,結果卻僅僅得到了 5,272 USDT,短短幾秒內(nèi)資產(chǎn)瞬間蒸發(fā) 21.57 萬。這一慘劇的背后,是區(qū)塊鏈世界臭名昭著的「三明治攻擊」(Sandwich Attack)。

最先披露此次 MEV 攻擊的是 Michael,他詳細解釋了攻擊過程:MEV 機器人通過換出所有 USDT 流動性來搶先交易,交易執(zhí)行后,機器人放回流動性。攻擊者向區(qū)塊構建者(bobTheBuilder)打賞了 20 萬美元,并從這筆交易中獲利了 8000 美元。

盡管新聞報道和解釋提供了相關信息,但其中涉及的專業(yè)術語如三明治攻擊、搶先交易、放回流動性、向區(qū)塊構建者打賞等,可能仍然讓人感到困惑。今天,我們將以這起 MEV 攻擊為例,拆解其全過程,帶你一探 MEV 這一黑暗世界。

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

首先,我們需要解釋一下什么是 MEV。

### MEV 是什么?

MEV 最初被稱為礦工可提取價值(Miner Extractable Value),指的是礦工通過在區(qū)塊鏈區(qū)塊中對交易進行重新排序、插入或排除操作所能獲得的額外利潤。這種操作可能導致普通用戶付出更高的成本,或者獲得更不利的交易價格。

隨著以太坊等區(qū)塊鏈網(wǎng)絡從工作量證明(Proof-of-Work,PoW)共識機制轉向權益證明(Proof-of-Stake,PoS)共識機制,控制交易排序的權力從礦工轉移到了驗證者手中。因此,術語也相應地從「礦工可提取價值」(Miner Extractable Value)演變?yōu)椤缸畲罂商崛r值」(Maximal Extractable Value)。

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

盡管名稱發(fā)生了變化,但通過操縱交易順序來提取價值的核心概念仍然一樣。你只需記住:MEV之所以存在,是因為驗證者擁有一項權利,對內(nèi)存池(mempool)里的交易進行排序。這個排序是發(fā)生在一個區(qū)塊里面,現(xiàn)在以太坊大概 11 秒左右出一個區(qū)塊,那就是說每 11 秒就會有一次這樣的權力行使。同樣,這一次 MEV 攻擊也是通過驗證者排序實現(xiàn)的。

點擊這個鏈接,你會看到與本次攻擊相關的編號為 22029771 的區(qū)塊所包含的交易內(nèi)容。請注意,上圖 1、2、3 交易就是本文開頭所說的那個 MEV 攻擊,這個順序是驗證者(bobTheBuilder)排列好的。為什么可以這樣?讓我們深入探討 MEV 的原理。

### MEV 的原理

要理解 MEV 的工作原理,我們需要先明白區(qū)塊鏈是如何記錄和更新信息的。

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

#### 區(qū)塊鏈狀態(tài)更新機制

區(qū)塊鏈可以被看作是一個不斷增長的賬本,它記錄了所有發(fā)生的交易。這個賬本的狀態(tài),例如每個賬戶的余額、Uniswap 交易池中各種代幣的儲備量等,都是由之前的交易決定的。

當一個新的區(qū)塊被添加到區(qū)塊鏈上時,這個區(qū)塊中包含的所有交易都會被按照它們在區(qū)塊中的排列順序逐一執(zhí)行。每執(zhí)行一筆交易,區(qū)塊鏈的全局狀態(tài)就會相應地發(fā)生改變。

也就是說,不只是區(qū)塊的順序很重要,區(qū)塊中的交易排序也很重要。那么區(qū)塊中的交易排序又是如何決定的呢?

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

#### 驗證者決定交易排序

當用戶在區(qū)塊鏈網(wǎng)絡上發(fā)起一筆交易時,例如這一筆通過 Uniswap 把 USDC 轉換為 USDT 的交易,首先會被廣播到網(wǎng)絡中的節(jié)點。經(jīng)過初步驗證后,這筆交易會進入一個名為「內(nèi)存池」(mempool)的區(qū)域。內(nèi)存池就像一個等待區(qū)域,其中的交易尚未被確認并添加到區(qū)塊鏈的下一個區(qū)塊中。

驗證者有權從內(nèi)存池中選擇交易,并決定這些交易在下一個區(qū)塊中的排列順序。區(qū)塊中交易的順序至關重要。在一個區(qū)塊被最終確認并添加到區(qū)塊鏈上之前,這個區(qū)塊中的交易會按照驗證者確定的順序執(zhí)行。這意味著,如果一個區(qū)塊中包含了多筆與同一個交易池交互的交易,那么這些交易的執(zhí)行順序將直接影響到每一筆交易的結果。

這種能力使得驗證者可以優(yōu)先處理特定交易、延遲或排除其他交易,甚至插入自己的交易來最大化利潤。本次交易的排序,同樣重要,稍有差池就不可能攻擊成功。

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

#### 本次 MEV 攻擊的交易排序

我們先簡單了解一下,本次 MEV 攻擊相關的 3 個交易:

– 交易 1(攻擊者的第一個交易):在受害者的交易之前執(zhí)行。這個交易的目的通常是推高受害者想要交易的代幣的價格。
– 交易 2(受害者的交易):在攻擊者的第一個交易之后執(zhí)行。由于攻擊者之前的操作,此時交易池中的價格對受害者不利,他需要付出更多的 USDC 才能換到等值的 USDT,或者只能換到更少的 USDT。
– 交易 3(攻擊者的第二個交易):在受害者的交易之后執(zhí)行。這個交易的目的通常是利用受害者交易造成的新的價格變動來獲利。

這一次 MEV 攻擊的驗證者是 bob-The-Builder.eth,是他負責把交易排成 1、2、3 這樣的順序的。當然,bobTheBuilder 也不是白干的,他參與此次排序獲得了 100 多個 ETH 的收入,相反 MEV 攻擊發(fā)起者只有 8000 美元收入。他們的收入來源正是受害者的第二筆交易。

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

一句話,攻擊者(MEV 機器人)與驗證者(bobTheBuilder)合謀,讓第二筆交易的受害者損失了 21.5 萬美元,其中攻擊者得 8000 美元,驗證者得 20 萬美元(100 多 ETH)。他們采用的攻擊方式有一個形象的名字——三明治攻擊。下面,我們來一個交易一個交易的去講解,讓你徹底明白 MEV 比較復雜的三明治攻擊到底是怎么一回事?

### 三明治攻擊全解析

之所以稱之為三明治攻擊(Sandwich Attack),是因為攻擊者的兩筆交易(交易 1 和交易 3)分別被放置在受害者交易(交易 2)之前和之后,使得整個交易順序像三明治的結構。

交易 1、交易 3 分別擔負著不同的功能。簡單說,交易 1 交易負責作案,交易 3 交易負責收割分贓。具體來說整個過程是這樣的:

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

#### 交易 1,負責提高 USDT 的價格

點擊上圖 1 號交易的鏈接,你會看到 1 號交易的詳細內(nèi)容,攻擊者提高 USDT 的價格也很直接,就是用 1865 萬 USDC 把里面的 1758 萬的 USDT 全部換走了。此時流動性池子里面的剩下的是大量的 USDC 和少量的 USDT。如果按照新聞報道所說,在攻擊前,Uniswap 的流動性里分別有 1980 萬左右的 USDC 和 USDT 的話,那么交易 1 執(zhí)行后,池內(nèi)僅剩 222 萬 USDT(=1980-1758),而 USDC 余額增至約 3845 萬(=1980+1865)。此時這個池的 USDC 與 USDT 之間的兌換比例就遠遠不是 1:1 了,而是 1:17 了,也就是說此時需要 17 USDC 才能兌換到 1 個 USDT,不過這個比例只是大概,因為這個池是 V3 的,里面的流動性不是均勻分布的。

還有一點,我要告訴你。實際上攻擊者并沒有一次性動用 1865 萬的 USDC,實際使用的 USDC 為 109 萬,連 6% 都不到。他是如何做到的呢?等我們把攻擊講完了會再詳細講。

#### 交易 2,執(zhí)行 22 萬 USDC 兌換 USDT

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

點擊上圖交易 2 的鏈接可以看到下圖。受害者的交易 2 因為交易 1 的影響,22 萬 USDC 只得到了 5272 USDT,在不知不覺中損失了 17 萬 USDT。為什么說是不知不覺呢?因為,如果受害者是通過 Uniswap 進行交易的,那么他提交交易的時候看到會是如下界面。通過你會發(fā)現(xiàn),受害者最少得到 22 萬應該是有保障的。受害者之所以最后只得到了 5000 多 USDT 是因為產(chǎn)生了巨大的滑點,達到 90% 以上。但是,Uniswap 是有默認最大滑點 5.5% 限制的,也就是說,如果受害者是通過 Uniswap 前端進行交易的,那么他應該至少會得到 208381 USDT(= 220510 * 94.5%)。你可能會有疑問了,為什么上面區(qū)塊鏈記錄里面會顯示這筆交易是在「Uniswap V3」進行的呢?因為,區(qū)塊鏈交易的前端與后端是分開的。上面所說的「Uniswap V3」是指的 Uniswap 的 USDC-USDT 的資金池,這個池是公開的,任何交易的前端都可以通過這個池來交易。也正因為這一點,有人懷疑受害者不簡單,不是一般人,否則不會產(chǎn)生這么大的滑點,可能是利用 MEV 攻擊在洗錢。這個,我們以后講。

#### 交易 3,收割 + 分贓

點擊鏈接,可以查看交易 3 的詳情。我們分別講一下 A、B、C 三筆交易。

– 交易 A,將池里的流動性恢復正常,用 1732 萬 USDT 換回了交易 1860 萬 USDC;
– 交易 B,分贓準備,將部分收益——20.4 萬 USDC 兌換為 105 ETH;
– 交易 C,分贓,將 100.558 ETH 支付給驗證者 bob-The-Builder.eth。

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

至此,三明治攻擊結束。現(xiàn)在來回答上面提到的一個很重要的問題:攻擊者如何用 109 萬 USDC 實現(xiàn)了 1800 萬的攻擊的。

### 攻擊者是如何實現(xiàn) 1800 萬 USDC 的池攻擊的

攻擊者之所以能只用 109 萬 USDC 的本金,實現(xiàn) 1800 萬美元級別的攻擊,是因為區(qū)塊鏈世界存在一個神奇又特殊的機制——Uniswap V3 的閃電兌換(Flash Swap)。

#### 什么是閃電兌換(Flash Swap)?

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

簡單來說:閃電兌換允許用戶在同一筆交易中先從 Uniswap 池中取出資產(chǎn),再用另一種資產(chǎn)(或同種資產(chǎn)加手續(xù)費)償還。只要整個操作在同一個交易內(nèi)完成,Uniswap 就允許這種「先取貨、再付款」的行為。請注意,必須是在同一個交易內(nèi)完成。這樣設計,是為了保障 Uniswap 平臺自身的安全性:

– 零風險借貸:Uniswap 允許用戶無抵押從池子臨時取走資金(類似借貸),但必須在交易結束時立即償還。
– 原子性(Atomicity):整個操作必須是原子的,要么完全成功(資金歸還),要么徹底失?。ń灰谆貪L)。

閃電兌換的設計初衷是為了更有效地進行鏈上套利,但卻不幸地被 MEV 攻擊者利用,成為市場操縱的利器。

#### 閃電兌換,是如何助攻的?

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

下面我們看圖說畫,一步一步來了解一下本次攻擊的閃電兌換是如何實現(xiàn)的。

– F1 攻擊者通過自有的 701 WETH 從 AAVE 借出 109 萬 USDC;
– F2 攻擊者發(fā)起閃電兌換請求,先從 Uniswap 池子取出 1758 萬 USDT(此時無需先付款),攻擊者賬戶臨時增加了 1758 萬 USDT;
– F3 攻擊者迅速將這 1758 萬 USDT 投入 Curve 池,兌換回 1755 萬 USDC,攻擊者賬戶 USDT 減少 1758 萬,USDC 增加 1755 萬。通過下圖你會發(fā)現(xiàn),攻擊者之所以選擇 Curve 是因為這里的流動性很充足,USDT 有 7054 多萬,USDC 也有 5071 萬,滑點相對較低;
– F4 攻擊者再將 Curve 兌換來的 1755 萬 USDC,加上自己原本準備的 109 萬 USDC(Aave 借貸所得),共 1864 萬 USDC,一次性還給 Uniswap,閃電交換完成;

這筆交易(交易 1)過后,攻擊者的賬戶余額減少了 109 萬 USDC,因為歸還給 Uniswap 的 1864 萬 USDC 中只有 1755 萬 USDC 是從 Curve 換來的,其余的 109 萬 USDC 是攻擊者的自有資金。

你應該發(fā)現(xiàn)了,這一筆交易實際讓攻擊者損失了 109 萬。但是,后面的交易 3,同樣通過閃電交換的手法,不但把 109 萬 USDC 拿回頭了,而且,還賺了 20 多萬。

揭秘MEV三明治攻擊:排序閃兌如何致用戶慘虧21.5萬美元

根據(jù)交易 3 的數(shù)據(jù)一步一步來分析一下。

– K1 攻擊者,用閃電交換取出在 Uniswap 1860 萬 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,拿走自己 701 WETH,同時把 20 萬 USDC 兌換成了 105 ETH,并把其中的 100.558 ETH 發(fā)給驗證者作為小費(約 20 萬美元),自己只留了 1 萬美元不到的收益。

你或許會驚訝,為什么攻擊者愿意將高達 20 萬美元的利潤拱手讓給驗證者?

#### 為什么要給 20 萬美元的「小費」?

其實,這并不是慷慨,而是三明治攻擊這種 MEV 攻擊成功的必要條件:攻擊成功的核心就是交易順序的精準控制,而控制交易順序的正是驗證者(bobTheBuilder)。驗證者不僅幫助攻擊者確保受害者的交易處于攻擊交易之間,更關鍵的是驗證者能確保其他競爭的 MEV 機器人無法插隊或干擾攻擊的順利完成。因此,攻擊者寧可犧牲絕大部分利潤來確保攻擊成功,并保留一定的利潤給自己。

需要特別說明一下,MEV 攻擊也是有成本的,在 Uniswap 閃電兌換有成本,在 Curve 交易也有成本,只是由于費率比較低大概是 0.01~0.05%,所以與攻擊所得相比可以不值一提。

最后再提醒一下,MEV 攻擊的防御其實也很簡單,你只需:設定好滑點容忍度,不要超過 1%;大筆交易分幾筆執(zhí)行。所以,你大可不必因噎廢食,從此不敢在 DEX(去中心化交易所)交易了。

### 結語:黑暗森林中的警示與啟示

這起 21.5 萬美元的 MEV 攻擊事件,無疑是區(qū)塊鏈世界「黑暗森林」法則的又一次殘酷展現(xiàn)。它生動地揭示了在去中心化、無需許可的環(huán)境下,潛藏著利用機制漏洞攫取利益的復雜博弈。

從更高的層面來看,MEV 的出現(xiàn)是區(qū)塊鏈透明性和可編程性雙刃劍效應的體現(xiàn)。一方面,所有交易記錄公開可查,使得攻擊行為能夠被追蹤和分析;另一方面,智能合約的復雜邏輯和交易執(zhí)行的確定性,也為精明的參與者提供了可乘之機。

這并非簡單的黑客行為,而是對區(qū)塊鏈底層機制的深刻理解和利用,它考驗著協(xié)議設計的魯棒性,也挑戰(zhàn)著參與者的風險意識。理解 MEV,認識其風險,才能更好地在這個充滿機遇但也暗藏危機的數(shù)字世界中航行。記住,在區(qū)塊鏈的「黑暗森林」中,唯有敬畏規(guī)則、提升認知,方能避免成為下一個被吞噬的獵物。這也是我想通過本文努力達到的效果。

歡迎加入深潮TechFlow官方社群 Telegram訂閱群:http://iy168.cn/TechFlowDaily Twitter官方賬號:http://iy168.cn/TechFlowPost Twitter英文賬號:http://iy168.cn/DeFlow_Intern

本文網(wǎng)址:http://iy168.cn/news/1962.html

發(fā)表回復

您的郵箱地址不會被公開。 必填項已用 * 標注