BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

以太坊黑暗森林中的“捕食者”

拔丝地瓜
特邀专栏作者
本文約5159字,閱讀全文需要約8分鐘
以太坊的黑暗森林怪物並不是開玩笑的。這些Frontrunning的機器人可以分析它們從未在智能合約中使用過的智能合約調用和功能,以獲取潛在利潤。
AI總結
展開
以太坊的黑暗森林怪物並不是開玩笑的。這些Frontrunning的機器人可以分析它們從未在智能合約中使用過的智能合約調用和功能,以獲取潛在利潤。

編者按:本文來自加密谷Live(ID:cryptovalley)加密谷Live(ID:cryptovalley)

以太坊的黑暗森林怪物並不是開玩笑的。這些Frontrunning的機器人可以分析它們從未在智能合約中使用過的智能合約調用和功能,以獲取潛在利潤。

加密谷Live(ID:cryptovalley)

以太坊的黑暗森林怪物並不是開玩笑的。這些Frontrunning的機器人可以分析它們從未在智能合約中使用過的智能合約調用和功能,以獲取潛在利潤。

以太坊的黑暗森林怪物並不是開玩笑的。這些Frontrunning的機器人可以分析它們從未在智能合約中使用過的智能合約調用和功能,以獲取潛在利潤。

二級標題

,作者:Alex MenUskin,翻譯:Sherrie,Odaily經授權轉載。

以太坊的黑暗森林怪物並不是開玩笑的。這些Frontrunning的機器人可以分析它們從未在智能合約中使用過的智能合約調用和功能,以獲取潛在利潤。

鑑於人們對這些機器人普遍缺乏了解,我們開始了一場狩獵之旅,來進一步了解這種情況,看看它們有多普遍。我們設法“捕獲”了一些通用的前端機器人,並分析了它們的行為。我們研究了它們的效率和交易被“追捕”的可能性。我們也測試了不同的方法來躲避它們。

什麼是Frontrunning(搶跑)?

二級標題

Frontrunning的一個簡單例子是交換競價。假設有人打算在Uniswap上購買大量ETH,這足以推高ETH的價格。從這種情況中獲益的一種方法是在購買大量ETH之前進行交易,同時價格保持較低。然後,在價格飆升之後,出售ETH獲利。

二級標題

除了這個套利例子,Frontrunning 進行許多其他交易也可能是有價值的,包括清算,購買罕見的NFT,或簡單的用戶錯誤。 (從一個事務或事務順序中提取的值稱為MEV)。

在以太坊上Frontrunning是通過在交易中出價稍高的交易費來實現的,激勵礦工在構建區塊時更早地排序,較高的支付交易首先執行。因此,如果兩個從同一個合約調用中獲利的交易被放在同一個區塊中,只有第一個交易獲得利潤。

二級標題

行為學

Dan Robinson和Georgios Konstantopoulos在《ETH是黑暗森林》的一篇博客文章中描述了一次試圖Frontrunning的行為,其中有1.2萬美元落入了一個複雜的“捕食者”的魔爪中。一個捕食者如此領先,它可以追踪以太坊交易池中的任何有價值的交易,並通過Frontrunning的方式獲取收益。

《黑暗森林》的故事太“恐怖”了,一開始很難讓人相信。的確,我們有理由懷疑這種“食肉動物”的存在。資金如何從Uniswap這個被大量機器人嚴密監控的套利平台中撤出?它可能是一個“常規的”套利者嗎?

至少可以說,這相當令人擔憂。監視交易池中的任何事務的能力是一種超級強大的武器。令人擔憂的是,一些服務開始公開提供“暗池”交易層。

“暗池”交易層不使用Infura這樣的服務,甚至也不使用私有節點,而是直接將交易發送給礦工,並承諾不會將交易傳播到網絡的其他部分,從而保證交易安全不受掠奪者的窺探。

為了確保我們抓到的Frontrunning者是“真正的”一般的Frontrunning者,我們需要一個獨特的陷阱。該陷阱是一個新創建的合約,由一個SHA256哈希秘密字符串發起,其中有一些資金可供獲取。只有提供了這個秘密,才能取出鎖定的資金,資金將直接被發送到提取交易的發送方。

二級標題

一般的Frontrunning者是如何工作的?

二級標題

他們的想法是發送一個提供正確秘密的“誘餌”交易,看看是否有人試圖複製它,然後自己提供秘密,從而獲得可用的資金。如果有人在誘餌交易之前拿到了資金,這就意味著有人能夠在交易還在交易池l的時候分析它,複製它的相關內容,並自己提供秘密。

二級標題

一般的Frontrunning者是如何工作的?

構建一個通用的Frontrunning者通常需要兩個部分。第一個組件是一個以太坊賬戶,無論是否有智能錢包代理,修改後的交易都可以發送到該賬戶。第二個是“後端”,也就是操作的大腦,它大多發生在鏈下。操作符使用一些技術來檢查池中的每個事務,解析它,替換它的參數(例如,tx調用者),並確定它是否有任何利潤。"二級標題"這是一個概率過程,有可能在一個事務被廣播後立即挖掘一個塊,讓機器人沒有時間成功地分析它並廣播一個正在運行的事務。

