買比特幣 買比特幣
Ctrl+D 買比特幣
ads
首頁 > FIL > Info

FRONT:解析以太坊搶先交易原理及其解決方案_RON

Author:

Time:1900/1/1 0:00:00

作為一般用戶,可以通過設置較低的交易滑點和較高的Gas費來應對搶先交易。

本文旨在全面解析廣泛存在于以太坊區塊鏈上的攻擊行為:Front-Running,通過對其原理的研究,尋找最有效的解決方案,最終幫助DeGate用戶避免這一嚴重有損他們利益的攻擊行為。

Front-Running和Mempool

簡單來說,Front-Running是指在一筆正常交易等待打包的過程中,搶跑機器人通過設置更高Gas費用搶先完成攻擊交易,以此攫取用戶利益的攻擊行為。而Mempool是一組已經廣播到網絡中并等待被打包進區塊的以太坊交易,它是Front-Running可以實施的前提,搶跑機器人通過不斷掃描Mempool中的交易,來分析發現可攻擊的目標。下圖是一個Mempool瀏覽器,可以通過設置各種篩選項訂閱Mempool中的交易,并查看這些交易的全部詳細信息。

在所有Front-Running中,最典型最具危害性的就是針對AMM交易的SandwichAttacks,除此以外還有針對套利、清算交易、閃電貸等利用系統漏洞獲利的搶跑攻擊,攻擊者數量眾多,且由自動化腳本控制,永遠不知疲倦,因此任何有利可圖的交易都會遭受他們的飽和攻擊,幾乎沒有幸免的可能。

Numen發布微軟漏洞解析,黑客可通過該漏洞獲取Windows完全控制權:6月9日消息,安全機構 Numen Cyber Labs 發布微軟 win32k 提權漏洞解析。Numen 表示,該漏洞系 win32k 提權漏洞,是微軟 Windows 系統層面的漏洞。通過該漏洞,黑客可獲取 Windows 的完全控制權。

Numen 指出,win32k 漏洞歷史眾所周知。但在最新的 windows11 預覽版中,微軟已經在嘗試使用 Rust 重構該部分內核代碼。未來該類型的漏洞在新系統可能被杜絕。

此前報道,5 月,微軟發布的補丁更新解決了 38 個安全漏洞,其中包括一個零日漏洞。[2023/6/9 21:25:55]

接下來,我們重點對三明治攻擊進行分析。

SandwichAttacks

真實攻擊案例

首先我們來看一個真實的三明治攻擊案例。

上圖可見,三筆交易在同一個區塊被打包,兩筆攻擊交易中間夾著一筆正常交易。其具體流程如下:

用戶首先發起一筆正常交易,用237000.705USDC買入DG,設置GasPrice為40.5Gwei;

OKX建立行業BRC-20解析新標準:5月16日消息,據OKX官方公告,OKX正式建立行業BRC-20解析新標準,該標準已通過安全審計機構慢霧的安全審計,旨在逐步完善和增強BRC-20生態的完整性和穩健性。

據悉,OKX持續關注并投入BRC-20基礎設施建設,OKX Web3錢包即將上線Ordinals交易市場,是首個支持Ordinals代幣及NFT交易的多鏈錢包。OKX此前已與UniSat達成官方合作支持雙重驗證,并上線首個BRC-20瀏覽器。[2023/5/16 15:06:48]

搶跑機器人檢測到這筆有利可圖的交易后,隨即展開攻擊,發起一筆買入交易,設定GasPrice為49.9Gwei,憑借Gas競爭機制成功搶跑用戶的正常交易;

與此同時,機器人發出另一筆賣出交易,設置GasPrice同樣為40.5Gwei,因為時間順序的原因,緊貼著用戶正常交易完成。

一次完美的搶跑攻擊完成,算上手續費,機器人共賺取16448.012-16310.3-15.2-10.61=$111.9,而這種兩筆攻擊交易夾著一筆正常交易的攻擊,就被形象的稱為三明治攻擊。

原理說明

為了更好的說明攻擊原理,我們補充一些相關背景知識。

