比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

捕捉以太坊黑暗森林中的通用型搶跑機器人_GAS

Author:

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

以太坊黑暗森林里野獸橫行,這可不是聳人聽聞。這些搶跑機器人可以靠著分析合約的調用發現潛在的獲利空間,哪怕這些調用和合約都是他們前所未見、一無所知的東西。

鑒于大部分人對搶跑機器人的認識不足,我們將深入分析這一情況,并了解搶跑機器人的普遍性。我們成功“捕獲”了一些通用的搶跑交易機器人,并分析了它們的行為。我們研究了這些機器人的效率以及交易被搶跑的概率。我們還測試了不同的方式來抵御搶跑交易機器人。

什么是搶跑交易?

一般而言,搶跑交易就是在一個已知的未來交易發生前,將另一個交易插入執行隊列的第一位。

一個簡單的例子是交易所的交易過程。假設有人想要在Uniswap上買入大量ETH,一種牟利方法就是趁價格還未上漲時搶先買入ETH,等到大批量買入交易推動ETH價格上漲后再賣出ETH。

除了這個例子之外,搶跑其它交易也有可能帶來巨大利潤,如清算、購買稀有NFT,或簡單的用戶錯誤。

在以太坊上,要搶跑一筆交易可以通過提供比目標交易略高一點的gas價格、激勵礦工在構建區塊時把自己的交易排在前面來實現。Gas價格高的交易會優先執行。因此,如果有兩個想要從同一個交易合約調用中獲利的交易被打包進同一個區塊內,只有排在前面的交易能成功套利。

動物行為學

DanRobinson和GeorgiosKonstantopoulos在《以太坊是黑暗森林》中提到了一次價值抽取,有1.2萬美元落入了“捕食者”的魔爪。這個捕食者非常強大,能夠追蹤以太坊交易池中的套利交易,并通過搶跑該交易來牟利。

黑暗森林故事聽起來如此“恐怖”,乍讀之下令人難以置信。我們確實有理由懷疑這種捕食者的存在。像Uniswap這樣受到大量機器人監視的平臺,如何能從中取出資金?Uniswap是否已經變成了一個“常規”套利者?

美國財政部當前債務上限下可用非常規措施金額僅剩670億美元:金色財經報道,美國財政部周五在一份聲明中表示,截至5月24日,可用于持續支付政府賬單的非常規措施金額僅為670億美元。這隸屬于總計3350億美元的授權措施,以防止美國政府在法定債務上限之下耗盡借貸空間。這一數字較5月17日的約920億美元有所下降。根據周五發布的數據,截至周四,美國財政部的現金余額降至388億美元,為2017年以來的最低水平,低于一天前的495億美元和5月12日的1400億美元。由于采取措施以避免突破31.4萬億美元的債務上限,財政部的銀行賬戶近來一直承受下行壓力。[2023/5/27 9:45:31]

今年早些時候,我們的深度分析文章證明了事實并非如此。這不是普通的機器人。據我們所知,它成功調用了此前從未被調用過的合約函數,而且還是在原始交易被代理智能合約混淆的情況下成功抽取了資金。

這至少應該引起我們的警覺。能夠監視交易池中交易就等于擁有了一個大殺器。因此,令人不安的是,一些服務商開始公開提供“暗池”交易層。

此類排他性的交易服務不會使用Infura之類的服務,甚至不需要運行私有節點,它會直接將交易直接發送給礦工,并承諾不會將交易傳播給網絡中的其它節點,從而保護該交易不被捕食者發現。

samczun等人也采用了同樣的方法,成功從一個有漏洞的合約中抽取了960萬美元。不難想象,礦工也會開始運行搶跑交易機器人,同時只為那些支付額外費用的用戶提供安全通道。

與以太坊的其它部分不同,這些機器人只在以太坊主網上運行。對于這些機器人來說,除了進行初期實驗之外,搶跑測試網交易賺不了錢,沒什么意思。此外,它們不需要像其他人那樣遵守規則,因為它們的邏輯是隱藏的。

