這次事件跟一般常說的「私鑰外洩」有什麼不同?
多數資安事件的私鑰外洩,是攻擊者透過某種管道(釣魚、惡意軟體、實體側錄)取得了原本安全的私鑰。Coldcard 這次的情況完全相反——私鑰從一開始「產生」的那一刻起,就已經不夠隨機,攻擊者不需要接觸裝置、不需要騙到使用者做任何事,純粹靠離線推算候選種子、再拿推算結果去比對公開的鏈上資料,就能找到有餘額的地址。
這代表這是一種「被動」風險:受害者不是因為做錯了什麼被騙,而是他們手上的裝置從出廠那一刻起,安全承諾就已經沒有兌現,直到五年後才被發現。
為什麼「128 位元熵值」這種數字對一般人也重要,不是只有工程師需要懂?
熵值本質上是「攻擊者要猜對答案,得試多少種可能」的量化指標。128 位元代表 2 的 128 次方種組合,這是一個 39 位數的天文數字,就算把地球上所有電腦加起來全速運算,宇宙的年齡都不夠把它窮舉完,這也是為什麼業界把它訂為安全底線。Coldcard 受影響機型的有效熵值只剩 40 到 72 位元,等於把原本「不可能」的猜測難度,降低到「用現有硬體資源在可預期時間內就能完成」的等級。
你不需要理解背後的密碼學細節,但需要理解這個數字代表的落差有多懸殊——這不是「風險稍微提高一點」,而是從「數學上不可能」直接掉到「技術上可行」。
Coinkite 提到「必須假設攻擊者用 AI 檢視了原始碼」,這代表什麼樣的新常態?
這次事件裡有個耐人尋味的細節:Coinkite 自己在漏洞曝光前幾週,才用一款頂尖 AI 模型審查過同一份程式碼,卻沒有抓出這個問題,但公司仍然認為必須假設是攻擊者利用 AI 工具找到了這個弱點。這反映出一個正在發生的轉變——過去挖掘這類深藏在建置設定裡的細微邏輯錯誤,需要資深工程師投入大量時間逐行檢視,現在 AI 工具大幅壓低了尋找漏洞的成本與時間門檻。
這不代表 AI 破解了密碼學本身,而是它正在縮短「漏洞被寫入程式碼」到「漏洞被找到並利用」之間的時間差,迫使開發團隊必須從過去「定期做一次安全審查」的節奏,轉向更接近「持續性測試」的防禦模式,開源與否也不再是唯一的安全變數。
如果我用的不是 Coldcard,這件事跟我還有關係嗎?
有,而且關係比表面上更直接。多數使用者選擇硬體錢包時,判斷依據往往停在「離線儲存 = 安全」這個層次,很少進一步追問「這台裝置的隨機性到底是怎麼產生的、由誰驗證過」。Coldcard 事件證明,即使是開源、長期被視為業界標竿的產品,這一層驗證缺口依然可能存在五年而不被發現。
對任何硬體錢包使用者來說,具體可以做的事情是:訂閱裝置廠商的官方安全公告管道(而不是等新聞爆出來才知道)、留意韌體更新紀錄裡是否有跟亂數產生器相關的修正、以及理解自己選擇的產品是否曾經歷過第三方獨立的安全稽核,而不是只看「離線」兩個字就假設萬無一失。
2026 年 7 月 30 日,加密貨幣安全圈迎來一次特別諷刺的事件——受害的不是輕忽安全的散戶,而是一群特地買了硬體錢包、把資產離線存放、做對了所有教科書級動作的比特幣持有者。攻擊者鎖定的是 Coinkite 出品的 Coldcard 硬體錢包,這款設備長期被視為自我保管領域最偏執、最硬派的選項之一。
硬體錢包的安全承諾建立在兩個獨立條件上:私鑰只存在物理隔離的裝置上(駭客無法透過網路遠端竊取),以及私鑰是由足夠隨機的亂數(熵)產生(沒有人能在裝置外重現同一組私鑰)。Coldcard 這次事件裡,第一個承諾依然成立——沒有證據顯示攻擊者透過 USB 或 Wi-Fi 從裝置本身竊取金鑰;崩潰的是第二個承諾。
根據 Coinkite 官方發布的技術背景說明,問題根源是一次發生在 2021 年 3 月的韌體整合錯誤。當時工程團隊在移植程式碼庫時,把一個原本應該用來啟用晶片內建硬體真隨機數產生器(TRNG)的設定值誤設為零,但這個設定值實際的行為並不是「兩種都不用」,而是讓程式碼悄悄退回使用一個基於晶片序號與計時器暫存器初始化的軟體虛擬亂數產生器(PRNG)。這個 PRNG 初始化之後不再收集任何新的熵,等於用少數幾個攻擊者理論上可以推算或限縮範圍的變數,取代了原本應該有 128 位元強度的隨機性。
影響範圍不是所有型號一致:受影響的 Mk2 與 Mk3 機型,有效熵值崩落到約 40 位元左右;較新的 Mk4、Mk5 與 Q 機型雖然混入了額外的安全晶片熵源,但實際有效熵值也僅約 72 位元——兩者都遠低於業界標準的 128 位元目標(相當於 2 的 128 次方種可能組合,一個 39 位數的天文數字)。這個漏洞從 2021 年 3 月被引入後,潛伏了將近五年才被發現。
區塊鏈情資公司 Galaxy Research 的鏈上分析顯示,攻擊者在 7 月 30 日一次長達 41 分鐘的攻擊波次中,鎖定了 1,196 個比特幣地址,一次性轉出約 1,082.65 枚比特幣,以事發當時價格計算約 7,020 萬美元。這只是第一波——後續又出現多波攻擊,涉及超過 5,200 個獨立地址,累計流出金額持續攀升,Fortune 在 8 月 10 日的報導中提到累計被盜金額已超過 2,000 枚比特幣。由於受害者往往要數週甚至數月後才會發現自己的資產遭竊,這個數字目前仍被視為初步統計,而非最終定論。
另一個值得留意的細節是:Coldcard 的原始碼一直是公開的,Coinkite 自己也在事後坦承「必須假設有人利用 AI 工具檢視了我們過去版本的韌體」,即便公司本身幾週前才用一款頂尖 AI 模型審查過同一份程式碼,卻沒有抓出這個問題。這起事件因此也成為業界討論「AI 正在壓縮漏洞從產生、被發現到被利用之間的時間窗口」的具體案例。
事件爆發後,多家競爭對手立刻公開澄清自家產品不受影響。Ledger 表示自家設備使用內建於安全晶片中、經認證的真隨機數產生器,能為每組 24 字助記詞提供完整 256 位元熵值;Trezor 也說明這次問題僅限於 Coldcard 自家客製韌體與其亂數產生方式,與自家產品無關。這個對比說明了一個容易被混淆的重點:這不是「硬體錢包不安全」的類別性結論,而是同一類產品裡,個別廠商在實作細節上出了錯,而這個錯誤剛好發生在整個安全模型裡最關鍵、卻也最難被使用者自行驗證的一環。
如果你使用的是 Coldcard Mk2、Mk3、Mk4、Mk5 或 Q,且助記詞是在官方修復韌體發布之前產生的,Coinkite 的建議是必須視為已遭入侵,需要更新韌體、產生全新的種子、驗證指紋、先送一筆測試交易確認無誤後,才把全部資產轉移到新錢包——單純把舊的(已受污染的)助記詞匯入另一個錢包 App 並不能解決問題,因為問題出在種子本身的隨機性不足,而不是儲存它的容器。Coinkite 也特別提醒,救援過程中的操作失誤,造成的損失可能比漏洞本身還大,不建議在恐慌下倉促行動。
更廣的啟示是:「離線」與「隨機」是兩件不同的事,硬體錢包能保證前者,但後者取決於廠商程式碼裡一個外人很難獨立驗證的實作細節。你能做的事情有限但具體——追蹤所持有裝置廠商的官方安全公告管道、定期確認韌體版本、理解你所仰賴的「隨機性」實際上是由誰、用什麼方式產生的,而不是把「離線儲存」直接等同於「絕對安全」。