Beosin:Avalanche鏈上Platypus項目損失850萬美元攻擊事件解析:2月17日,據區塊鏈安全審計公司Beosin旗下Beosin EagleEye安全風險監控、 預警與阻斷平臺監測顯示,Avalanche鏈上的Platypus項目合約遭受閃電貸攻擊,Beosin安全團隊分析發現攻擊者首先通過閃電貸借出4400萬USDC之后調用Platypus Finance合約的deposit函數質押,該函數會為攻擊者鑄造等量的LP-USDC,隨后攻擊者再把所有LP-USDC質押進MasterPlatypusV4合約的4號池子當中,然后調用positionView函數利用_borrowLimitUSP函數計算出可借貸余額,_borrowLimitUSP函數會返回攻擊者在MasterPlatypusV4中質押物品的價值的百分比作為可借貸上限,利用該返回值通過borrow函數鑄造了大量USP(獲利點),由于攻擊者自身存在利用LP-USDC借貸的大量債務(USP),那么在正常邏輯下是不應該能提取出質押品的,但是MasterPlatypusV4合約的emergencyWithdraw函數檢查機制存在問題,僅檢測了用戶的借貸額是否超過該用戶的borrowLimitUSP(借貸上限)而沒有檢查用戶是否歸還債務的情況下,使攻擊者成功提取出了質押品(4400萬LP-USDC)。歸還4400萬USDC閃電貸后, 攻擊者還剩余41,794,533USP,隨后攻擊者將獲利的USP兌換為價值8,522,926美元的各類穩定幣。[2023/2/17 12:12:32]

我們知道,現如今的主流DEX如Uniswap等,采用的都是AMM機制,其價格遵循恒定乘積公式。例如,在Uniswap中建立一個A代幣與ETH的流動池,A數量為1000,ETH數量為100,則兩者數量乘積為100000,當前A價格為0.1ETH。當Alice試圖用10個ETH來池子里購買A時,他所得到的A的數量X,可以用下面的公式推導(注:為簡化計算,以下均未考慮手續費):

1inch Network:已向解析器激勵計劃發放超150萬枚INCH:2月12日消息,DEX聚合器1inch Network在社交媒體發布項目數據更新,截止目前已向解析器激勵計劃發放1,507,992 INCH代幣,按照當前價格計算超過80萬美元。1inch Network于1月底啟動解析器激勵計劃代幣發放,總計為1000萬枚INCH。

此外,1inch Network還公布了當前主流鏈上數據,按交易額排名:以太坊(2406億美元)、BNB(326億美元)、Polygon(181億美元)、Avalanche(33億美元)、Arbitrum(32億美元)、Optimism(16億美元)、Fantom(7.291億美元)、Gnosis(1.92億美元)。[2023/2/12 12:02:19]

\*=100000,X=90.9

這筆交易中,A的價格為10/90.9=0.11,相比于原來A的價格,價格滑點為:

/0.1\*100%=10%

一筆交易就讓幣價產生了10%的滑點,可見越是流動性差的池子,遇到大額交易,越是容易產生滑點。而如果,能在用戶正常的大額交易前,搶先買入A,再在用戶正常交易后,將剛買入的A賣出,就可以獲得一筆不菲的收益。沿用剛才的例子,假設在Alice的交易前,Bob搶先花5個ETH購買A,然后在Alice的交易完成后,Bob再把之前買入的A賣出,我們看看會有什么樣的結果。

安全團隊:Reaper Farm項目遭到攻擊事件解析,項目方損失約170萬美元:據成都鏈安“鏈必應-區塊鏈安全態勢感知平臺”安全輿情監控數據顯示,Reaper Farm項目遭到黑客攻擊,成都鏈安安全團隊發現由于_withdraw中owner地址可控且未作任何訪問控制,導致調用withdraw或redeem函數可提取任意用戶資產。攻擊者(0x5636e55e4a72299a0f194c001841e2ce75bb527a)利用攻擊合約(0x8162a5e187128565ace634e76fdd083cb04d0145)通過漏洞合約(0xcda5dea176f2df95082f4dadb96255bdb2bc7c7d)提取用戶資金,累計獲利62ETH,160萬 DAI,約價值170萬美元,目前攻擊者(0x2c177d20B1b1d68Cc85D3215904A7BB6629Ca954)已通過跨鏈將所有獲利資金轉入Tornado.Cash,成都鏈安鏈必追平臺將對被盜資金進行實時監控和追蹤。[2022/8/2 2:54:19]