數字資產數據提供商Amberdata收購分析平臺Genesis Volatility:金色財經報道,數字資產數據提供商Amberdata已經收購提供加密期權的分析公司Genesis Volatility。該公司計劃利用此次收購擴大其對DeFi的關注,為Frikton、Ribbon和Lyra等DeFi期權協議提供支持,擴大其對去中心化金融的關注。它還將尋求用Amberdata的鏈上、DeFi和市場數據加強Genesis Volatility的分析界面。

雖然該公司沒有披露交易條款,但據一位熟悉此事的消息人士稱,加密貨幣期權分析平臺是以Amberdata的大部分股權收購的。(the block)[2022/10/26 16:38:46]

我們不知道在什么情況下,這些搶跑交易捕食者才會罷手。因此,從某種程度上來說,追蹤這些捕食者就像是在尋找稀有動物。我們不想找出所有搶跑交易機器人,這里只針對某幾類通用的機器人。

為了確保我們捕獲的搶跑者是“真正的”通用型搶跑者,我們需要設下一個特殊的陷阱。這個陷阱就是,使用一個秘密字符串的SHA256哈希值創建一個新的合約,并在合約內存入一些資金。只有提供秘密字符串的人才能取出鎖定在合約內的資金。一旦有人發送取款交易,這些資金會直接發送給交易發送方。

我們的設想是,發送一個提供正確秘密字符串的“誘餌”交易,看看是否有人會復制這個字符串,并自己發送提供一個包含該字符串的交易來取走合約內的資金。如果有人能在誘餌交易之前取走這筆資金,則表明有人能分析交易池中的誘餌交易,復制其相關內容,并自己發送提供該內容的交易。

有趣的是,它們會向一個之前從未見過的合約提供一個它們之前從未見過的秘密字符串,來取走資金——這就是真正的通用型搶跑者。

比特幣礦企Core Scientific7月出售1975枚BTC,超7月開采量754枚:8月5日消息,比特幣礦企Core Scientific于7月售出1975枚BTC,7月開采量為1221枚,超出開采量754枚。資金將用于增加數據中心相關投資,并向比特大陸支付2021年訂購的100,000臺采礦設備。Core Scientific資產負債表上仍持有1,205個比特幣和約8300萬美元的現金。

此前消息,比特幣礦企Clean Spark于7月售出426枚BTC,超7月開采量42枚。比特幣礦企Bitfarms于7月售出1623枚BTC,超7月開采量1123枚。(CoinDesk)[2022/8/6 12:05:42]

通用型搶跑者是如何運作的?

這個實驗最重要的一部分是,理解通用型搶跑者是如何運作的。然而,如果有人造了一臺賺錢機器,是不可能將它分享到Github上的。因此,我們只能觀察捕食者的行為并進行逆向工程。

構建一個通用型搶跑者通常需要兩個組件。第一個組件是帶有或不帶有智能錢包代理的以太坊賬戶,可以發送修改過的交易。第二個組件是“后端”,也就是整個操作的大腦,通常發生在鏈下。運營者可以采用某種技術檢查交易池中的每個交易,并解析交易,替換交易的參數,判斷交易是否有利可圖。

-搶跑交易機器人的處理流程-

一個理性的機器人不會試圖搶跑一個交易費超過潛在收益的交易。交易手續費可能會很高,尤其是在gas價格很高的情況下。因此,我們預計至少需要一定的利潤才能引誘機器人上鉤。

此外,交易池中有很多交易,要想分析每個交易,時間也至關重要。挖出一個以太坊區塊平均需要12秒。如果一個交易支付的gas價格足夠高,搶跑者必須趕在下一個區塊挖出前迅速分析并替換該交易。