逆象

有了這些考慮和一些想法,我們測試了機器人抓住誘餌需要多少時間。

我們的合約(授予者)的初始餘額為0.035 ETH,當時價值約20美元。任何向合約中存儲的Hash提供正確原像的人都可以獲得這些資金。為了獲得資金並作為掠奪者的觸發器,一個單獨的賬戶(獲得者)將試圖通過提供適當的

二級標題

像來提取資金。

二級標題

二級標題

為了確保我們的基線陷阱能夠正常工作,我們首先使用獲得者帳戶來調用合約。第一次嘗試時,交易費相對較高(由ETH框架設定),我們成功收回了資金。

二級標題

二級標題

在這一輪中,我們解決了之前遇到的問題。我們增加了潛在利潤並降低了交易費,這樣交易就不會被挖得太快,給機器人時間去發現它。該合約還追加了0.04 ETH(比之前增加了0.005)。

二級標題

這一次,我們成功了。該交易在被挖掘前等待了大約3分鐘,沒有從合約中獲得價值。根據合約的內部交易,我們可以發現資金流向了別人。

當前事務使用25.000001111 Gwei(.000001111Gwei高於我們所使用的值),並且與嘗試的“提取”在同一個塊中被挖掘。

培養追踪者

既然我們已經成功地找到了一個機器人(付出了一些代價),我們可以得出一些有趣的見解。首先,事務表明對合約的調用沒有直接執行。機器人並不只是複制交易並盲目地從一個擁有的帳戶發送它,而是通過代理智能合約傳遞它,該代理智能合約充當一個智能錢包來執行這些交易。

反編譯合約有兩個主要功能:

二級標題

通過該功能,代理合約為運營商充當了智能錢包的角色。除了執行調用外部函數的能力,它還可以保證交易開始時的餘額至少和交易結束時的餘額一樣多,否則還可以恢復,從而避免在調用未知合約時可能出現的資金損失(當然,交易費用除外)。

二級標題

使用Dune Analytics,我們可以看到自2018年5月開始機器人取得了多大的成功!

假設這個特定的機器人總是使用相同的代理和發送地址來發行交易,我們可以估計它的收益總計約17 ETH(在本文撰寫時約為1萬美元)。

第三輪:他們到底有多聰明?

現在我們已經確信機器人要攻擊我們了,我們想測試是否可以通過第二個合約(一個代理,它將調用一個函數來從給予者那裡提取誘餌)來混淆我們的調用,從而從我們的合約中提取誘餌。 (合約中也有“收款”功能,可以將款項返還給我們)。

這一次更令人印象深刻。機器人不僅能夠檢測我們的提取事務,而且它從一個內部調用中,從一個完全不同的合約中識別它!以破紀錄的速度完成了這一壯舉。我們的提取交易在幾秒鐘內就被挖掘出來了(機器人也一樣)。

二級標題

考慮到機器人的相同行為模式(從賬戶A調用代理並將資金傳遞到賬戶B)和事件的臨近性,有理由認為機器人在該事件中也在對白人黑客進行普遍的Frontrunning操作。

二級標題

這個機器人比前一個複雜得多。它不僅關注ETH,還進行各種套利交易。

從收集資金的賬戶餘額來看,它也要成功得多。目前,餘額約為300 ETH(撰寫本文時約為18萬美元)。我們也可以從合約地址中減去所有的資金流入和流出來估算其收益,總計為~900 ETH。這只是一個粗略的估計,因為該賬戶可能進行了與其前端運行活動無關的交易。 (以下是所有有正值的機器人交易列表)。

二級標題

設置類似於第三輪。授予合約追加了0.05 ETH。這筆資金也在同一筆交易中轉回給我們,而不是保留在合約中。

那麼,我們贏了嗎?

實驗重複進行,這次用0.06 ETH重新填充了給予者合約,這是我們迄今為止使用的最高的支付,以確保較低的支付不是缺少Frontrunning嘗試的原因。

二級標題

那麼,我們贏了嗎?

結論

上次我們為什麼能抵禦(Frontrunning)?

二級標題

結論

二級標題

結論

很難說。可能是機器人沒有冒著與經過身份驗證的合約通信的風險,或者資金被轉移到另一個地址的事實是意外的。當然,這並不意味著這是一種完全避免Frontrunning者的方法。最有可能的是,交易池l中潛伏著更複雜的機器人,它們根本不願意為了這麼小的利潤而冒險。

結論

在這個簡短的實驗中,我們能夠證明通用的前端運行機器人是存在的,而且它們是高度複雜的。

然而,我們相信我們的工作提供了一個概念驗證,並進一步揭示了這些通用的前端機器人的操作方式。

二級標題

因此,了解這些機器人及其運作方式至關重要,這樣我們才能在現在和未來建立更安全的系統。像Flashbots這樣的項目試圖通過民主化MEV開採並使其成為一種公共資源來實現這一點。我們希望這項研究有助於實現這一目標。

ETH
投资
歡迎加入Odaily官方社群