首先是Bob的搶跑交易:

(1000-X)\*(100+5)=100000,X=47.62

即,Bob用5ETH購得47.62個A

接下來是Alice的正常交易,注意此時流動池中A的數量變為952.38,ETH的數量變為105:

(952.38-X)\*(105+10)=100000,X=82.81

最后Bob賣出47.62個A的交易,此時流動性中A的數量為869.57,ETH的數量為115:

\*=100000,Y=5.97

通過這一次搶跑攻擊,Bob凈賺5.97-5=0.97個ETH,而Alice凈虧90.9-82.81=8.09個A,Bob通過使Alice蒙受更大的滑點損失來獲得自己的收益!

當然,實際的搶跑攻擊會更復雜,攻擊者需要進行更精密的計算,以求實現以下兩個目標:

讓用戶的交易結果無限逼近用戶自己設置的最大滑點,以求達到理論上的最大套利空間

在手續費競爭力和收益之間取得平衡,盡可能的在與其他機器人的競爭中獲勝

我們用圖表來更好的描述這一過程:

用戶在A點,打算投入in_amount(user)個USDT購買ETH,這筆交易正常會把當前狀態推向B,同時用戶設置了最大滑點為B(max_slippage);

搶跑機器人監測到這筆交易,先于用戶交易之前,進行了一筆in_amount(robot)個USDT的買入交易,將當前狀態推到A';

用戶的交易隨后執行,達到其設置的最大滑點B(max_slippage);

搶跑機器人把步驟2中買入的ETH賣出,狀態達到C點,得到out_amount(robot)個USDT

搶跑機器人獲得收益out_amount(robot)-in_amount(robot)-手續費

解決方案

既然我們已經看到了Front-Running的殺傷力,那我們有什么辦法阻止搶跑攻擊呢?

作為一般用戶,應對Front-Running可以有以下幾種手段:

設置較低的交易滑點,比如0.1%,這會讓搶跑機器人缺少可盈利的空間。?缺點:滑點過低導致大額交易十分容易失敗,且失敗的交易仍然需要支付高昂手續費。

提高gas費用,這會增加機器人的攻擊成本。缺點:這同樣也增加了自己的交易成本。

可以看出,以上解決方案都是無奈之舉,且有各種不足,幸運的是,有很多團隊認識到了Front-Running的危害性,并提出了不少有建設性的解決方案。首先通過對捕獵全過程的分析,我們可以得出結論,要實現Front-Running,需要幾個要素:

Transaction公開性:可以在Mempool中獲取交易的詳細信息

以太坊交易執行機制:可以通過gas競爭的方式搶先完成交易

AMM交易曲線機制:恒定乘積機制可以造成較大滑點

那么反制手段就是分別在這幾個要素上做文章。

Transaction公開性

既然機器人是通過分析Mempool中的交易來決定是否發起攻擊,那么我們將交易信息直接加密,讓機器人看不到或者看不懂不就好了?

社區中就有人提議使用零知識證明技術zk-SNARKs來達成上述目標,即運用zk-SNARKs將每筆交易的信息都加密隱藏起來,讓機器人無從下手。

不過,目前該方案還不夠成熟,存在需要消耗更高Gas費用和可能被利用來進行阻塞攻擊,導致系統化整體liveness的缺陷。

以太坊交易執行機制

當前的以太坊交易執行機制是通過Gas競爭來完成的,即誰出的Gas費高,礦工就優先打包誰的交易,那么我們如果繞過這種機制,把交易發給礦工讓其直接打包,就杜絕了搶跑機器人在中途攻擊的可能性

所以一種類似于Layer0的方案也得到了一些應用,如星火礦池的Taichi服務,用戶可以直接在MetaMask中設置Taichi的以太坊節點,這樣交易就直接在沒有出現在Mempool的情況下被打包了,但劣勢是被打包的時效有一定的不確定性。