BTC 7至10年最后活躍量達13個月低點:金色財經報道,Glassnode數據顯示,BTC 7年至10年最后活躍供應量剛剛達到13個月低點,數值為1,246,624.545BTC;之前的13個月低點為1,246,626.815BTC。[2022/7/13 2:10:57]

這個過程有一定的概率性。有可能一個交易被廣播后,包含該交易的區塊就立即被挖出,機器人根本來不及分析該交易并廣播搶跑交易。

考慮到種種因素,我們測試了能讓機器人上鉤的方法。

設下陷阱

我們的合約的初始余額為0.035ETH,當時價值約20美元。只要有人能提供該合約中存儲的哈希值的正確原像,就可以獲得這筆錢。為了取走這筆資金并引誘捕食者,另一個賬戶會嘗試通過提供正確的原像來獲取這筆錢。

第一回合:直接調用合約

為了確保我們的陷阱正常運作,我們首先使用取款者的賬戶調用誘餌合約。在第一次嘗試時,gas價格相對較高,我們成功取回了誘餌合約中的資金。

這可能是因為利潤太低,不足以引誘捕食者,或是因為交易很快就被挖出,捕食者來不及反應。顯然,這不是理想結果,因為讓捕食者上鉤才是我們的目標。

第二回合:給機器人足夠的時間

在這一回合中,我們解決了之前遇到的問題。我們提高了潛在利益,并降低了gas價格,因此交易沒有很快就被挖出,讓機器人有足夠的時間發現它。我們還把合約內的資金增加到了0.04ETH。

這次,我們成功了。這個交易在被挖出之前等待了大約3分鐘,最終沒能取回誘餌合約中的資金。查看該合約的內部交易后,我們發現這筆資金被其他人取走了。

伊朗央行將在2個月內推出加密里亞爾的試點:金色財經報道,伊朗中央銀行(CBI)行長Ali Salehabadi表示,伊朗當局正在采取必要措施,從波斯歷8月23日開始的Shahrivar月開始,啟動加密里亞爾的試點。該試點項目最初將只覆蓋該國的一個地區。已經開發了一段時間的加密里亞爾,最終將被引入伊斯蘭共和國的其他地區,具體時間未定。新的加密里亞爾將根據管理紙幣和硬幣發行的規定發行,并將專門用于國內的交易。CBI將負責監測數字現金的金融和經濟影響,確保它不會對其貨幣政策產生負面影響。

CBI在4月宣布,它正在為即將推出的央行數字貨幣(CBDC)做準備,貨幣當局將是加密里亞爾的唯一發行者,并將決定其最大供應量。根據早前的報道,該幣基于一個分布式賬本系統,將由授權的金融機構維護,并能夠支持智能合約。(bitcoin.com)[2022/6/27 1:32:47]

這個搶跑交易使用了25.000001111Gwei,而且和我們的交易被打包進了同一個區塊。

蛛絲馬跡

既然我們已經成功捕獲了一個機器人,我們可以發現了一些有趣之處。第一,這個搶跑交易顯示,這個機器人并沒有直接調用合約。它沒有復制取款者的交易并通過自己所擁有的賬戶發送交易,而是將交易發送給代理智能合約,由后者充當智能錢包來執行交易。

現在,我們可以追蹤這個機器人之前和之后的交易地址,看看它到底成功搶跑了多少交易以及它是如何運作的。

-機器人正在使用它自己的代理合約-

對這個代理合約進行反編譯后,我們發現它主要有兩個函數:

一個是“取款”函數:就是將合約中的所有資金發送給該合約的運營者。另一個函數負責接收參數:需調用的合約、一個參數列表和一個傳遞值參數。

有了取款函數,代理合約就可以充當運營者的智能錢包。除了能夠執行對外部函數的調用外,代理合約還能確保交易開始時的余額不低于交易結束時的余額,否則就會還原,從而避免因調用未知合約而造成潛在損失。

