編者按:本文來自以太坊愛好者,作者:Blocknative,翻譯:阿劍,Odaily星球日報經授權轉載。Blocknative已經找出了MakerDAO在3月12日和13日時的清算活動乃是有人刻意為之的證據。這些證據是從“Mempool”,即礦工打包區塊時候的備選交易池,中發現的。交易內存池是一個以太坊生態中經常被人忽略——也不受大家重視——的部分。作為交易內存池分析專家,Blocknative運營著一個由遍布全球且配置各不相同的Geth節點和Parity節點組成的網絡。這一基礎設施使我們能部署實時的交易監控服務,我們可以捕捉、規范化和歸檔內存交易池的狀態變化。Blocknative在“黑色星期四”時捕捉到了3000萬行數據,使我們能做一項開放式的研究;迄今為止,我們已經發現了數個似乎已被利用過的“漏洞”。雖然很多人都已寫過“黑色星期四”的結果,但在本文中我們會首次披露Blocknative內存池存檔中的數據,用新的數據和理論說話。我們也把分析要用的底層內存池交易數據集合開放出來了,供大家審閱。如果你是一位安全研究員,想了解更多我們的發現,或想發現其它潛在的交易池異常,請聯系我們。總結
Blocknative的內存池事后檢驗報告顯示,內存池中有三大因素影響到了3月12日和13日的事態:被阻塞的交易——內存池的擁堵極大地提高了交易卡殼率,讓同一地址連續發出的多筆交易都被卡住、不能得到處理;交易池“壓縮”——交易池中可上鏈部分比重的大幅減少,可能影響到了Gas價格的估計;“Hammerbot”——自動化的交易系統加劇了交易池堵塞,因此與交易池壓縮效應相疊加;我們出版這份分析以及相關的數據,是為了引起大家對動態交易風險的關注,這種風險在區塊鏈網絡擁堵期間可能會迅速出現。背景:“黑色星期四”概況
在2020年3月12日,密碼學貨幣市場上出現了有史以來最大的拋售潮,幾個小時里面,ETH價格暴跌43%,BTC的價格跌掉了39%。隨著價格下跌,一個負反饋循環出現,多種DeFi合約內都開始出現流動性降低和強制清算活動。在此期間,這種下行的壓力使得每一個嘗試在網絡上發送交易的個體都遇到了嚴酷的挑戰。
-UTC時間2020年3月12日到13日期間按小時加權的ETH平均價格。數據來源:cointelegraph.com-迅速的價格變化導致了以太坊交易池的持續擁堵,因為自動化的交易系統總是按照程序對波動性機械地作出反應。如此堵塞情形的一個負面后果是MakerDAO債倉清算活動中出現了“0價格拍賣”現象。在“黑色星期四”期間的3994個清算拍賣中,有1462個債倉的擔保品是被0價格拍走的。在大概12小時的時間里,鎖在債倉中、總計832萬美元的擔保品被0價格拍走,沒有讓系統回收到一分錢。更多細節請看MakerDAO自己發布的《2020年3月12-13日的價格暴跌及其對MakerDAO的影響》一文。1.由交易池堵塞導致的交易卡殼
觀點:擁有CBDC的央行將取代華爾街的美元代理銀行:金色財經報道,Pozsar認為,擁有CBDC的央行將扮演新角色,充當本國進出口公司的清算代理人,然后使用CBDC直接與外國同行進行結算。通過這種方式,它們將取代華爾街的美元代理銀行,例如摩根大通和花旗銀行。結果是各國不再需要那么多美元。
這一趨勢是由貿易密集型中型經濟體推動的,這些經濟體在全球美元的供需中發揮著巨大作用。擁有貿易順差的凈出口國將積累更少的美元,因此向全球外匯市場供應的美元也將減少。存在貿易逆差的進口商對以前用于支付商品的美元的需求將會減少。[2023/7/8 22:24:57]
3月12日時ETH價格的迅速變化導致用戶大量發送交易,產生了交易池內部的擁堵。對價格波動自動作出反應的機器人的活動加劇了這一情形。
-進入交易池的待打包交易計數vs.打包上鏈的交易計數-結果就是大量的交易通過網絡傳播,迫使使用默認交易池設置的節點通過下列手段來保護自己的系統資源:刪除,或者說丟棄掉許多有效的交易;拒絕,或者說無視掉許多有效的交易。交易池通常會用最低手續費門檻來選擇放棄哪些交易。雖說這些被丟掉的交易并沒在整個網絡中“完全丟失”,但被丟掉的交易可能會遭遇顯著的時延,直至網絡條件回歸正常。
-2020年3月11日至3月14日期間,到達交易池的被丟棄掉的交易和卡殼交易計數-更重要的是,丟棄交易還會帶來一個副作用:增加交易卡殼的可能性。刪掉一筆交易之后,該節點不會留下關于該筆交易的任何信息,比如發送地址和交易nonce。因此,當同一個地址的一筆新的交易到達交易池,該節點會發現該地址已處理交易和這筆新交易之間有nonce空缺,因此也不能處理這筆新交易。受此效果影響的交易就只能放到該節點的交易池中無法處理的隊列中。這些交易,無論所支付的交易手續費有多高,都一概會被卡住、無法處理。想了解更多細節,請看我們此前講解交易排序的文章:《節點是你通往內存池的網關》。與此同時,網絡的堵塞導致進入內存池的GasPrice門檻隨之迅速提高,因此最初的一些交易現在會因為GasPrice太低而被拒絕。而且,因為之前被刪除的交易不能回到交易池中來,交易的nonce空缺問題又變得更嚴重了。事實上,一些節點實現會在一段時間內主動無視掉這些被拒絕的交易,以保護自己不受點對點網絡中的泛濫攻擊影響。所以,nonce空缺實際上會鎖住這些受影響的地址,使得他們無法完成新的交易。卡殼交易更有可能影響會發出許多新交易的地址,包括自動化交易系統、支付網絡,甚至交易所。這些系統想回到正軌,但通常會加劇擁堵,因為越來越多交易被推遲處理。有沒有解決辦法?你得主動發現自己何時開始遭遇卡殼。這可能有點難,因為你的交易可能僅在某些節點處是卡殼的,但并不是在所有節點處都面臨卡殼。因此,你必須確定第一筆被丟棄、導致nonce空缺的交易,然后立即用可以得到打包的GasPrice加速讓這筆交易上鏈。最后,你還得繼續監控一開始發現卡殼的交易,確保它從不能處理的隊列中移回到了交易池的待打包部分中,并成功上鏈。如果你的交易還是卡殼,重復上述加速步驟,直到你可以確認所有導致nonce空缺的交易都已成功上鏈。當然,這也是我們開發并運營我們的NotifyAPI的理由之一。2.壓縮內存池中可上鏈的部分
觀點:散戶投資者已基本退出比特幣投資:10月22日消息,區塊鏈協會執行董事Kristin Smith在接受CNBC采訪時指出,與其他月份相比,當前比特幣的波動性似乎趨于穩定。主要原因是散戶投資者已基本退出比特幣投資,他們目前沒有能力將多余的錢投入比特幣。但是她認為,現在仍在投資比特幣的投資者將會長期堅持下去。
Kristin Smith表示:“隨著我們開始看到經濟復蘇,人們將更多風險投入到他們的投資組合中,我們將看到對比特幣的投資增加,隨后價格上漲。”(Finbold)[2022/10/23 16:35:43]
網絡阻塞的出現——及其導致的交易卡殼——使得交易池中可上鏈交易的比重迅速縮減。我們管這叫“交易池壓縮”。礦工的激勵分兩部分:區塊獎勵和交易的GasPrice;所以收益最大化需要打包GasPrice最高的那部分交易,挖礦時要根據交易池——即候選交易——的情況來決定打包哪些交易。在交易池擁堵時,多種行為會導致交易池壓縮,對礦工來說值得考慮的交易比重越來越小:資源耗盡:在某些節點實現中,卡殼交易數量的迅速上升會消耗掉可觀的交易內存池資源。這又反過來導致節點處理有效pending交易的可用資源進一步減少。不斷升高的GasPrice:ETH價格的下跌導致許多交易變得“高度緊急”,因為這些交易在構造時是希望能夠趕在ETH進一步下跌時上鏈確認的。這使得個體用戶也好、自動化機器人也好,都趕緊提高GasPrice。因為不是所有參與者都這樣密切關注著堵塞情形,待打包交易總體包含了反常比例的低價——因此不可能被打包的——交易。反應慢半拍的定價算法:交易池中待打包交易的GasPrice分布,以及近期被打包交易的GasPrice,使得一些預測合適GasPrice的服務的測算出現扭曲。但這就導致更多GasPrice過低的新交易出現,又進一步加劇了測算值與實際值的不一致。交易池堵塞出現時,讓交易打包上鏈所需付出的GasPrice會升高是意料中的事情。但是,因為并不是所有人都跟蹤到了GasPrice這種迅速的提高——包括,尤其是那些有GasPrice報告功能的服務——上鏈所需的平均Gas價格開始偏離進入交易池的交易平均Gas價格。而一般的出價上漲跟不上當時的價格上漲速率。在3月12日,我們的數據平臺發現了交易手續費定價的明顯偏離。在3月13日,交易池中部分交易的GasPrice與上鏈交易的GasPrice差額在可預料范圍內,但在3月12日,已挖出交易和未挖出交易的Gas出價簡直是天壤之別。不能上鏈的交易要成為可以上鏈的交易,一般來說標準的操作就是提高GasPrice。但是,在3月12日,這樣做根本就沒用。因為,大量交易池資源被以幾乎同樣的GasPrice重發的交易消耗掉了。
觀點:比特幣期貨的基金成本高于ETF,管理方式也更加復雜:針對美國證券交易委員會(SEC)主席Gary Gensler在Aspen安全論壇上談到比特幣ETF時,建議此類基金只追蹤比特幣期貨,這要求投資者投入大量保證金進行交易,與多數加密愛好者期望的基于比特幣的ETF不同。資產管理公司VanEck數字資產研究主管Matthew Sigel表示:我們認為基于比特幣期貨的基金是劣質產品,它們的表現一直遜于比特幣價格,在管理方式上也更加復雜,成本高于ETF。它們是不合格的投資工具。
彭博ETF分析師James Seyffart表示:這只是一種不同的墊腳石。期貨受到監管,它能為比特幣市場提供額外的投資者保護,但本質沒有太大區別,因為如果比特幣能被操縱,比特幣期貨也會受到相應的影響。但期貨產品的需求水平較低,它們不會像真正的比特幣ETF規模那么大或增速那么快。(彭博社)[2021/8/4 1:32:43]
-2020年3月12日至13日每小時的GasPrice箱型圖。每個小時的箱型都劃分了1分位值和3分位值,兩者中間的線表示中值,而箱頂和箱底的線表示最大值和最小值。已忽略掉了異常值-這張圖反映了真實情形嗎?還是說這些出價過低的交易本身就是為了堵塞掉交易池呢?如果真是有意為之,為什么呢?3.Hammerbot交易導致內存池失真
我們的內存池存檔數據暗示,機器人成功地提高了堵塞情形,并扭曲了交易池中交易的Gas價格分布,而且還沒有導致交易手續費的相應提高。這樣做的凈效果就是交易卡殼率的提高和GasPrice報告服務扭曲,結果是交易池一場,使天平偏向了某些特定的交易——即,提高了清算CDP倉位的交易以0價格成功競拍的幾率。機器人用本來就無意提交上鏈的交易捶打交易池。這些Hammerbot通過發送置換率極高的交易消耗掉了交易池的資源。但是,交易池還有一種設計,是要求重發交易至少要提高10%的Gas價格,本身就是用來防止此類行為的。那這些交易是如何實現置換的呢?答案很簡單:異常高的交易丟棄率導致節點“失憶”。Hammerbot等待著——或者僅僅是預估——自己發出的交易從交易內存池中丟棄,然后立即用相同的Gas價格重發交易。因為節點“忘記掉了”之前被丟棄的交易,自然就盡職地把這些置換后的交易當成有效交易接了過來。當然,結果就是進一步的擁堵。Hammerbot用顯然是“自動化”的方式讓自己的交易變得畸形,每一次置換都包括了稍微更改過的合約輸出。因此,每一筆Hammerbot交易都有一個獨特的哈希值,可以繞過所有節點的點對點網絡協議中的泛濫攻擊過濾保護。如下圖中重點標出的粉色線所示,從UTC時間3月12日9點開始,我們的交易池數據平臺發現根本不可能被打包的待打包交易數量急劇上升。35分鐘后,此類不可能上鏈的交易產生的速度翻了一倍,在10點之后才降為線性增長的模式。
觀點:社交媒體幫助重建人們對加密資產的信任:12月20日消息,業內人士表示,加密貨幣公司正在利用Twitter、Instagram、YouTube和Telegram上的加密社區,與專業加密貨幣影響力人士開展活動,以重建人們對這一資產的信任。加密貨幣交易所WazirXNischal Shetty表示,社交媒體起到重建這種信任的作用,新興加密貨幣行業在印度越來越受歡迎,在印度,該行業尚未收到監管,信任很重要。(印度經濟時報)[2020/12/21 15:53:27]
-從UTC時間8點到10點期間達到交易池的交易計數,以分鐘計。藍線表示最終上鏈了的交易計數;而橙線表示根本沒有上鏈的交易計數。-即使這些交易似乎沒有上鏈的意圖,這些從未被打包的Hammerbot交易的GasPrice還是顯得太低了:在市場要求給出30Gwei乃至更高價格時,這些交易幾乎總是只給5Gwei。Hammerbot交易既沒有像套利機器人經常做的那樣加速交易,又高效地消耗掉了節點的交易池資源。從整體上來看,雖然進入交易池的交易數量急劇增加,交易池中還是有很大一個比例的交易GasPrice被人為壓低了。
-從UTC時間8點到10點間的交易GasPrice箱型圖。藍線表示最終上鏈的交易的情形。橙線表示從未上鏈過的交易的情形。-拿出一筆Hammerbot交易作為例子,可能有說明價值。這里是最終的交易哈希值:0x5b00c13020b82c9e8a098393564feca976dbbd2e8da6c54263f6e492be56fbfb。僅僅用你慣用的區塊瀏覽器檢視這筆交易并不能給出除了其區塊確認信息以外的洞見。表面上來看,這筆交易平平無奇。但Blocknative的交易池數據平臺檢測到了這筆交易上鏈之前使用這個nonce值的418筆獨特交易。這些交易都是在一個小時內出現的,也就是這些置換交易平均每6.86秒重發一次,而某些置換交易之間的時間差不超過0.1秒。
觀點:運行ETH 2.0驗證是不對稱押注資產價格和收益率:加密研究機構Messari Inc.研究主管Eric Turner在推特表示,運行ETH 2.0驗證程序似乎是一個難以置信的的不對稱押注資產價格+收益率。壞處被限制在32 ETH,但是如果路線圖繼續按計劃進行,好處是巨大的。如果你不認為2.0會成功,為什么還要持有ETH呢?[2020/12/2 22:52:34]
-地址0x5cf2fa4e0c84e71fd2e4fa86d2fa64b7a50a6fc0從UTC時間9點開始在相連的4個nonce上發起的置換交易次數-大多數置換交易都使用同樣高的GasPrice,都是因為節點的交易丟棄機制才作為“新”交易成功進入到節點的交易池內。只有最后一筆想要上鏈的置換交易才需要給出更高的GasPrice,然后被打包到區塊內。
-地址0x5cf2fa4e0c84e71fd2e4fa86d2fa64b7a50a6fc0從UTC時間9點開始在相連的4個nonce上的平均GasPrice-這種模式使我們很難說這些Hammerbot交易到底是有心還是無意的。實際上,我們的系統在一分鐘之內記錄下了超過20個從UTC時間9:05開始活躍的可能的Hammerbot地址:
-如果你是上述任一地址的運營者,我們很希望跟您聊聊。請聯系我們-注意:這些特征明顯的、使用同樣的GasPrice重發被丟棄交易的Hammerbot行為,也可能跟最近大家討論的“backrunning”行為有關。見此處和此處。交易池漏洞對MakerDAO的影響
MakerDAO的擔保債倉是用戶生成穩定幣DAI時托管被鎖定的擔保品ETH的智能合約。因為ETH的價格有波動,而DAI希望能保持1美元的價格,所以維持一個開放的CDP所需的擔保品數量是不斷變動的。當3月12日ETH價格暴跌時,大量的CDP立即變成了擔保不足的狀態,需要被強制清算。系統為保證擔保品清算時可以獲得競爭性的市場價格,安排了折價機制:參與清算者可以以折價買到擔保品ETH;這就使得許多人都愿意運營多種多樣的Keeper機器人。清算活動的表現形式為拍賣。任何Keeper都可以用鏈上出價參與拍賣,而一個看護者出價之后,另一個看護者想要與之競爭必須在10分鐘之內發送競拍價更高的交易。每當有新的競拍交易到達,都會刷新10分鐘的競拍窗口期。如果10分鐘之內系統沒有收到更高的出價,則拍賣結束,最高出價者勝出。但是,當礦工節點因為網絡擁堵和交易池壓縮而以異常高的比例丟棄交易時,許多看護者的交易都被卡住了,因此根本沒能及時讓清算CDP的競拍交易成功上鏈。結果就是看護者們無法在由0價格競拍交易開啟的窗口中可靠地開展競爭,即使看護機器人正確地發現了0價格拍賣并發送出了更高出價的交易也沒用。最終,因為擁堵和實際手續費的混淆,看護者無法恰當地解讀出GasPrice的實際上漲幅度,看護者的交易也因此被節點丟棄。接下來是產生nonce空缺、交易在使用默認交易池設置的節點處卡殼。遭遇此種情形的看護者機器人為其他拍賣發出的所有后續競拍交易會全部被卡住,讓該看護者根本無法在10分鐘的競拍窗口內參與交易,最終讓0價格競拍交易得逞。下面我們用1866號拍賣作為例子來說明上述過程:一個“0價格競拍機器人”在UTC時間15:59:50時以200Gwei的價格發送一筆0價格競拍交易。該交易在26秒后成功上鏈,10分鐘倒計時就此開始。一個“誠信看護者機器人”在16:08:01時以450Gwei的GasPrice發送一筆競價交易。這筆交易是在10分鐘內發出的——之隔了8分11秒——而且Gas價格還是最初那筆0價格競拍交易的2.5倍。如果能在接下來的1分49秒內被打包到區塊中,1866號拍賣就會像大家預期的那樣進行。但是,這筆競拍交易因為這個好機器人之前發送的一筆交易被丟棄而被卡住了。這個好機器人在16:15:31又發出一筆4500Gwei的競價交易。但是哪怕GasPrice提高了10倍也無濟于事,因為這個地址被nonce空缺鎖死了。再然后,等到競價交易不再被卡的時候,已經過了10分鐘的窗口期,交易自然就失敗了。上述模式可能重復了一整天,最終導致總計832萬美元的擔保品被0價格拍走。值得指出的是,大多數Hammerbot的活動似乎都在當天較早的時候發生,這樣就造成了后來影響到Keeper機器人交易的擁堵情況。GasPrice的迅速上升、導致Gas價格估計失靈的交易池壓縮,同樣對其它價格信息傳輸機制造成了負面影響。這導致了定價方面的混亂,也有可能使得面臨清算風險的CDP持有者推遲了添加擔保品的決定。總結我們的發現
總結一下,我們對“黑色星期四”交易池狀況的事后檢驗暗示了下述情況:多種Hammerbot的活動導致挖礦節點的交易池飽和。這推高了以太坊網絡的擁堵程度并使之不斷上升。發送許多以同樣的GasPrice發出的置換交易在點對點gossip層和節點本身產生了巨大的開銷。正常交易的傳播受到阻礙,大量的交易被挖礦節點丟棄或者拒絕。這又反過來提高了出現nonce空缺和卡殼交易的幾率,還扭曲了對GasPrice的估計。雖然自動化的交易系統通常被設計成會自動提高交易的GasPrice,許多交易系統并不能很好地處理nonce空缺問題——甚至是完全束手無策。以上就是我們在研究過程中的發現。我們的數據集可能還能揭示出更多的證據以及/或者新的發現來支持或證否我們的結論。為加速這個發現過程,我們現在把那兩天的交易池存檔數據開放給社區,我們希望這能促進對交易池在“黑色星期四”及以太坊網絡其它類似事件中所扮演的角色的研究。建議:保護好你自己,以及你的用戶
交易池是區塊鏈生態系統非常關鍵的一環,雖然它瞬息萬變,常常被忽略。因此,交易池中藏著很多開發者和用戶“完全無知的未知之物”。現在,我們并不知道有多少人在開發這樣的利用交易池弱點的技術——只是顯然有人在利用交易池的特點。我們也不知道有多少這樣的弱點存在——只是那些復雜的利用方法似乎已經在現實中證明了其有效性。因此,我們建議所有交易、所有協議、所有錢包供應商和交易員:持續監控交易池的情況,注意發現交易池開始變得擁堵的時機;交易丟棄率和拒絕率的變化。理解交易nonce排序的細微差別。即使合理構造的交易也可能被卡在網絡的某個角落。主動觀察被卡殼的交易,并且要知道加速先前的哪一筆交易能使發送交易的地址脫困。基于交易池中對礦工有吸引力的部分來計算GasPrice。還需要知道你所依賴的GasPrice報告服務所用的算法。在高度擁堵期間,不要假設交易待打包的情形是可以預測的。先防范,你要監控每一筆交易,了解每一個細節,包括Gas是否充分,交易是不是被丟棄、被卡殼,會不會被人搶跑,等等。這些問題,如果你自己動手解決,是非常有挑戰性的、很耗時而且很昂貴的。Blocknative的全球數據平臺一直在往捕捉和規范化去中心化交易池的方向優化——也就是一直在實現上述的五個建議。我們的基礎設施和API提供了實時的交易池監控服務,保證你的交易能可靠、靈活、可預測地流動。……非常感謝評議本文初稿的各位,包括:SarahBaker-Mills、DmitriyBerenzon、SpencerBogart、NicCarter、Hsin-JuChuang、TomaszDrwi?ga,AndyGray、HudsonJameson、JonKol、CalvinLiu、JustinMart、GavinMcDermott、TaylorMonahan、AndraNicolau、CharlieNoyes、SimonaPop、AlexPruden、AustinRoberts、CuySheffield、LarrySukernik、ChrisWhinfrey,等等。我們非常感謝你們的反饋、洞見和指導。
Odaily星球日報譯者|Moni 以太坊聯合創始人VitalikButerin公開表示,他正在“積極推動”以太坊2.0“1階段”實施工作.
1900/1/1 0:00:00編者按:本文來自知礦大學,Odaily星球日報經授權轉載。今年5月底,去中心化借貸平臺Compound公布了治理代幣COMP的分配方案,推出了“流動性挖礦”激勵機制.
1900/1/1 0:00:007月31日19:21分,據CoinGecko數據顯示,DeFi聚合收益協議yearn.finance治理代幣YFI短時跌破3500美元,一小時跌幅13.7%,截至發稿時暫報3518美元.
1900/1/1 0:00:00文|王也運營|蓋遙編輯|郝方舟出品|Odaily星球日報“加快推動區塊鏈技術和產業創新發展。”2019年10月24日,習近平總書記在中共中央局就區塊鏈技術發展現狀和趨勢進行第十八次集體學習時.
1900/1/1 0:00:00編者按:本文來自Cointelegraph中文,作者:STEPHENO'NEAL,Odaily星球日報經授權轉載.
1900/1/1 0:00:00對零研發基礎、低投入的中小企業、開發者來說,建鏈不再是區塊鏈“入場“的攔路虎,區塊鏈也不僅僅是技術極客的主場.
1900/1/1 0:00:00