Paradigm 研究人員 2020 曾發表 「以太坊是一個黑暗森林」,揭示了潛伏在以太坊中的機器人,監視待處理交易,並試圖利用它們所創造的有利機會。但這種現象其實不僅限於以太坊。本文源自作者 Tal Be’ery 所著文章,由白話區塊鏈編譯、整理及撰稿。
(前情提要: 崩潰!粗心用戶不小心繳了「310萬美元」83.65顆BTC作為手續費)
(背景補充: 不是按錯?比特幣交易花「310萬鎂」手續費苦主:是遭駭客攻擊)
Zengo 的研究人員揭示了惡意機器人在監控比特幣區塊鏈上存在的不安全隨機地址,並立即利用它們進行盜竊,造成了數百萬美元的損失 —— 其中之一就發生在 2023 年 11 月 23 日。
作為 Zengo X 在區塊鏈安全領域持續研究的一部分,我們調查了最近丟失的 139 枚比特幣的案例,按當時市價計算約 550 萬美元。然而,我們並不知道,通過這樣做,我們打開了比特幣黑暗森林的潘朵拉魔盒。
在 2020 年,Paradigm 的研究人員 Dan Robinson 和 Georgios Konstantopoulos 發表了一篇具有重要影響力的博文,名為 「以太坊是一個黑暗森林」:揭示了潛伏在以太坊記憶體池黑暗中的機器人,監視待處理交易,並試圖利用它們所創造的有利機會。
今天,我們揭示了這種現象不僅侷限於以太坊區塊鏈,還適用於比特幣區塊鏈(可能也適用於許多其他區塊鏈)。
這起過高費用的案例
在 11 月 23 日,一筆比特幣交易引起了比特幣分析師的關注。這筆交易創下了支付費用的紀錄,支付了超過 300 萬美元(83 比特幣)的費用,用於轉移價值 200 萬美元的比特幣。
儘管對於這些過高的費用(通常費用應該低於 10 美元)的即時解釋是將其歸咎於某種手動輸入錯誤,就像過去發生的情況一樣,但很快有使用者在 X(之前的 Twitter)上聲稱他們是原始所有者,並以某種方式被駭客攻擊。
X 帳戶所有者通過使用相關的私鑰進行簽名,在密碼學上證明了他們實際擁有比特幣地址。
我們的調查開始了
當我們開始更深入地調查這筆過高費用交易時,出現了一些更微妙但有趣的事實。
上圖顯示了一些有趣的見解:
CPFP:即 「Child Pays For Parent」,意味著這筆交易的輸入是另一筆未確認交易的輸出。在這種情況下,這意味著在第一筆交易在記憶體池中等待的同時,發生了這筆過高費用的交易。根據探索器的資料,實際上是在前一筆交易的同一分鐘傳送的。 費用正好是總花費的 60%(83.65 / 139.4),因此不太可能是輸錯了,而可能是某種自動操作的結果。
RBF 禁用:交易傳送者禁用了 「Replace By Fee」(RBF)的選項,或者禁止其他交易使用更高的費用覆蓋此交易。 此外,另一個 X 使用者注意到,最初有多個候選的過高費用交易,通過支付更高的費用相互替換(在探索器中已經看不到了,因為被替換的交易資訊在短時間內就被清除了)。
實際情況:先假設一下
根據資料,有多種可能的假設來解釋這筆過高費用交易:
原始所有者由於輸錯了而支付了過高的費用:在 X 上所有者的宣告只是為了保全面子,因為聲稱被駭客攻擊聽起來更可接受,而不是承認自己笨拙。
注意:這似乎不太合理,因為這筆交易是在前一筆交易仍在記憶體池中的情況下發送的(見上文的 CPFP),這需要技術專業知識,而且費用的確切性質(正好是總費用的 60%)與輸錯或一般的笨拙的理論不符。
原始所有者的私鑰被駭客攻擊:攻擊者揭示了私鑰並等待所有者向該地址傳送資金。
我們的觀點:這不太可能,因為這筆交易被 RBF 搶佔,這意味著有多方知曉這個私鑰。
原始所有者的私鑰是可預測的:私鑰是以某種可預測的方式建立的,例如通過對密碼短語進行hash運算(「Brian-wallet」)或從一個太小的集合中選擇金鑰(32 位)。這些問題在我們最近的博文中進行了深入討論。
攻擊者正在生成所有這些可預測私鑰及其相應地址的集合,每當出現向其中任何地址傳送資金的交易在記憶體池中時,他們立即迅速並爭相傳送後續交易將這些資金轉移到他們的地址。
這最後的假設解釋了一切:即時響應(上文的 「CPFP」)和過高的費用是攻擊者為了擊敗其他攻擊者而必須採取的。費用的 「固定」 性質(60%)是由於操作的自動性質,這是為了擊敗其他方而必需的。禁用 RBF 是攻擊者採取的另一種機制,以增加擊敗其他方的機會。
這個假設也與過高費用交易接收端地址的過去行為一致。流入該地址的許多交易具有與這筆高費用交易相同的特徵(儘管不像這筆數百萬美元的交易那樣利潤豐厚)。
這個結論當然是一個非常可怕和大膽的解釋,需要進一步的證據。
證據
為了驗證我們的說法,我們決定生成一個可預測的私鑰,向其傳送資金,並觀察結果。如果我們的假設是正確的,那麼資金應該會立即被盜取。為了建立一個非隨機的私鑰並獲得生成的地址,我們使用了伊恩・克洛曼(Ian Cloeman)廣受歡迎的網路工具(在過去也非常有效)。
將私鑰設定為 「1」(注意生成的助記詞主要由索引為 0 的單詞 「abandon」 組成)
使用這個工具,我們將私鑰設定為 「1」 並得到了生成的地址:bc1q4jgysxym8yvp6khka878njuh8dem4l7mneyefz。我們驗證過它以前沒有被使用過,以排除其他可能的解釋。
接著我們向這個地址傳送了一筆 10 美元的交易… 正如預期的那樣,我們發現,緊接著就是一筆過高費用的交易(5 美元,或 50%),將資金重定向到另一個地址!
此外,我們觀察到多方之間激烈的競爭,試圖用更高的費用通過 RBF 來取得優勢,費用甚至達到了資金的近 99%,但由於第一筆交易禁用了 RBF,這些嘗試都未能成功。
4 筆 RBF 交易,最後一筆提供了總計 10 美元中的 9.87 美元作為費用。
結論:怪物確實存在
如果使用者的助記詞或私鑰以可預測的方式生成或受到不良隨機性的影響,一旦攻擊者瞭解到可預測生成的確切細節,它將被利用。
正如我們最近在博文中詳細介紹的那樣,加密錢包中私鑰的安全生成問題大多數使用者都忽視了,但卻證明是一個困擾著錢包並造成巨大損失的問題。
由於使用者不能自己生成私鑰,但也不能證明私鑰是隨機的,因此使用者無法驗證其金鑰的隨機性,必須信任其錢包。
這個問題是對依賴單一方錢包的更大核心問題的又一體現。為了解決這個核心問題以及特定的隨機性問題,我們必須接受這樣一個事實:使用者需要信任一些外部實體,並轉向更健壯的架構,通過增加參與方的數量來減少對每個涉及方的信任。
增加參與方可以降低對每個參與方的所需信任,並使系統更加健壯。
📍相關報導📍
比特幣ATM「Coin Cloud」驚傳大規模數據外洩!駭客稱已竊取30萬用戶隱私資料