使用DuneAnalytics,我們發現這個機器人自開始運行以來可謂“戰功赫赫”。

如果這個機器人始終使用同一個代理合約并發送地址來進行交易,我們估計這個機器人共賺取17ETH左右。

-該機器人自運行以來抽取的所有收益-

第三回合:搶跑交易機器人有多智能?

既然我們已經確信機器人是存在的,我們想要測試是否可以通過第二個合約來混淆我們的調用,從而成功取回誘餌合約內的資金。第二個合約是一個代理合約,將調用函數取走誘餌合約內的資金。

我們部署了一個ProxyTaker?合約,并調用函數來試圖取走我們的資金。由于使用代理合約取走資金的成本較高,我們又將誘餌合約中的資金增加到了0.055ETH。果不其然,我們的交易馬上就被另一個機器人搶跑了。

這次搶跑給我們留下了更深刻的印象。這個機器人不僅能夠檢測到我們的取款交易,居然還能識別出這個交易來自另一個完全不同的合約的內部調用!而且在超短時間內做到了這點。我們的交易僅在幾秒內就成功挖出。

這個機器人的身份也相當有趣。這個機器人的合約主要由下圖所示的賬戶控制。該賬戶在Etherscan上發表了一條評論,使人聯想到白帽子黑客嘗試從有漏洞的Bancor智能合約中取走用戶資金的活動。

-機器人運營者賬戶的評論-

鑒于這個機器人的行為模式與上一個機器人相同而且兩次搶跑事件情況相似,我們有理由懷疑這個機器人在白帽黑客的營救活動中,也對白帽黑客發起了搶跑。

這個機器人比上個機器人復雜得多。它不只聚焦于ETH,還執行其它不同的套利交易。

根據取走資金的賬戶的余額來判斷,這個機器人成功得多。目前,其賬戶余額持有約300ETH。我們還可以通過所有流入和流出代理合約地址的資金來估算這個機器人的收益,總計大約900ETH。這還只是粗略估算,因為該賬戶可能進行過與搶跑交易無關的交易。

最終回合:成功取回資金

為了讓這場挑戰變得更加有趣,我們再一次嘗試了混淆調用的做法,這次使用的是只有我們能使用的代理合約OwnedTaker。

這次的設置與第三回合差不多。我們往誘餌合約中充入0.05ETH。這筆資金同樣會通過交易返回給我們,而不是留在合約中。

在第一次嘗試中,發送至OwnedTaker合約的交易在大約1分鐘后才被挖出,我們成功取回了誘餌合約中的資金。

我們又重復實驗了一次。這次,我們往誘餌合約中重新充入0.06ETH,這是歷次實驗中最大的一只誘餌,來排除搶跑機器人因誘餌太小而不上鉤的可能性。

我們還故意將gas價格設為較低值。這個交易等待了大約7分鐘,但是依然成功取回了誘餌。

使用只能由所有者用來轉發交易的Owned代理合約有效防止了機器人解析數據并搶跑交易。

-成功取回資金-

或許是因為只有合約所有者能執行調用,或資金被發送至與調用合約不同的地址這一事實,使得我們成功躲避了搶跑交易機器人。

這些機器人很可能被設置成了以自我保護為首位。畢竟,當它們調用未知合約時,該合約有可能執行任意代碼。因此,我們可以合理地假設,在不能保證利潤的情況下,它們會選擇避免不必要的風險或交易費損失。

那么,我們贏了嗎?

這就取決于你怎么看了。我們使用了一個新的合約,而且只有我們知道用來控制合約的秘密字符串。顯然,我們捕獲的兩個搶跑機器人會檢測交易池中的所有交易。從它們所獲得的利潤來看,它們確實精于此道。

為什么我們在最后一次實驗中成功抵御了搶跑機器人的攻擊?

