2026年8月29日星期六

WhaleAgent
Coldcard 亂數出錯 1.3 億美元比特幣被盜

Coldcard 亂數出錯 1.3 億美元比特幣被盜

硬件錢包生產商 Coinkite 為 Coldcard 推出緊急韌體,起因是 2021 年一個編譯失誤令種子詞改用備援偽隨機數產生器,Mk3 的亂數強度只剩約 40 位元。多輪攻擊累計被盜約 1.3 億美元。最關鍵的是,更新韌體並不會修復已產生的種子詞,受影響用戶必須重新產生種子詞並轉走比特幣。

硬件錢包生產商 Coinkite 為旗下 Coldcard 推出緊急韌體,回應一宗因亂數產生器出錯而導致的比特幣失竊事件。據 Decrypt 報道,多輪攻擊累計被盜金額約 1.3 億美元。最關鍵的一點是:更新韌體並不會修復已經產生的種子詞,受影響用戶必須重新產生種子詞,並把比特幣轉去新地址。

出錯的是一個編譯開關

問題源自 2021 年 3 月的一次韌體整合失誤。

Coldcard 的正式編譯設定檢查的是 `MICROPY_HW_ENABLE_RNG` 這個參數「有沒有被定義」,而不是「有沒有被啟用」。結果編譯出來的韌體並沒有使用 STM32 晶片內建的硬件亂數產生器,而是退回 MicroPython 內置的 Yasmarang 偽隨機數產生器。

這個備援產生器只以晶片的唯一識別碼與計時器暫存器作初始值,之後再沒有收集任何新的亂數來源。換言之,種子詞的隨機性遠低於設計值。

一組 12 字的 BIP-39 種子詞理應有 128 位元的亂數強度。實際情況是:

  • Mk3:約 40 位元
  • Mk4、Mk5、Q:約 72 位元

40 位元代表可能的組合數量少到可以用一般算力逐一試出來。這不是理論上的弱點,而是已經被實際利用的漏洞。

攻擊如何發生

2026 年 7 月 30 日,攻擊者在 41 分鐘內清空了 1,196 個地址,取走 1,082.65 枚比特幣,當時價值約 7,020 萬美元。Galaxy Research 追蹤並還原了這次清倉的路徑。

其後再有兩輪懷疑相關的攻擊。The Hacker News 引述的統計為累計 1,367.05 枚比特幣、涉及 4,585 個地址,當時約值 8,860 萬美元;Decrypt 則指截至 8 月初,多輪攻擊的總額已達約 1.3 億美元。各方數字有出入,因為受害地址仍在增加,而比特幣價格在期間亦有變動。

支付公司 Block 的研究團隊發表了這次漏洞的技術分析。Coinkite 表示執法機關正在調查,並嘗試辨識責任人。

哪些機器受影響

按韌體版本劃分,而不是按購買年份:

型號

受影響版本

Mk2、Mk3

4.0.0 至 4.1.9(4.2.0 已修復)

Mk4、Mk5

5.6.0 之前

Q

1.5.0Q 之前

Edge 測試版

6.6.0X 之前(Mk4、Mk5)、6.6.0QX 之前(Q)

Coinkite 在 7 月 31 日,即第一輪攻擊翌日,就向所有受影響型號推送了緊急韌體。

新韌體要你自己搖骰

最新版本為 Mk4、Mk5 的 5.6.1 與 Q 的 1.5.1Q。產生新種子詞時,機器不再單靠自己的亂數,而是要求用戶親手提供隨機性,三選其一:

  • 至少 65 次按鍵
  • 50 次擲骰
  • 128 次擲硬幣

用戶提供的隨機性會與機器本身的亂數混合使用。同一次更新亦加強了交易簽署驗證、USB 資料處理、韌體驗證與備份程序。

更新韌體不等於安全

這一點值得重覆:安裝新韌體不會修復已經產生的種子詞。

亂數不足的問題存在於種子詞本身,不在機器裡。一組在舊韌體上產生的種子詞,無論之後灌進多新的韌體、抄到哪一款錢包,弱點都會跟着走。

所以受影響用戶要做的是三件事,缺一不可:

1. 在已更新的韌體上產生一組全新的種子詞

2. 把比特幣轉去用新種子詞衍生的新地址

3. 不要把舊種子詞還原到新韌體或其他錢包

第三點最容易做錯。把舊種子詞輸入一部已修補的機器,感覺像是「修好了」,實際上只是把同一組脆弱的私鑰換了個地方擺。

來源

No comments yet