另外,如ArcherSwap類似理念的解決方案,構建了交易者和礦工之間的橋梁,交易者可以通過打賞的形式讓礦工直接打包自己的交易,這就避免了被Front-Running的可能。雖然有那么點交保護費來避免被攻擊的感覺,但也實實在在的降低了交易者的成本,而且有著不收取交易失敗費用的優勢。

AMM算法優化

在AMM機制下,大額交易產生過大的價格滑點,是Front-Running的利潤空間,如果有一種AMM機制可以減少大額交易對后續交易價格的影響,就可以有效防止Front-Running攻擊。早在2018年,Vitalik在以太坊技術社區中提供了一個方案,當發生兌換交易時,交易池價格不會立刻調整成真實價格,而是在若干分鐘內,緩慢的趨向真實價格,這就好像交易池憑空多出了很多流動性一樣,因此我們將這種技術稱之為VitrualBalance技術。這種新機制,可大大壓縮套利者的利潤空間,有效防御Front-Running攻擊,同時還可以增加流動性做市商的收益,可謂一舉多得,1inch的mooniswap就是這個方案的一個實現版本。

增加流動性

此外,還有種思路,就是盡可能的加大交易池中特定價格區間的流動性,流動性越大,滑點越小,當流動性大到一定程度的時候,搶跑機器人就喪失了盈利空間,Uniswap的V3版本的聚焦流動性特性,就是在這方面做出的努力。

展望未來

我們有理由相信,在各個團隊堅持不懈的努力之下,隨著各種解決方案的持續演進,以及新一代AMM、以太坊二層等技術的相繼落地,很快我們就可以為用戶提供一個更公平更安全的鏈上交易環境。

撰文:DeGate

Tags:NNIUNNRONFRONTNNI幣bunnypark幣價格ron幣怎么樣Final Frontier

FIL
GER:DeFi新玩法丨Bridge Bridge正式集成RenVM,打造BTC一站式商店_BAD

“BadgerDAO已與RenVM達成合作。Ren團隊將把WBTC.cafe過渡到新的BadgerBridge上。屆時,BTC.cafe的流量將引導用戶到BadgerBridge上.

1900/1/1 0:00:00
比特幣:比特幣的黃金時代_DEFI

勃魯蓋爾《死亡的勝利》1562年 寫在前面 周末在成都和老朋友們見面,18個月前在嘉楠的上市大會上我和熊越也做過一次爐邊對話《屬于比特幣的黃金時代》這次在成都的大會上復盤了一下上次爐邊對話的一些.

1900/1/1 0:00:00
DEF:除了以太坊 這些公鏈悄然建DeFi_SOL

截至4月21日,根據CoinGecko數據顯示,目前整個加密資產市場總市值為21000億美元。此前有數據顯示,DeFi在整個加密資產市場中已經接近1000億美元的規模.

1900/1/1 0:00:00
JUST:JustBet 使用 Chainlink 預言機優化在 Polygon 上的去中心化游戲平臺_justice幣超話

JustBet正在將兩種主要類型的Chainlink預言機集成到其去中心化的游戲平臺。這兩個安全可靠的預言機解決方案將為全新去中心化游戲體驗鋪平道路,其中一個解決方案使用外部數據來增強幾個關鍵的.

1900/1/1 0:00:00
DON:知名機構報告:比特幣為何能成為未來清潔能源的關鍵?_Klap Finance

最近有很多關于比特幣對環境影響的言論出現,主流媒體一直熱衷于宣稱比特幣的共識機制(PoS工作量證明)是對地球未來環境的潛在威脅.

1900/1/1 0:00:00
EOS:金色早報 | 英特爾和微軟攜手打擊加密劫持_加密貨幣

頭條 ▌英特爾和微軟攜手打擊加密劫持金色財經報道,英特爾和微軟正攜手打擊惡意加密貨幣挖礦。用于幫助抵御高級安全威脅的企業級解決方案MicrosoftDefenderforEndpoint已擴大了.

1900/1/1 0:00:00
ads