這很難說。可能是因為機器人不愿意冒險與帶有身份認證的合約通信,或是因為它們沒有料到資金會被轉移到另一個地址。這并不意味著,這個方法可以抵御所有搶跑機器人。更有可能是因為交易池中潛伏著更加復雜的機器人,它們不屑為這點蠅頭小利而冒險。

結論

通過這次實驗,我們已經證明了通用型搶跑機器人不僅存在,而且智能程度很高。

當然了,我們知道這個實驗并不完整,也無法得出權威結論。很多其它類型的機器人有著截然不同的觸發機制和運行方式。潛在利潤、通信模式和最低復雜性等因素也會影響這些機器人的運行方式。

然而,我們相信我們的工作提供了概念證明,并且進一步揭露了這些通用型搶跑機器人的運行方式。

可怕的是,如果有人調用一個能夠產生收益且任何人都能調用的合約,即使這個合約非常復雜,也很有可能會被機器人捷足先登。

因此,了解這些機器人以及它們的運行方式至關重要,這樣我們才能構建更加安全的系統。Flashbots等項目試圖通過實現MEV提取民主化并使其成為一種公共資源來實現該目標。我們希望這一研究能夠有所幫助。

如果你遇到過這類機器人,或是正在研究更復雜的混淆技術,請隨時聯系我們。你的經歷可以幫助我們更好地了解這類機器人,并構建一個更安全的加密貨幣社區。

感謝?TalBe’ery、OmerShlomovitz、OdedLeiba、DanRobinson等人對本文的審閱。

原文鏈接:

https://zengo.com/ethology-a-safari-tour-in-ethereums-dark-forest/

作者:?AlexManuskin

翻譯&校對:?閔敏?&阿劍

Tags:ETHBTC以太坊GAS3X Long Tether Gold TokenSAFEBTC以太坊硬幣ETHDugas幣最新進展

幣安交易所app下載
首發 | 穩定幣報告 :持續增長下仍有不確定性_BOS

原標題:《MYKEY穩定幣報告23:持續增長下仍有不確定性監管的靴子和Circle的公開信》為幫助加密市場參與者對穩定幣發展狀態保持更新,我們推出MYKEY穩定幣報告.

1900/1/1 0:00:00
MDC-打造2021DeFi年_EFI

近日,比特幣價格已經突破3.3萬美金,全世界為之嘩然,這標志著發展十余年的區塊鏈行業,已經是世界公認的高科技附加高價值的尖端行業之一,而站在前端的頭部——DeFi,經歷一年的蓬勃發展后.

1900/1/1 0:00:00
Hotbit 定于2021年1月6日上線 BAO(BITATO)_HOT

尊敬的用戶: Hotbit即將在開啟BAO數字資產服務 具體安排如下: 充值時間:2021年01月06日15:00交易時間:2021年01月06日15:00(香港時間)提現時間:2021年01月.

1900/1/1 0:00:00
Gate.io投票上幣空投福利第七十五期—Stratis (STRAX),$22,000美元STRAX空投福利開啟_GATE

1月6日12:00—1月13日12:00我們將開啟STRAX超級空投福利,$22,000美元STRAX等你來拿!新用戶請點擊注冊Gate.io并參與活動活動包括:1、投票STRAX,共享38.

1900/1/1 0:00:00
Hotbit定于2021年1月7日上線ETH2.0系列幣種 — stETH(Staked Ether)、CRETH2(Cream ETH 2)、 AETH(ankrETH)_TBI

尊敬的用戶: Hotbit即將在開啟ETH2.0系列幣種的數字資產服務。 具體安排如下: 充值時間:2021年01月07日15:00交易時間:2021年01月07日17:00(香港時間)交易對:.

1900/1/1 0:00:00
ETH日內是否有望再探1200?_VOY

以太坊受大餅新高影響,行情上行突破1120區域壓制,價格進一步上漲觸及1134前期壓制,未能維持突破,目前價格在1115位置附近運行.

1900/1/1 0:00:00
ads