編者按:本文來自以太坊愛好者,作者: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.由交易池堵塞導致的交易卡殼
觀點:量子計算對比特幣的威脅比以往任何時候都大:8月23日消息,據一位專家稱,量子計算對比特幣的威脅比以往任何時候都大,該行業必須緊急解決這個問題。”量子比特 \"取代了傳統的計算機比特,能夠以極大的速度處理信息。從這個角度來看,研究人員聲稱,在十年內,量子計算機將完全發揮作用,并能夠破解從你的手機加密到電子郵件地址的任何東西,甚至更令人擔憂的是,比特幣地址。量子加密公司Arqit的創始人David Williams呼吁加密貨幣行業緊急解決這個問題,否則就會面臨最大的問題。
Utimaco的前首席技術官表示,在第一批將被量子計算機打破的數字簽名類型中,有橢圓曲線,而橢圓曲線則用于在比特幣錢包中。(crypto-news)[2021/8/23 22:31:40]
3月12日時ETH價格的迅速變化導致用戶大量發送交易,產生了交易池內部的擁堵。對價格波動自動作出反應的機器人的活動加劇了這一情形。
-進入交易池的待打包交易計數vs.打包上鏈的交易計數-結果就是大量的交易通過網絡傳播,迫使使用默認交易池設置的節點通過下列手段來保護自己的系統資源:刪除,或者說丟棄掉許多有效的交易;拒絕,或者說無視掉許多有效的交易。交易池通常會用最低手續費門檻來選擇放棄哪些交易。雖說這些被丟掉的交易并沒在整個網絡中“完全丟失”,但被丟掉的交易可能會遭遇顯著的時延,直至網絡條件回歸正常。
-2020年3月11日至3月14日期間,到達交易池的被丟棄掉的交易和卡殼交易計數-更重要的是,丟棄交易還會帶來一個副作用:增加交易卡殼的可能性。刪掉一筆交易之后,該節點不會留下關于該筆交易的任何信息,比如發送地址和交易nonce。因此,當同一個地址的一筆新的交易到達交易池,該節點會發現該地址已處理交易和這筆新交易之間有nonce空缺,因此也不能處理這筆新交易。受此效果影響的交易就只能放到該節點的交易池中無法處理的隊列中。這些交易,無論所支付的交易手續費有多高,都一概會被卡住、無法處理。想了解更多細節,請看我們此前講解交易排序的文章:《節點是你通往內存池的網關》。與此同時,網絡的堵塞導致進入內存池的GasPrice門檻隨之迅速提高,因此最初的一些交易現在會因為GasPrice太低而被拒絕。而且,因為之前被刪除的交易不能回到交易池中來,交易的nonce空缺問題又變得更嚴重了。事實上,一些節點實現會在一段時間內主動無視掉這些被拒絕的交易,以保護自己不受點對點網絡中的泛濫攻擊影響。所以,nonce空缺實際上會鎖住這些受影響的地址,使得他們無法完成新的交易。卡殼交易更有可能影響會發出許多新交易的地址,包括自動化交易系統、支付網絡,甚至交易所。這些系統想回到正軌,但通常會加劇擁堵,因為越來越多交易被推遲處理。有沒有解決辦法?你得主動發現自己何時開始遭遇卡殼。這可能有點難,因為你的交易可能僅在某些節點處是卡殼的,但并不是在所有節點處都面臨卡殼。因此,你必須確定第一筆被丟棄、導致nonce空缺的交易,然后立即用可以得到打包的GasPrice加速讓這筆交易上鏈。最后,你還得繼續監控一開始發現卡殼的交易,確保它從不能處理的隊列中移回到了交易池的待打包部分中,并成功上鏈。如果你的交易還是卡殼,重復上述加速步驟,直到你可以確認所有導致nonce空缺的交易都已成功上鏈。當然,這也是我們開發并運營我們的NotifyAPI的理由之一。2.壓縮內存池中可上鏈的部分
觀點:比特幣仍處于一種新資產類別的“誕生”階段:10月19日,宏觀投資者Dan Tapiero發布推文稱,距離比特幣成熟還為時尚早。比特幣仍處于一種新資產類別的“誕生”階段。而據其發布的Statista數據,只有7%的美國人使用過比特幣。[2020/10/19]
網絡阻塞的出現——及其導致的交易卡殼——使得交易池中可上鏈交易的比重迅速縮減。我們管這叫“交易池壓縮”。礦工的激勵分兩部分:區塊獎勵和交易的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重發的交易消耗掉了。
觀點:加密交易量下降或因為投資者希望在第三季度結束前套現:盡管加密資產價格下跌和交易量下降可能是過去幾周的特點,但eToro加密資產分析師Simon Peters仍想提醒交易者長遠考慮。他表示:“值得注意的是,每一種代幣在2020年的表現都很積極,像以太坊和波場分別實現了160%和84%的增長。”他還表示,加密資產交易活動在9月份可能會有所下降,但與2019年相比仍有很大的上升趨勢。一份關于eToro月度交易數據的報告發現,盡管9月份出現了下滑,但比特幣、以太幣和XRP仍位居榜首。這三種資產連續第二個月成為該平臺最受歡迎的三種加密貨幣。Simon Peters解釋說,交易量(或許還有價格)的下降可能是因為投資者希望在第三季度結束前套現。他說:“過去幾個月,一些加密資產取得了一些異常的收益,投資者顯然希望從中獲利。然而,有理由對一些加密資產感到高興,特別是比特幣顯示出一些積極的鏈上指標。因此,如果投資者感到自己正迎來另一輪牛市,他們可能會在再次投資比特幣或其他加密資產之前先持有現金。”(Finance Magnates)[2020/10/5]
-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點之后才降為線性增長的模式。
觀點:新冠病大流行導致比特幣等數字資產的采用加速:新加坡星展銀行(DBS Bank)在8月份發布的加密貨幣季度報告表示,新冠病大流行導致比特幣等數字資產的采用加速。數字資產銀行Sygnum也認同這一觀點。
Sygnum銀行客戶聯席主管Martin Burgherr表示,“自從COVID-19病爆發以來,家族理財辦公室和個人對數字資產的興趣與日俱增,他們認為數字資產是一種替代方案,是抵御令人擔憂的通脹風險的一種方法。現在,銀行業正從封閉狀態中蘇醒過來,國內和國際銀行要求我們幫助建立B2B模式,使他們的客戶能夠投資數字資產,這一點已經顯著上升。”(CoinDesk)[2020/9/10]
-從UTC時間8點到10點期間達到交易池的交易計數,以分鐘計。藍線表示最終上鏈了的交易計數;而橙線表示根本沒有上鏈的交易計數。-即使這些交易似乎沒有上鏈的意圖,這些從未被打包的Hammerbot交易的GasPrice還是顯得太低了:在市場要求給出30Gwei乃至更高價格時,這些交易幾乎總是只給5Gwei。Hammerbot交易既沒有像套利機器人經常做的那樣加速交易,又高效地消耗掉了節點的交易池資源。從整體上來看,雖然進入交易池的交易數量急劇增加,交易池中還是有很大一個比例的交易GasPrice被人為壓低了。
-從UTC時間8點到10點間的交易GasPrice箱型圖。藍線表示最終上鏈的交易的情形。橙線表示從未上鏈過的交易的情形。-拿出一筆Hammerbot交易作為例子,可能有說明價值。這里是最終的交易哈希值:0x5b00c13020b82c9e8a098393564feca976dbbd2e8da6c54263f6e492be56fbfb。僅僅用你慣用的區塊瀏覽器檢視這筆交易并不能給出除了其區塊確認信息以外的洞見。表面上來看,這筆交易平平無奇。但Blocknative的交易池數據平臺檢測到了這筆交易上鏈之前使用這個nonce值的418筆獨特交易。這些交易都是在一個小時內出現的,也就是這些置換交易平均每6.86秒重發一次,而某些置換交易之間的時間差不超過0.1秒。
觀點:ETH一旦突破306美元,可能會大幅上漲:加密貨幣交易員Josh Rager在推特上表示,以太坊(ETH)價格一旦突破306美元,可能會大幅上漲。他還稱,現在購買以太坊與在2017年上漲之前購買以太坊一樣,當時以太坊和比特幣不僅分別達到了1,300美元和20,000美元的歷史高位,而且許多山寨幣價格也暴漲。(U.Today)[2020/7/7]
-地址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星球日報經授權轉載。最近,以BTC和ETH為首的主流加密貨幣輪番上漲,尤其是BTC和ETH的價格都創了年內的新高。讓投資者等來期待已久的牛市.
1900/1/1 0:00:002019年10月24日,高層集體學習時強調,把區塊鏈作為核心技術自主創新的重要突破口,加快推動區塊鏈技術和產業創新發展.
1900/1/1 0:00:00編者按:本文來自深潮TechFlow,作者:宋小丸,Odaily星球日報經授權轉載。一開始,大家都覺得DeFi是幣圈的解藥.
1900/1/1 0:00:00律動BlockBeats消息,自推出流動性挖礦以來,YFI無預挖的方式可以說是將流動性挖礦推到了一個高潮階段。隨后硬分叉出來的YFII引爆了分叉潮流。但是隨著熱潮的涌起,各種「騙局」也開始出現.
1900/1/1 0:00:00編者按:本文來自IMEOS,Odaily星球日報經授權轉載。PIZZA?EOS上最強DeFi?最近有人說:“只要跟DeFi扯上關系,什么都能上天”.
1900/1/1 0:00:00編者按:本文來自風火輪社區,作者:佩佩,Odaily星球日報經授權轉載。現在的幣圈有兩大謎題:一個是柚子何時重回前八,一個是ampl這個人間精品盤這次到底會不會真正的崩塌,哈哈.
1900/1/1 0:00:00