Coinkite表示,一名攻击者利用人工智能發現了其自身人工智能審查未發現的漏洞,導致500個錢包暴露於種子生成缺陷,該缺陷將128位元熵降至40位元。
摘要
- 7月31日,一名攻擊者在25分鐘內從約500個Coldcard硬體錢包中盜取了594枚比特幣(約3800萬美元),利用了自2021年3月以來存在的種子生成缺陷。
- 該缺陷將Mk3種子的有效熵從128位元降至約40位元,使得私鑰可通過暴力計算而非密碼攻擊被猜測。
- Coldcard的製造商Coinkite認為,攻擊者使用人工智慧發現了其開源韌體中的漏洞,並表示其自身在數週前對相同代碼進行的人工智慧審計未發現任何問題。
- 目前所有Coldcard型號均受到一定程度的影響,Mk4、Q和Mk5種子的熵估計約為72位元而非128位元,且更新韌體無法修復已建立的種子。
- Block、Trezor和Ledger已確認其產品不受影響,而此事件引發了關於硬體錢包是否可被信任為重要比特幣持有唯一保管層的根本性問題。
攻擊持續了25分鐘。UTC時間7月31日凌晨2:14,一個實體開始從Coldcard硬體錢包中掃走比特幣。到2:39,594枚比特幣已從約500個錢包轉移到一個整合地址。這些資金在掃走時價值約3800萬美元,並非通過釣魚、惡意軟體或物理訪問設備被盜。它們被盜是因為設備生成了可預測的私鑰。
總部位於多倫多的Coldcard製造商Coinkite在發現漏洞後於7月30日發布了公告和技術分析。該公司表示,其韌體中的構建錯誤導致種子生成從軟體後備方案而非設備設計使用的硬體隨機數生成器中獲取隨機性。該缺陷自2021年3月發布的韌體版本4.0.1以來一直存在。過去五年中在受影響的Coldcard上生成的每個種子都比其所有者認為的更弱。
影響不僅限於即時的財務損失。Coldcard一直是比特幣極端主義者、安全研究人員和機構保管人的首選硬體錢包,他們優先考慮氣隙、開源、僅比特幣的安全性。如果比特幣中最受信任的硬體錢包能在未被發現的情況下攜帶五年的熵缺陷,問題不在於Coldcard是否失敗,而在於任何硬體錢包是否可被信任為保管安全的單點。
機制:128位元如何變成40位元
技術解釋既簡單又令人擔憂。Coldcard的韌體在種子生成期間調用一個函數來獲取隨機性。代碼庫中存在該函數的兩個實現,具有相同的簽名:Coinkite編寫的硬體隨機數生成器,以及繼承自MicroPython(韌體所基於的嵌入式Python運行時)的軟體後備方案。
預處理器守衛本應選擇硬體實現。但守衛僅檢查配置設置是否已定義,而非其值是否正確。當韌體編譯時,構建系統通過選擇軟體後備方案解決了歧義。構建完成時沒有警告。生成的韌體產生的種子看起來正常,生成有效的比特幣地址,並接受存款,沒有任何跡象表明底層熵災難性地弱。
在Mk3上,Coinkite估計在此條件下生成的種子的有效搜索空間約為40位元。128位元種子具有比可觀測宇宙中原子更多的可能組合。40位元種子約有一萬億種組合。這對於使用商品硬體的中等資源攻擊者來說是可及的。差異不是四捨五入誤差,而是無法撬開的鎖與可以踢開的鎖之間的區別。
Mk4、Q和Mk5型號包括額外的安全元素,將自己的熵混合到種子生成過程中。Coinkite估計這些型號在缺陷下產生的種子具有約72位元的有效熵。這在材料上優於40位元,但仍遠低於128位元目標。72位元密鑰空間在當前消費級硬體下實際上無法暴力破解,但對於擁有專門計算資源的資金充足的對手來說,在理論上可及。
Coinkite公告中最關鍵的細節是一句話:“更新韌體不會更改或修復現有種子。”每個在受影響韌體上生成種子的Coldcard所有者必須在修補後的硬體上創建新種子並遷移其資金。對於弱私鑰沒有軟體修復。密鑰本身必須更換。
AI 層面
Coinkite 的公告提出了一項主張,立即引起了安全社群的關注。該公司表示,它相信「有人使用 AI 來審查我們韌體的先前版本」以發現此漏洞。它還補充說,在攻擊發生前數週,它已使用「現有最佳模型之一」對相同程式碼進行了審查,而該模型「並未發現此漏洞或任何嚴重問題」。
這項主張看似合理但未經證實。Coldcard 韌體是開源且公開於 GitHub 上。任何個人或自動化系統都可以對其進行審查。此特定漏洞類別,即檢查定義而非數值的預處理器防護,是大型語言模型在偵測能力上表現不一的那種細微程式碼路徑錯誤,取決於上下文、提示工程和所使用的模型。
Coinkite 所描述的不對稱性是真實存在的,即使其具體歸因是推測性的。攻擊者和防禦者確實可以使用相同的 AI 工具。但攻擊者具有結構性優勢:他們需要找到一個可利用的漏洞,而防禦者則需要找到所有漏洞。一個審查程式碼卻未報告任何嚴重問題的 AI 會提供虛假信心。一個審查程式碼並找到單一可利用路徑的 AI 則為攻擊者提供了所需的一切。
此事件也引發了對硬體錢包安全稽核流程的更廣泛質疑。Coldcard 因其開源方法而受到讚揚,該方法允許任何人檢查韌體。但開源的可見性僅與所執行檢查的品質一樣有價值。如果製造商自己的 AI 審查(據推測是在對程式碼庫架構和意圖有完整上下文的情況下進行)錯過了此漏洞,那麼開源優勢就變成了理論上的,而非實際上的。
安全研究社群對 AI 歸因的主張持懷疑態度進行了辯論。幾位研究人員在社交媒體上指出,此特定漏洞類別,即檢查定義與數值的預處理器防護,在嵌入式系統文獻中有充分記載,並且可以通過傳統的程式碼審查發現。他們認為,AI 的框架可能會掩蓋一個更根本的失敗:Coinkite 對於五年來未更改的關鍵程式碼路徑,沒有足夠的人員審查流程。無論是 AI 發現了此漏洞,還是人類研究人員發現的,根本問題是相同的。程式碼是公開的,漏洞雖然細微但並非新穎,而防禦方卻無人發現。
Block 於 7 月 31 日發布了一份獨立的技術分析,確認其所有產品(包括 Bitkey)均不受影響。Block 的硬體負責人 Max Guise 敦促任何擁有受影響 Coldcard 的人「在安全的情況下盡快轉移資金」。Trezor 確認其設備使用不同的熵生成方法,因此不易受攻擊。Ledger 尚未發布正式回應,但其安全元素架構使用獨立的硬體隨機數生成器,該生成器獨立於韌體運行。
五年窗口
漏洞的時間線與漏洞本身一樣具有破壞性。引入此漏洞的韌體版本 4.0.1 於 2021 年 3 月發布。在 2021 年 3 月至 2026 年 7 月 31 日修補韌體發布之間,在受影響的 Coldcard 上生成的每個種子都可能受到損害。這是五年四個月的受影響種子生成期。
在此期間,Coldcard 出貨了 Mk3(受影響,40 位元)、Mk4(受影響,72 位元)和 Q(受影響,72 位元)。2026 年發布的 Mk5 也受到影響,為 72 位元。Coinkite 在此期間發布了多次韌體更新,但均未解決或偵測到此熵問題。該公司自己的安全審查,包括最近的 AI 稽核,均未發現此問題。
五年窗口也恰逢比特幣價格大幅上漲的時期。2021 年在受影響的 Mk3 設備上生成的種子(當時比特幣交易價格在 29,000 美元至 69,000 美元之間)現在保護著價格高於 60,000 美元的資產。攻擊者投入計算資源暴力破解 40 位元金鑰的經濟誘因隨著每次價格上漲而增加。持有 1 BTC 的錢包在種子生成時價值 30,000 美元,現在價值是其兩倍。攻擊者的投資回報率僅通過等待就得到了改善。
受影響錢包的數量難以精確估計。Coinkite 不公佈銷售數據。初始攻擊中被盜的 500 個錢包代表了最暴露的子集,可能是 Mk3 用戶,他們擁有最弱的 40 位元熵,且持有足夠大的餘額以證明攻擊者的計算投資是合理的。在所有受影響型號中,種子受損的錢包總數可能要大得多。
攻擊者的整合模式顯示出系統性的準備。594枚比特幣從大約500個錢包被掃入一個整合地址,然後轉移到一個持有562枚比特幣的單一地址。25分鐘的執行窗口和同時被攻擊的錢包數量表明,攻擊者在發起掃蕩之前已經預先計算了易受攻擊的密鑰。這不是一次機會主義的攻擊。這是一次需要數週或數月準備的行動。
對掃蕩的鏈上分析顯示出有條不紊的執行順序。攻擊者沒有同時廣播所有500筆交易,這會冒著記憶體池擁堵和可能被監控異常交易模式的MEV風格機器人搶先交易的風險。相反,交易被分批處理,每批在一兩個區塊內確認。整合地址在多個區塊中接收資金,然後一筆最終交易將562枚比特幣轉移到一個看似長期持有的地址。截至撰寫本文時,這些資金尚未進一步移動。
遷移問題
Coinkite的修復指南要求受影響的用戶執行錢包遷移:在修補後的固件上生成新的種子,驗證備份,發送測試交易,然後轉移剩餘資金。對於擁有單一錢包和中等餘額的用戶來說,這個過程很簡單。但對於使用多重簽名設置、時間鎖交易或作為較大託管安排中一把密鑰的錢包來說,這個過程要複雜得多。
遷移本身也帶來了安全風險。將資金從受損錢包轉移到新錢包需要受損錢包簽署交易。如果攻擊者已經計算出私鑰,攻擊者可以通過監控區塊鏈上來自受損地址的任何交易並立即掃蕩剩餘資金來搶先遷移。餘額較大的用戶面臨著自己的遷移和攻擊者的掃蕩之間的競賽條件。
對於在多重簽名安排中持有比特幣的用戶,其中Coldcard作為多個簽名設備之一,遷移更為複雜,但風險部分得到緩解。一個2-of-3多重簽名錢包,如果只有一把密鑰是在受影響的Coldcard上生成的,只要攻擊者無法破壞第二把密鑰,它仍然是安全的。然而,受損的密鑰仍然削弱了整體安全模型,應該被替換。這個過程需要與所有密鑰持有者協調,構建一個帶有替換密鑰的新多重簽名錢包,使用現有的法定人數簽署遷移交易,並在轉移剩餘資金之前驗證新安排。
Coinkite處理了一個邊緣情況,提供了部分緩解。在種子生成期間添加了至少50次獨立骰子投擲的用戶貢獻了足夠的外部熵,使總熵超過128位,無論固件錯誤如何。骰子輸入與設備生成的隨機性一起進行哈希處理,因此強大的骰子熵彌補了設備熵的不足。添加了99次或更多投擲的用戶僅從骰子就貢獻了大約256位熵。
骰子例外情況凸顯了一個諷刺。最有可能在種子生成期間添加大量骰子投擲的用戶是最注重安全的用戶,正是那些因為Coldcard在卓越安全實踐方面的聲譽而選擇它的群體。對於這些用戶來說,他們自己對熵質量的偏執可能無意中保護了他們免受製造商未能提供熵的影響。
這對硬件錢包安全意味著什麼
Coldcard事件並不是第一次硬件錢包被入侵。Ledger在2020年遭遇了數據庫洩露,暴露了客戶信息。Trezor在2023年披露了一個物理提取漏洞。但那些事件涉及元數據暴露或物理訪問要求。Coldcard的錯誤不同,因為它破壞了設備的基本安全承諾:生成真正隨機的私鑰。
時機加劇了損害。事件發生之際,比特幣交易接近歷史高點,機構對自我託管解決方案的採用加速了。專門選擇Coldcard因其安全聲譽的公司和家族辦公室現在面臨著緊急的運營決策:在可能已經被攻擊者計算出的密鑰上遷移資金,同時與可能已經計算出這些密鑰的攻擊者賽跑。
該事件挑戰了比特幣社區視為基礎的幾個假設。假設開源固件本質上比專有固件更安全,因為它可以被審計。假設專用比特幣設備中的硬件隨機數生成器比軟件替代方案更值得信賴。假設一個專門專注於比特幣而不是支持多種加密貨幣的設備將擁有更簡單因此更易於審計的代碼庫。
這些假設原則上都沒有錯。它們只有在被視為絕對時才是錯的。開源韌體可以被審計,但實際上並未被有效審計。硬體隨機數生成器更值得信賴,但僅當建置系統確實連接到它們時。僅比特幣的程式碼庫更簡單,但簡單並未阻止一個五年前的錯誤未被發現。
實際的教訓是,硬體錢包不應被視為大量比特幣持有的唯一保管層。多重簽名安排將金鑰分散到不同製造商的多個設備,結合獨立生成的熵源,提供了任何單一設備都無法比擬的深度防禦。Coldcard事件表明,即使是最受信任的設備也可能以用戶看不見的方式失敗,直到資金消失。
更廣泛的問題是,硬體錢包行業的安全審查流程是否足以保護其保護的資產。一個單一韌體錯誤造成3800萬美元的損失表明它們不足。比特幣倡導者推廣的自我保管模式要求保管工具達到與其試圖取代的銀行基礎設施相當的可靠性標準。在Coldcard事件之後,該標準尚未達到。
值得關注的事項
- **攻擊者對562 BTC合併的動向。** 資金是否被混合、發送到交易所或原地持有,將提供有關攻擊者 sophistication 和管轄權的資訊。鏈分析公司已經在監控該地址。
- **初始500個錢包之外的其他受影響錢包。** 攻擊者可能計算了其他錢包的金鑰,但選擇不同時掃走。所有受影響Coldcard型號的總暴露量可能遠大於初始的3800萬美元。
- **用戶遷移的速度。** Coinkite無法強迫用戶生成新的種子。30、60和90天後仍留在受損種子上的錢包數量將表明建議是否有效觸及受影響的用戶群。
- **監管回應。** 在傳統金融中,由製造商韌體錯誤導致的消費金融產品3800萬美元損失將觸發監管行動。消費者保護機構或金融監管機構是否回應此事件將表明政府如何分類硬體錢包。
- **競爭對手的安全披露。** Block、Trezor和Ledger已確認未受影響。他們是否發布自己熵生成過程的詳細技術分析將表明行業是否將此視為Coldcard特定失敗還是系統性審查機會。
常見問題
Coldcard漏洞中被盜了多少比特幣?
大約594 BTC,價值約3800萬美元,在2026年7月31日的25分鐘內從約500個Coldcard硬體錢包中被抽走。資金被合併到一個持有562 BTC的地址。
Coldcard漏洞的原因是什麼?
Coldcard韌體中的建置錯誤導致種子生成使用MicroPython的軟體隨機數回退,而不是硬體隨機數生成器。預處理器守衛僅檢查配置設置是否已定義,而不是其值,因此建置連結到了錯誤的實現而沒有警告。
受影響的種子有多弱?
Mk3種子具有約40位的有效熵,而不是預期的128位。Mk4、Q和Mk5種子由於其安全元素中的額外熵而具有約72位。40位的金鑰空間可以用商品硬體暴力破解。
更新韌體是否能解決問題?
不能。更新韌體可以修正未來的種子生成,但不會修復在受影響韌體上已創建的種子。用戶必須在已修補的硬體上生成新種子,並將所有資金遷移到新錢包。
哪些Coldcard型號受影響?
所有當前型號都受到一定程度的影響。Mk3受影響最嚴重,熵為40位。Mk4、Mk5和Q受影響約72位。Tapsigner、Opendime和Satscard使用不同的代碼,不受影響。
其他硬體錢包是否受到影響?
Block、Trezor 和 Ledger 已確認其產品不受影響。Block 發布了獨立技術分析。Trezor 表示其設備使用不同的熵生成方法。此漏洞特定於 Coldcard 的韌體建置過程。
Coinkite 在攻擊前是否知道此錯誤?
Coinkite 表示,在錯誤被報告後,於 7 月 30 日發現了此缺陷並發布了公告。該公司表示,在攻擊前數週對其韌體進行了 AI 審查,但審查未發現此問題。此錯誤自 2021 年 3 月起就存在。
Coldcard 用戶現在應該怎麼做?
更新至您型號的最新韌體。在已修補的設備上生成新的種子。驗證備份和接收地址。發送測試交易。轉移剩餘資金。在原始種子生成期間添加了至少 50 次獨立擲骰子的用戶可能不需要遷移,但 Coinkite 建議無論如何都進行遷移。







