閃電小費

顯示具有 coldcard 標籤的文章。 顯示所有文章
顯示具有 coldcard 標籤的文章。 顯示所有文章

2026年8月9日 星期日

解決比特幣自主託管的三難困境 (Solving Bitcoin's Self-Custody Trilemma)

解決比特幣自主託管的三難困境 (Solving Bitcoin's Self-Custody Trilemma)

作者:Luke Childs | 發布時間:2026 年 8 月 7 日 | 原文來源:lu.ke

上週,攻擊者開始清空 Coldcard 錢包。由於一個韌體漏洞導致其隨機數生成器(RNG)變得可預測,攻擊者完全不需要接觸實體設備,就能重新推算並生成種子詞(seed phrase)。目前損失金額已超過 1.3 億美元,且仍在持續上升。

我的種子詞最初就是在受影響的 Coldcard 上生成的。我之所以沒有損失畢生積蓄,唯一的理由是:多年前在設定該設備時,我拒絕完全信任它的隨機數生成器。我當時在 MacBook 上生成了 256 位元的熵(entropy),拋硬幣 256 次,並將這些熵全部混合輸入到 Coldcard 本身的熵之中。在此之前,我還做了一次測試演練,從頭重寫了 Coldcard 的種子衍生邏輯,以驗證我的額外熵來源會被正確地組合。

15:57 接下來幾天我會逐漸把資金轉過去
15:57 在 Node.js REPL 中用 JavaScript 重寫了 Coldcard 的種子衍生邏輯,包括加入擲骰子功能
15:58 然後做了一次模擬演練,將種子短語複製到 Node.js REPL 中,檢查擲骰子數值是否被可驗證地加入,最後在我的筆電上得到了相同的種子
15:58 接著清除所有資料,並在完全不輸入進筆電的情況下進行了正式操作
15:58 獲得了一個由 Coldcard 生成的 256 位元種子
15:59 然後從筆電的系統隨機數生成器(SRNG)生成了 256 位元的熵,編碼為 99 個 1-6 的字元,並輸入到 Coldcard 的擲骰子區塊
15:59 接著拋硬幣 256 次,正面輸入 1(相當於骰子點數 1),反面輸入 2(相當於骰子點數 2)
16:01 因此,我的最終種子短語是由三個完全獨立的 256 位元熵來源雜湊組合而成的:
• 來自 Coldcard 內部 SRNG 的 256 位元
• 來自 MacBook 透過 Node.js crypto.randomBytes 生成的 256 位元
• 來自宇宙(拋硬幣)的 256 位元
16:02 整個過程中我也把窗簾拉得嚴嚴實實,以防那些討厭的間諜衛星(笑)
【圖解翻譯】5 年前創建 Coldcard 種子時發給朋友的對話記錄

要避免損失畢生積蓄,居然需要達到這種「偏執狂(paranoid schizophrenia)」級別的防範,這簡直荒謬至極。任何人都不應該被逼著做到這種地步。

直接原因是一個韌體 bug。但根本原因是:我們整個加密貨幣行業的標準建議,把使用者的全部積蓄都押在單一設備上,並盲目祈禱該設備的硬體、韌體、供應鏈和隨機數生成器永遠完美無瑕。

大家現在都在問:我們要如何防止這種悲劇再次發生?要回答這個問題,你必須先理解為什麼目前的每一種方案都是有缺陷的。

比特幣自主託管的三難困境 (Bitcoin's Self-Custody Trilemma)

今天,你只能三選二。市場上沒有任何一個自主託管方案能夠同時滿足這三個特性。讓我們逐一檢視現有的選擇:

安全 (SECURE) 易用 (EASY TO USE) 無須信任 (TRUSTLESS)
【圖解】自主託管三難困境基本模型

1. 單簽 (Singlesig: 熱錢包或單一硬體錢包)

單簽具備無須信任易用性(一台設備,點擊即可支付)。但它存在巨大的單點故障(Single Point of Failure)。一次漏洞、一次偷竊,或一次不良的備份,就會導致資產全毀。上週絕大多數 Coldcard 受害者都位於三角形的這條底邊上,並因此損失了畢生積蓄。

安全 (SECURE) 易用 (EASY TO USE) 無須信任 (TRUSTLESS) 單簽 (Singlesig)

2. 多廠商多簽 (Multivendor Multisig)

多簽兼具安全性無須信任。但它的使用體驗極其痛苦:需要管理多台設備、多個種子詞備份、多個安全存放地點、多個 PIN 碼,還要每年進行巡禮以檢查設備是否損壞。如果把這種方案推薦給普通人,因操作失誤和帳號鎖死造成的資金損失,最終會比駭客盜竊的還多。這對大多數人來說不是一個現實的選擇。

安全 (SECURE) 易用 (EASY TO USE) 無須信任 (TRUSTLESS) 多簽 (Multisig)

3. 協同託管 (Collaborative Custody,如 Casa, Bitkey)

協同託管(例如 Casa 和 Bitkey)讓事情變得有趣。Casa 讓多簽變成了普通人真正能用的產品。Bitkey 在用戶體驗上更近一步:無種子詞,手機可以在硬體預先授權的限額內直接支出,只有大額提款才需要碰硬體錢包。這是感覺像熱錢包的冷儲存。

問題在於信任模型。託管服務商持有其中一枚協同簽署金鑰,且控制著手機 App 的更新管道。一次惡意 App 更新,他們就能掌握 3 枚金鑰中的 2 枚。我並不是說這很可能發生——他們顯然是聲譽良好的公司。但試想一下,如果發生類似行政命令 6102(Executive Order 6102,強制沒收黃金/資產)的事件,私有託管被定為非法,政府強制要求公司配合沒收資產,他們的員工是不會為了保護我的資產而替我去坐牢的,我也不能這樣要求他們。

安全 (SECURE) 易用 (EASY TO USE) 無須信任 (TRUSTLESS) 協同託管 (Collaborative)

三角形的三條邊,代表了目前所有解決方案被迫做出的三個妥協。這就是自主託管的三難困境。

介紹 Anzen:破解三難困境

自 Coldcard 事件爆發以來,我和許多人一樣徹夜難眠。我一直在思考如何徹底防止此類事件再次發生。我相信我設計出了一種全新的錢包架構,機能同時滿足自主託管三難困境的三個頂點。

Anzen 的設計目標是極度易用且極難出錯——幾乎不可能弄丟資金。它具備與「2-of-3 多廠商多簽」同等的安全性,使用體驗卻像熱錢包一樣簡單,同時保持完全的無須信任(Trustless),無需任何第三方參與。

安全 (SECURE) 易用 (EASY TO USE) 無須信任 (TRUSTLESS) ANZEN

這是一個金庫(Vault)架構,完全可以在當前的比特幣網路上運行。不需要第三方協同簽署者、不需要伺服器、不需要軟分叉、不需要新的 Opcode。完全由比特幣的共識規則進行無須信任的強制執行。

Anzen 只使用兩枚金鑰:一台手機,和一個硬體錢包。金庫就是你的冷儲存;手機則同時充當日常熱錢包與金庫的協同簽署者。攻擊者必須同時攻破這兩枚金鑰才能盜走資金。

Anzen 金庫腳本邏輯(Vault Script):
手機 + 硬體錢包 ───> 立即解鎖 (Immediately) 或 (OR) 手機單獨 ───> 14 個月後解鎖 (after 14 months) 或 (OR) 硬體錢包單獨 ───> 15 個月後解鎖 (after 15 months)

Anzen 金庫透過組合上述腳本與一系列預簽名的時間鎖交易鏈(Presigned Timelocked Transactions),實現了比特幣初衷中的可程式化貨幣功能。它支援:

  • 每月額度 (Monthly allowances): 每個月,有一筆預先設定好的固定金額釋放出來。手機可以單獨將其從冷儲存中提取到內建的熱錢包中。
  • 緊急提款 (Emergency access): 手機可以隨時發起預先設定的大額提款。提款觸發後需要等待 1 週的延遲(1-week delay),在此期間可以隨時被撤銷。如果偷車賊偷了你的手機並觸發緊急提款,這只相當於響起了長達一週的警報,讓你隨時可以關閉並阻斷提款。
  • 撤銷機制 (Revocations): 每一個預授權的每月額度都可以被隨時、永久地撤銷,並將資金回滾重置回冷儲存中。

可以把這想像成支票帳戶儲蓄帳戶:熱錢包是你的支票帳戶,金庫是你的儲蓄帳戶。每月額度就像是每個月 1 號從儲蓄帳戶自動轉帳固定金額到支票帳戶。緊急提款就像是一筆需要 1 週時間審核交割的大額轉帳申請,在此期間你可以隨時取消。

每年一次(最好在每年同一天),你在硬體錢包上重新核准金庫政策。這會自動觸發手機與硬體錢包之間的簽署儀式,滾動更新金庫(重置時間鎖),並預先授權未來一整年的支出額度。

年度簽署儀式 (Annual Ceremony) 手機 + 硬體錢包 · 每年一次 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 緊急提款 1 週延遲 【圖解】任何預授權均可隨時撤銷,回滾回冷儲存

在一年的其餘 364 天裡,你只需要使用手機。這就是核心價值所在:擁有熱錢包的操作體驗,同時享有冷儲存的背後保障。

為什麼這些主張成立? (Why the claims hold)

我這裡做出了非常強烈的主張,但我相信每一個主張都是精確且相對容易驗證的:

安全性媲美 2-of-3 多簽: 在 2-of-3 多簽中,攻擊者需要攻破 2 台設備。安全性取決於你最脆弱的兩台設備。Anzen 要求攻擊者同時攻破位於完全獨立設備上的兩枚完全獨立的金鑰。這是相同的門檻,但需要管理的設備更少。且與 2-of-3 多簽一樣,Anzen 在單一金鑰丟失或洩漏時依然安全。Anzen 甚至具備可選的社交恢復路徑,即使兩台設備同時遺失也能恢復。這比 2-of-3 多簽具備更強的抗遺失能力。

發生何種異常狀況 (What goes wrong) 你該怎麼做 (What you do) 攻擊者能獲得什麼 (What the attacker gets)
手機遺失、損壞或被盜 從加密雲端備份復原,幾分鐘內搞定 一台鎖定的手機。什麼也拿不到。
硬體錢包遺失或被盜 靠每月額度維持生活;待手機的 14 個月時間鎖到期後,恢復整個金庫 一個鎖定的設備。什麼也拿不到。
手機金鑰遭攻破/洩漏 從備份復原,取消所有懸而未決的提款,轉移資產至新金庫 最多只能拿到當時已存在手機熱錢包內的餘額
硬體錢包金鑰遭攻破/洩漏 你的手機解鎖日期比攻擊者早整整一個月(14 個月 vs 15 個月)。直接轉移資金,你在競賽中獲勝 什麼也拿不到(只要你在這一個月的領先期內採取行動)
兩台設備同時遺失 使用可選的社交恢復路徑復原
兩枚金鑰同時被同一個攻擊者在同一時間視窗內攻破 資產全失(這是所有頂級架構人都會失守的極限門檻) 全部資金

你真的必須非常「努力」才有可能在 Anzen 中弄丟資產。只要你不要蒙著眼睛、張開雙臂走在大街上,一手拿著解鎖的手機,另一手拿著解鎖的硬體錢包,你就是安全的。

無須信任 (Trustless): 沒有第三枚金鑰、沒有協同簽署伺服器、沒有掌握資金控制權的公司更新管道。連恢復機制都不增加任何信任假設:雲端備份是你的手機金鑰,並經過加密,只有你的硬體錢包可以解密。社交恢復只是在雲端增加另份副本,加密至信任聯絡人的金鑰:他們不持有任何資產,甚至不知道自己是你的恢復聯絡人,直到你告訴他們。他們僅僅是協助你解密雲端備份。即使恢復出了金鑰,仍需等待金庫的時間鎖到期。

所有資金流向均寫入你可以親自審閱的比特幣腳本中,或由你自己的硬體簽署。沒有任何人能被法院傳喚來沒收你的錢包,因為沒有其他人參與其中。

易用 (Easy to use): 設定良好後,硬體錢包每年只需要核准一次。其餘所有操作都在手機上完成。這比單簽硬體錢包還要省力(單簽硬體錢包每次支出都需要手持設備)。日常使用中,Anzen 的體驗無限接近行動熱錢包。

「但是預簽名交易聽起來很複雜」

底層技術確實複雜:年度簽署儀式會將金庫拆分為多個區塊,並預先簽署一整套結構嚴密的交易。但這些複雜性完全不需要呈現在使用者面前。這純粹是一個工程問題,且完全可解。就像沒有人需要理解 Diffie-Hellman 金鑰交換演算法才能透過 HTTPS 瀏覽網頁一樣,也沒有人需要理解如何管理預簽名交易鏈才能核准 Anzen 金庫政策。

真正的缺口在於硬體:目前的硬體錢包都不支援這類設計,因為它們都是圍繞著「簽署這筆交易(sign this transaction)」這一原語建立的。我們需要的原語是:「核准此政策(approve this policy)」。手機草擬計劃,硬體錢包的螢幕用通俗易懂的語言顯示全部內容。硬體錢包上的金庫政策審核畫面,對於 Anzen 的意義,就像瀏覽器網址列上的綠色鎖頭對於 HTTPS 的意義一樣。

【圖解畫面】按下一個按鈕即可預先簽署一整年的交易
以下為硬體錢包輸出的預簽名交易結構 (Output Structure)
鏈上 UTXO: 12 個月額度 (各 0.1 BTC) 預簽名交易鏈
1 月額度 (0.1 BTC) 1月1日生效 │ 隨時可撤銷 (立即生效)
2 月額度 (0.1 BTC) 2月1日生效 │ 隨時可撤銷 (立即生效)
3 月額度 (0.1 BTC) 3月1日生效 │ 隨時可撤銷 (立即生效)
... (4月 至 11月 邏輯完全相同) ...
12 月額度 (0.1 BTC) 12月1日生效 │ 隨時可撤銷 (立即生效)
鏈上 UTXO: 0.9 BTC (剩餘儲蓄金庫) 緊急處置套件
1. 緊急觸發交易 (Emergency Trigger): 立即生效
✔ 0.5 BTC 緊急提款: 觸發後 1 週解鎖生效 [提款]
✖ 0.5 BTC 緊急取消: 1週延遲期間隨時可阻斷撤銷 [攔截]
0.4 BTC 找零資金: 找零返回金庫 (Change back to vault)

金庫未來十二個月所需的所有交易,均透過一次按鍵完成簽署:每月額度、可取消額度的撤銷交易,以及緊急交易包。手機加密儲存這些交易並用其運行金庫,硬體錢包則放回抽屜,直到明年同一天前都無需使用。

我們下一步該怎麼走? (Where do we go from here?)

這不僅僅是一個想法。我已經在主網(Mainnet)上運行了一個概念驗證原型,使用真實資金,完全實現了所有金庫功能與恢復路徑。雖然尚未達到生產級標準(還很早期),但如果你想用少量資金進行測試,它已經可以使用了。

此外還有一套在 regtest 上運行的端到端測試套件,以及一個互動式 CLI 工具,可完整模擬手機、硬體錢包及它們之間的所有操作。

這是我的主網金庫地址,熱烈歡迎大家嘗試去攻擊它:
bc1pvaultn3953ns47dw6rpm6ahfpz449vcnns5rpnr5v2d0u55fekxq39v257

我非常歡迎同行進行技術審查(Peer review),也樂於接收任何反饋。目前專案庫還很簡陋,但歡迎讓你的 AI Agent 對準 github.com/lukechilds/anzen 並請它帶你瀏覽整個架構設計。

雖然目前它還只是一個 CLI 工具,但我將致力於開發 Anzen 的全棧參考實現,以完整展示其 UX 可以多麼流暢。這很可能是一個 iPhone App 加上一個自訂的側載 Companion Ledger App。

『譯注:這句話翻譯過來是: 「這(參考實現)很可能會包含一個 iPhone App,以及一個專為 Ledger 硬體錢包開發、可供使用者自行『側載』安裝的搭配程式。」

白話一點來說,作者(Luke Childs)的意思是:

為了向大家展示這套系統到底可以做得多順手,他計畫開發兩個互相搭配的軟體

  1. iPhone 上的 App(手機端): 你日常使用的主要介面,就像一般的行動銀行或熱錢包,用來查看餘額、領取每月額度或發起緊急提款。
  2. Ledger 硬體錢包裡的專用小程式(硬體端): 因為目前市面上的硬體錢包(如 Ledger)預設都不支援這種「核准金庫政策」的新功能,所以他必須自己寫一個裝在 Ledger 裡的配套小程式,用來跟手機溝通,完成每年一次的核准儀式。

關鍵字淺白拆解:

  • Companion(搭配 / 配套): 指這個 Ledger 小程式是專門用來跟 iPhone App 湊成一組、互相配合運作的。
  • Sideloadable(可側載 / 手動安裝): 「側載」是指繞過官方應用商店。一般人下載 Ledger 小程式都是透過官方軟體(Ledger Live)直接搜尋安裝;但因為這是作者自己寫的原型測試版,還沒通過 Ledger 官方審核上架,所以使用者必須透過傳輸線,把軟體檔案手動「燒錄/安裝」進自己的硬體錢包裡。』

我的目標是同時開發參考實現與開放的 Anzen 協議。這個想法是讓任何人都能實現該協議。如果我能透過參考實現驗證其使用場景,並且大家看到了其中的價值、獲得了一些關注,那麼未來我們可能會看到:你可以在原生 Ledger 搭配 Ledger Live 上創建 Anzen 金庫;或者使用 Trezor 作為硬體簽署端、BlueWallet 作為熱錢包端;甚至是 Bitkey 支援可選的主權模式(Sovereign mode),將他們的協同簽署者替換為 Anzen 基於共識的替代方案。

Anzen 是作為個人副業專案開發的,與 Umbrel 無關,採 MIT 開源授權。

致謝:感謝 Casa、Bitkey 與 Liana 將比特幣自主託管帶入現代。Anzen 的設計深受這三個團隊開創的技巧啟發。

結語 (Final thoughts)

Coldcard 的狀況極其令人痛心,因為 Coldcard 用戶做對了一切。就我而言,產業標準建議一直都是單簽硬體錢包。雖然這次問題表現為 Coldcard 的韌體漏洞,但這歸根結底是比特幣技術社群的一次慘痛失敗。我們辜負了使用者,未能提供優質、高水準的自主託管工具。

事件發生後,我看到有人宣稱自主託管不適合大多數用戶;我看到有人宣稱每個人都應該轉向多廠商多簽;我看到有人宣稱用戶有責任自學安全的隨機數生成法。這令人失望,我們正在重複同樣的錯誤。

比特幣的腳本能力雖然有限,但遠未到束手無策的地步。金庫(Vault)類型的架構長期以來被嚴重低估與忽視。

我們擁有構建更好自主託管方案的工具,現在只需要開始動手構建。

2026年8月4日 星期二

冷錢包隨機性分析與安全性比較(cold wallet entropy and security compared)

把 BTC 儲存在 COLDCARD 的用戶因為熵(entropy,隨機性)漏洞而導致資產被清空。

其助記詞(seed)生成方式是可以被重現的,任何人都可以重新計算出他們的私鑰。

因此我調查了其他每一家硬體錢包,看看它們是如何生成助記詞的,以及同樣的事情是否會再次發生。
  • @Trezor:將裝置的隨機性與電腦的隨機性混合,且裝置必須證明它同時使用了兩者。即使晶片完全損壞,你依然安全。這是目前為止最好的設計。
  • @BitBoxSwiss:組合了 5 個獨立的隨機性來源。單一不良來源不會讓你毀滅。開源、可重現構建(reproducible builds),支援擲骰子(dice)。
  • @FoundationHQ:除了另外兩個來源之外,還使用普通電阻(resistors)和電容(capacitors)打造了自己的隨機性電路,開源。不需要信任黑盒晶片(black-box chip)。支援擲骰子(dice)。
  • @KeystoneWallet:MCU 和 2 個獨立的安全元件各自產生自己的 TRNG,3 個獨立來源合併成最終增強熵值。此外還允許你擲最多256次骰子,並公開了如何自行驗證結果的方法
  • @Blockstream:Jade 從 7 個項目中擷取:無線電雜訊(radio noise)、CPU 計數器(cpu counters)、電池、溫度、攝影機、你的輸入、應用程式(app)。要破壞所有來源非常困難。
  • @SeedSigner:你擲的骰子是唯一的來源。完全不需要信任任何晶片。而且他們提供了一份指南,教你如何驗證他們自己的數學計算。硬體最弱,但驗證力最強。
  • @OneKey:裝置上結合了 Secure Element 與 MCU,開源韌體。很紮實,但你無法加入自己的隨機性。
  • @Ledger:一個經過認證的晶片(AIS-31, EAL5+)。具備良好的隨機性。但它是單一來源、閉源,而且你無法驗證其中的任何細節。你必須完全信任他們。
  • @Tangem:私鑰在晶片內部生成且永遠不會離開。經過三家公司審計。同樣的權衡:強大,但設計上讓你無法檢查。
  • @ngrave_official:將晶片隨機性與你的指紋和環境光混合。很聰明。但其 "EAL7" 認證標章僅涵蓋單一軟體元件,而非整台裝置。
  • @ELLIPAL:單一經過認證的晶片,沒有軟體備援(software fallback),若故障則直接關閉(fails closed)而非猜測。閉源,所以只能選擇相信它。
  • @SafePal:混合了 2 個晶片。他們從未公開過詳細資訊。
  • @COLDCARDwallet:目前已修復修補,且 COLDCARD 上的骰子功能一直都是可驗證的。但在 2021 年至 2026 年之間生成的所有助記詞(seed)都已永久作廢(burned)。

單一來源(one source) = Ledger, Tangem, Ellipal。如果該單一來源失效,一切就都完蛋了。他們的解決方案是將其做得很優秀並取得認證。但這正是 COLDCARD 賭輸的地方。

多重來源(many sources) = Trezor, BitBox, Passport, Jade, Keystone。單一損壞的來源永遠不會影響到你的私鑰。

而且這當中的每一家都宣稱擁有 128 或 256 位元(bits)的安全強度。

COLDCARD 當初也是這麼宣稱的。認證也沒有幫助,COLDCARD 的晶片本身沒問題,只是程式碼停止呼叫它而已。

唯一能救你的,就是自己進行檢查。
自己擲骰子(roll your own dice)。自己驗證單字(verify the words yourself)。


給冷錢包使用者的核心建議(補充觀點):

1. 不要盲目相信單一晶片或「EAL 認證標章」:軟體韌體邏輯漏洞(如 COLDCARD 案例)可能使頂級硬體 TRNG 形同虛設。

2. 多重來源(Many Sources)優於單一來源(One Source):選擇結合「MCU + 安全晶片 + 主機/用戶熵」的錢包(如 Trezor Safe 系統、BitBox02、Passport、Keystone)。

3. 終極安全作法——自行擲骰子(Roll Your Own Dice):若儲存大額資產,最安全的作法是在生成種子(助記詞)時,選擇支援實體擲骰子輸入熵並能離線驗證單字點陣圖(BIP-39 Mnemonic Verification)的錢包(如 SeedSigner, Passport, BitBox02, Keystone, COLDCARD),徹底消除對硬體晶片與隨機數生成器的盲目信任。

原始資料來源:https://x.com/the_smart_ape/status/2084265598368809390?s=61&t=P_R4W_aDAxCJn612ehUZJA

圖片表格對照翻譯 (Table Breakdown)

錢包 (wallet) 廠商 (vendor) 熵來源 (entropy sources) 晶片 / 認證 (chip / certification) 自訂熵 (your own entropy) 可驗證? (verifiable?) 開源 (open source) 結論 (verdict)
Trezor One / T / Safe 3 / Safe 5 SatoshiLabs MCU TRNG + 主機電腦熵,混合 SHA-256 (裝置與主機各 32 位元組) STM32;Safe 3 / Safe 5 增加了安全晶片 主機熵,恆定開啟 :承諾協定 (commitment protocol) 是,可重現構建 (reproducible builds)
非常紮實 (Very solid)

BitBox02 / BitBox02 Nova Shift Crypto / BitBox 五個來源:製造階段、裝置密碼、主機電腦、MCU TRNG、安全晶片TRNG ATECC608B (Nova: Optiga Trust M V3) 主機熵 + 骰子 部分 (partially) 是,可重現構建 (reproducible builds) 非常紮實 (Very solid)
Foundation Passport (Batch 2 / Core) Foundation Devices 開源雪崩雜訊電路 (獨立電阻 + 電容,非黑盒矽晶片) + MCU RNG + SE RNG 自家 TRNG 電路 + 安全晶片 骰子 (dice) 部分 (partially) 是,可重現構建 (reproducible builds) 非常紮實 (Very solid)
Keystone 3 Pro(支援簡體中文) Keystone MCU 和來自不同製造商的 2 個獨立的安全晶片各自產生自己的 TRNG,3 個獨立來源合併成最終增強熵值 ATECC608B (Microchip) + DS28S60 (Maxim),均符合 NIST SP 800-90B 骰子,最多256 次投擲 :廠商公開驗證方法 部分開源 (partial) 非常紮實 (Very solid)
Blockstream Jade / Jade Plus Blockstream 開機無線電雜訊、CPU 計數器、電池狀態、溫度、相機、使用者輸入、應用程式熵 -> SHA-512 累加器 ESP32 (Jade Plus: ESP32-S3) 配套應用程式熵 否 (no) 是 (yes) 紮實,多重來源 (Solid, many sources)
Ledger Nano S / S Plus / X / Stax / Flex Ledger Secure Element 內部的單一認證 TRNG + BOLOS 後處理 ST33K1M5C - AIS-31 PTG.2, EAL5+, CSPN (ANSSI) 無 (none) (NO) :閉源 (closed source) 紮實但不可驗證 (Solid but unverifiable)
Tangem cards Tangem Secure Element 內部的 TRNG:密鑰在卡上生成且永遠不離開 Samsung SE, EAL6+;由 Kudelski, Riscure, Cure53 審計 無 (none) :設計上無法驗證 否 (no) 紮實但不可驗證 (Solid but unverifiable)
NGRAVE ZERO NGRAVE 晶片 TRNG + 指紋 + 環境光採樣 EAL7 適用於 ProvenCore TEE 元件,非整台裝置 生物識別 + 環境光 否 (no) 否 (no) 概念好,但標章過度宣傳 (Good idea, oversold badge)
Ellipal Titan Ellipal 僅使用安全晶片中的硬體 TRNG,無軟體備援 (故障時關閉) EAL5+ 安全晶片 接受導入助記詞 否 (no) 否 (no) 廠商宣稱,閉源 (Vendor claim, closed source)
OneKey Classic / Pro(支援繁簡中文) OneKey 裝置上結合 安全晶片 + MCU SE EAL6+ 無 (none) 否 (no) 是 (yes) 紮實,開源 (Solid, open)
SafePal S1(支援繁簡中文) SafePal 具備密碼學混合的雙晶片架構 未公開細節 (undisclosed detail) 無 (none) 否 (no) 否 (no) 未公開 (Undisclosed)
SeedSigner (DIY) open-source project 你的骰子 (50 或 99 次投擲) 或相機影像熵 無 - 無安全晶片 骰子 (dice) :隨附 docs/dice_verification.md 文件 是,自 v0.7.0 起可重現構建 最可驗證,硬體強化程度最低 (Most verifiable, least hardened)
Coldcard Mk4 / Mk5 / Q (2026 修補後) Coinkite 修補後為 STM32 TRNG + 安全晶片 + 骰子 STM32 + 2 個安全晶片 骰子 (dice) (YES) 原始碼可見 (source-available) 已修復,但漏洞期間生成的助記詞仍作廢
Coldcard Mk2 / Mk3, firmware 4.0.0–4.1.9 Coinkite 軟體 PRNG (Yasmarang) 隨機種子來自晶片 UID + 計時器 - 兩者皆為公開 - 骰子 (藏在高級選單中) - - 破裂 (BROKEN) - 有效熵降至 ~2^32 到 2^40
Coldcard Mk1 / pre-v3.2.2 Coinkite 真實 STM32 硬體 TRNG STM32 - - - 從未受影響:舊款裝置反而是安全的
Tapsigner / Satscard / Opendime Coinkite 金鑰於卡片內部生成 ATECC Secure Element 無 (none) - 設計上即不可驗證 否 (no) 架構上不可驗證 (Unverifiable by construction)

2026年8月2日 星期日

你無法審計的那一層 (The Layer You Cannot Audit)

The Bitcoin Intelligence Essays · 特別隨筆 · TRUST

你無法審計的那一層
(The Layer You Cannot Audit)

我遵循了比特幣自主託管的所有規則,卻依然遭受了重大損失。到底哪裡出了問題?而我現在正在做出什麼改變。

作者:Oliver L. Velez  |  發布時間:2026 年 7 月

7 月 30 日晚上,我的錢包顯示著一筆已經不屬於我的比特幣。

餘額看起來正常,地址看起來正常,我的硬體錢包也照常簽署了交易。

但網路拒絕了這筆交易。

那些幣早已被轉走了。

我參與比特幣領域已有多年,一直以來都在教授資產所有權、自主託管(Self-custody),以及「真正擁有資產」與「僅擁有他人承諾」之間的本質區別。我沒有將助記詞輸入過電腦,沒有將它備份在雲端,也沒有把它輸入到手機、網站或密碼管理器中。助記詞是在完全離線(氣隙Air-gapped)的簽署設備上生成的,經過了妥善備份與驗證。我的 Sparrow 錢包設定為唯讀模式(Watch-only),並連接到我自己的全節點。

我嚴格遵守了所有的規則。

但我依然失去了數額重大的比特幣。

最讓人難以接受的,並不是比特幣失敗了——比特幣並沒有失敗。最難接受的是,我遵守了每一條被公認的自主託管法則,但這依然不夠。

我不會公開損失的具體金額。因為數字會模糊焦點,而數字並不是這件事的核心教訓。真正重要的是:這並不是因為我點擊了釣魚連結、洩漏了復原助記詞,或是把資產控制權交給了任何人。

這場失敗,從助記詞產生的那一刻就已經注定了。

只是我當時渾然不知。

我是本週浮出水面的 COLDCARD 隨機數生成器(RNG)事件的受害者之一。目前的調查報告顯示,數百個單簽(Single-signature)地址在短短數分鐘內、跨越連續數個區塊被清空。Coinkite 事後已直接承認了這項缺陷:設備的隨機數生成功能存在漏洞,導致產生的助記詞熵值(Entropy)遠低於設計標準;任何理解該漏洞的人,都能藉此重構私鑰。Coinkite 目前表示 Mk3 是受影響最嚴重的型號,較新的設備雖亦受影響,但程度較輕。根據官方估計,Mk3 的有效搜尋空間被降至僅約 40 位元(bits),Mk4、Mk5 和 Q 則約為 72 位元,而原本應有的安全標準是 128 位元。

Coinkite 已發布了關於熵值失效的技術背景說明;完整的技術審查仍在進行中,因此部分細節仍屬初步結論。

然而,這件事所揭示的結構性教訓,並不取決於最終的數位鑑識結果。

私鑰的安全強度,完全取決於創建它時的隨機性。

而使用者在事後,是完全無法審計這種隨機性的。

這正是幾乎沒有人討論過的那一層。

不再真實的餘額

我並不是因為親眼看著比特幣被轉走才發現偷竊事件的。

我是因為嘗試進行一筆無關的交易,結果網路返回了錯誤訊息——提示該筆輸入(Inputs)已經被花費掉了,我才赫然發現。

當時我自己的全節點暫時無法連線,Sparrow 錢包無法查詢最新的區塊鏈狀態,因此它只顯示了上一次成功記錄到的餘額。雖然該餘額已是一天前的數據,但在螢幕上看起來依然像是當前狀態。

我的簽署設備隨後執行了它該做的事:完成交易簽署。

那道簽名證明了我擁有相應的私鑰,但它無法證明那些私鑰曾經控制的比特幣是否依舊未被花費。

只有區塊鏈網路才能確認這一點。

錢包裡的餘額並非資產本身,它只是對帳本當前狀態的一份報告。當報告背後的資料來源過期時,螢幕上的數字只是一幅已經不存在的過去景象。

這項差異在當前極為關鍵,因為受此事件影響的人,自然會打開錢包軟體,看到非零的餘額,便以為自己倖免於難。

千萬不要抱持這種假設。

請務必根據當前的區塊鏈狀態,親自檢查實際地址。盡可能使用您自己同步完成的節點;否則,請交叉使用多家聲譽良好的區塊瀏覽器,逐一驗證各個地址。根據回報,部分受害者似乎遭受了「部分清空(Partial sweep)」,這意味著剩餘的餘額並不能證明底層的助記詞是安全的。

  • 餘額可能是過期的。
  • 剩餘的部分餘額可能會造成誤導。
  • 只有區塊鏈上的記錄才是唯一的真相。

究竟發生了什麼事

目前被報導的資產轉移模式呈現出異常高度集中。

迄今確認被掃空的輸出(Outputs)均為單簽地址(Single-signature)。在當前鑑識報告中描述的受影響地址中,並未出現多重簽名(Multisignature)。這些地址主要為原生 SegWit(Native SegWit),亦有極少數較舊的地址格式。有些錢包被完全清空,有些則似乎僅被部分轉走。

隨著調查深入,這些細節可能會有所調整。

但核心的事實極不可能改變:

如果攻擊者能夠重構控制單簽錢包的那唯一一把私鑰,該錢包就徹底淪陷了。

攻擊者不需要實體接觸設備,惡意軟體不需要穿透離線環境(Air gap),助記詞也不需要被拍照、複製或輸入到任何地方。如果私鑰是從不足的隨機性中生成的,那麼在第一筆存款進來之前,漏洞就已經存在了。

硬體錢包可以完好無損地放在保險箱深處。

而攻擊者可以在地球的另一端進行計算。

這正是這類失效如此危險的原因:它在使用者最缺乏透明度的地方擊敗了使用者——也就是「密鑰本身被創造的瞬間」。

你無法審計的那一層

比特幣給了我們極其強大的驗證工具:

  • 你可以在簽署設備的螢幕上驗證接收地址。
  • 你可以在簽署前驗證交易內容。
  • 你可以驗證韌體簽名。
  • 你可以驗證衍生路徑(Derivation path)。
  • 你可以驗證備份。
  • 你可以驗證多簽的法定人數。
  • 你可以運行自己的全節點並驗證整個區塊鏈。

但是,絕大多數使用者無法獨立驗證:當他們的助記詞生成時,隨機數生成器是否提供了足夠的熵。

復原助記詞看起來可能完全隨機,設備可能會正常運作好幾年,錢包可以毫無問題地接收和發送交易。這一切都無法證明最初的隨機性在密碼學上是健全的。

如果熵值過弱,復原助記詞就無法獲得人們通常與比特幣私鑰聯繫在一起的那種龐大理論搜尋空間的保護。它所受到的保護,僅限於那個有缺陷的生成器所能產生的極小型輸出集合。

一旦攻擊者掌握了該生成器的模式,看似堅不可摧的安全性就會瞬間崩塌。

這並非弱隨機性第一次危害加密貨幣使用者。過去的 Milk Sad 漏洞揭露了 Libbitcoin Explorer 因極度不足的熵所生成的錢包,攻擊者在網路上瘋狂利用了這些私鑰。近期,研究人員又披露了 Ill Bloom 類型的錢包資金抽離事件,原因同樣出自弱隨機數生成器創建的復原助記詞。雖然軟體與情境不同,但結構性的失敗如出一轍:一個秘密看起來隨機,卻是由可預測的過程所產生的。

這種事將來還會再次發生。

不一定會發生在同一家製造商,不一定會發生在同一款設備。但總有一天,在某個地方,另一個實作版本會出錯。

唯一持久的應對之道,是構建一種託管架構:讓單一隱蔽的實作失敗,無法演變成毀滅性的徹底損失。

哪裡出了問題

有些人會利用這次事件聲稱「自主託管已經失敗了」。

它沒有失敗。

自主託管並非只有一種架構。

由一台設備生成、控制單一錢包的單一助記詞,是自主託管。

使用來自不同製造商的獨立設備建立「三取二(2-of-3)」多重簽名,也是自主託管。

這兩者所承擔的風險完全不可同日而語。

這次事件證明的不是「個人沒有能力持有比特幣」,而是證明了:將重大財富集中在單一秘密背後,會創造出一個最終的單點故障(Single point of failure)——即使持有者嚴格遵循了所有被認可的規則。

底層協定沒有失敗。比特幣沒有撤銷任何有效的交易。區塊鏈網路沒有搞錯所有權。

有效的私鑰完成了簽名,而網路完全按照設計執行了該簽名。

失敗的是圍繞著所有權所建立的架構。

單簽託管假設了:單一密鑰是健全的、單一軟硬體實作是健全的、且生成秘密的過程是健全的。只要其中任何一個假設失效,在缺陷與資產之間,就没有任何第二重批准防線。

一個設計合理的多重簽名(Multisig)架構能改變這一點:光是知道一把被破解的私鑰是不夠的;光是破解一台設備是不夠的;光是單一製造商出錯也是不夠的。

這不是對自主託管的否定。這才是真正嚴肅看待自主託管。

交易所託管並未因此獲得洗白

目前有另一種觀點正在抬頭,而它同樣危險:「這證明了人們應該把比特幣留在交易所。」

這根本無法證明這一點。

平心而論,如果有人把這筆資產放在一個始終保持財務健全且誠實的合格託管商那裡,他今天確實依然擁有這些幣。求真求實的態度要求我們明確承認這一點。

但這絕不意味著交易所託管是安全的。

這只不過是用一種風險類型去交換另一種風險類型罷了。

歷史並非虛構。Mt. Gox、FTX、Celsius、Voyager、BlockFi 等無數歷史教訓,各自展示了同一個真理的不同版本:由中間人持有的加密貨幣,始終暴露在中間人的償債能力、內部控制、利益動機、治理水平及法律處境之中。

倖存下來的託管商在事後看來總是理所當然地安全。而在倒閉之前,那些失敗者往往看起來也同樣聲譽卓著。

交易所託管並沒有消除信任,它只是把信任轉移到了一家機構身上——而存款人對該機構內部狀況的審計能力,甚至可能比對一個硬體錢包還要低。

當加密貨幣放在交易所時,持有者在失去存取權的那一刻之前,可能根本無法知道這些資產是被完全儲備、被抵押、被借出、被混用、被凍結,還是面臨著比自己優先級更高的債權要求。

所以,不:這次事件絕不能成為將改變人生的重大金額留在交易所的藉口。

它也不該被用來當作恐嚇人們遠離自主託管的工具。

正確且更加成熟的結論是:

無論是託管機構還是簽署設備,都不配獲得無條件的信任。

我們的任務不是去尋找一個「風險完全消失」的神聖之地。

我們的任務是識別風險存在於何處,限制任何單一失敗所能造成的破壞程度,並建立一個能夠在單一元件失效後依然存活的結構。

只要設計得當,自主託管依然是長期持有重大比特幣資產的最佳歸宿。

但單簽集中託管並非自主託管的最高形式。它只是最簡單的形式。這兩者絕不能混為一談。

現在誰應該採取行動

根據目前回報的曝險情況,任何助記詞是在受影響的 COLDCARD 韌體關注點上記錄生成的人——尤其是上述的 Mk3 版本——都應該嚴肅看待此事件,特別是在該錢包為單簽且使用強大、獨特的 BIP-39 密語(Passphrase)的情況下。

技術調查仍在積極進行中,因此受影響的使用者應依賴製造商最新的官方指引與可靠的安全研究,而非僅憑社交媒體上的摘要。

但任何有合理理由懷疑助記詞可能洩露的人,都不該在資金仍冒風險時等待完美的確定性

在更新後的韌體(Mk3 4.2.0 或更高、Mk4/Mk5 5.6.0 或更高、Q 1.5.0Q 或更高)或您信任的其他設備上,生成一個全新的助記詞。

根據 Coinkite 的說明,更新至 4.2.0 後,空的 Mk3 可以透過手動輸入至少 99 次公正、獨立、私密的擲骰子結果來構建替代助記詞,從而完全繞過設備內部的隨機數生成器。

不要將舊的助記詞還原到新設備上並稱之為遷移。還原舊助記詞只會完整複製舊有的漏洞。

直接在目標簽署設備上驗證新的接收地址。轉移全部的曝險餘額,切勿在您認為可能受損的金鑰上故意留下零頭(Change)。

然後,識別並重新定向每一個可能繼續向舊錢包發送比特幣的系統:

  • 交易所提款地址
  • 定額定投(Recurring purchases)
  • 礦池收益發送
  • 客戶發票
  • 儲存的地址簿
  • 自動轉帳與固定指令

否則,受損地址在原始餘額轉走後仍會繼續接收資金,讓一場已經結束的災難變成持續性的「捐款」。

使用 BIP-39 密語(Passphrase)的使用者可能會獲得額外的保護,具體取決於該密語是如何創建與使用的。然而在精確的攻擊機制調查清楚之前,不要把潛在保護誤認為絕對的安全。Coinkite 聲稱,使用至少 50 次公正、獨立、私密的擲骰子生成的助記詞,單就此漏洞而言不被視為處於風險中。

當潛在損失金額重大時,請直接進行遷移。

如果不幸檢查時資金已被轉走,在做任何事之前請先記錄一切:受影響的地址、清空資金的交易 ID(TxID)以及時間戳記。這些記錄是未來進行分析、報案及任何可能追討的依據。隨後,將剩餘資金從該助記詞派生的每一個地址中移走(包括目前仍顯示有資金的地址)。

此類事件往往會吸引冒充者。任何製造商、錢包提供商或交易所絕不會向您索取助記詞,不會主動透過私訊聯繫您,也不會要您將資金發送到他們提供的地址。遷移過程僅發生在您已經控制的軟體內部、進入您自己掌握密鑰的錢包中。任何主動聯繫並聲稱協助您轉移加密貨幣的人,都是想騙走您的資產。

如果您的比特幣存放在包含受影響金鑰的多簽錢包中,在準備遷移期間有一個更快的臨時保護步驟(Nunchuk 本週公布了該機制):從某個地址花費資金會永久在鏈上揭露其公鑰,攻擊者重構受影響的助記詞後,僅凭公開資料就能比對並定位該地址。如果您從未花費過資金的地址則不具備這種直接曝險。將資金從先前使用過的地址中移出,能在幾分鐘內堵住最容易被利用的漏洞。

如果您是在幾個月或幾年後看到這篇文章,請不要以為危險是一模一樣的。具體的技術漏洞可以被修復,但結構性的教訓永不過期

我正在做出什麼改變

多年來我一直推薦 COLDCARD。

在 2021 年的短暫期間,我也曾是 COLDCARD 的推廣合作者(Affiliate)——這是我與 Coinkite 唯一的商業關係。在該關係之前、期間以及結束很久之後,我都一直在推薦這款產品,因為我當時認為它是市面上最強大的純比特幣(Bitcoin-only)簽署設備之一。

比特幣社群中許多非常嚴肅且受人尊敬的人士也達成了相同的結論。

當時的推薦並非失去理性,而是基於當時所能獲取的最佳資訊。

但這次的經歷徹底改變了我對「負責任託管」的認知。

不是因為每台 COLDCARD 都不安全,不是因為現在應該懷疑所有的硬體錢包,更不是因為自主託管是一個錯誤。

它改變我的觀點是因為:任何單一製造商、任何單一實作、任何單一設備,都可能以使用者無法察覺的方式默默出錯。

沒有任何聲譽可以消除這種可能性。沒有任何品牌應該作為唯一的授權點,托起無限數量的比特幣。

我正在採納三條原則:

原則一:重大資產採用「多廠商多重簽名」(Multi-vendor Multisig)

如果法定人數中包含相關聯的風險,光是多重簽名也是不夠的。

如果「三取二」架構中的兩把私鑰是由同一個型號、同一個韌體家族或同一家製造商生成的,它依然集中了實作風險。製造商範圍內的缺陷可能會影響法定人數中的一把以上的私鑰。

重大資產應使用來自不同製造商的獨立簽署設備。

這樣做目的不是追求視覺上的多樣性,而是追求失敗的獨立性(Failure independence)

如果一家廠商被破解、出錯、被脅迫、存在缺陷或純粹弄錯了,這場意外最多讓多簽法定人數失去一把金鑰——而不是失去整個錢包。

沒有單一設備能夠獨自動用資金,沒有單一設備能夠獨自弄丟資金。

原則二:為每個託管層級設定書面上限

一個只由「用途」定義而沒有「最高金額」限制的錢包,終究會發生「風險漂移(Risk drift)」。這件事就發生在我身上。

一個錢包一開始可能只是用來存放日常資金的便利場所。隨著時間推移,存款陸續進入,每一次單獨的轉帳看起來都很合理,沒有哪一筆大到足以觸發整個架構的重構。最終,錢包裡積累的金額,徹底脫離了保護它的底層架構所能承載的能力。

沒有最高配額限制的錢包,不叫階梯式託管,那是對風險漂移的公開邀請

每個錢包都應該有明確的書面上限。當餘額超過該上限時,超出部分應自動轉移到更強大的結構中。不是等到方便的時候,不是等下一筆存款進來後,也不是等市場上漲之後。而是自動執行

託管架構需要風險控制上限,這與投資組合需要風控的理由完全相同。危險極少發生在某個戲劇性的單一決定中,它往往累積於一連串單獨看起來都無害的決定之中。

原則三:單簽僅適用於「承受得起損失」的金額

這不是一條針對 COLDCARD 的規則,這不是一條針對任何特定製造商的規則。這是一條關於「結構」的規則。

單簽意味著:單一秘密可以授權一切。因此,單一未被發現的缺陷可以奪走一切。

對於日常消費餘額、戰術性持有、旅遊錢包,以及損失後不會實質改變你生活的金額,這種折衷是可以接受的。但對於足以改變人生的重大金額,這絕對不可接受

單簽不是用來存放「你預期會失去」的金額,而是用來存放「即使失去也不會毀掉你」的金額。

僅僅「擁有」是不夠的

多年來我一直寫道:比特幣是無需用於即時開支的資本的終極歸宿。我至今依然深信不疑。

這次事件完全沒有改變比特幣的貨幣特性:沒有改變其固定總量,沒有改變其無發行者的本質,沒有改變結算的終局性(Finality),也沒有改變無須許可即可擁有資產的能力。

但是在「擁有比特幣」與「正確持有比特幣」之間,存在著巨大的鴻溝。

本週,我以極其高昂的代價學到了這個教訓。

協定沒有失敗。比它更深的一層在暗中失敗了——甚至可能在偷竊顯現的數年之前就已經失敗。

我手握助記詞,我擁有設備,我有妥善備份,我嚴格遵守了規則。

但我唯一沒有的,是一個能在「一切所依賴的那唯一金鑰失效後」依然存活下來的架構。

自主託管並不意味著「什麼都不信任」。它的真正涵義是:明確決定信任保留在何處,並確保沒有任何單一被信任的元件能夠帶走一切。

這就是給我們的教訓:

  • 不是放棄自主託管。
  • 不是把你的未來交給交易所。
  • 不是去尋找一個「永遠不會出錯」的神級製造商。
  • 建立一個「即使單一製造商出錯,你依然能存活下來」的架構。
  • 建立一個「即使單一金鑰暴露,也不足以動搖資產」的架構。
  • 建立一個「沒有任何單一缺陷能成為最終絕響」的架構。

除此之外的一切,都不過是在賭「某一底層永遠不會失效」。

而這場賭局,我再也不會參與了。

The Bitcoin Intelligence Essays — 持續探索讓比特幣至關重要的核心原則。
結構性比特幣分析,每週日發布 — 完整紀錄請見 btcintelligencereport.com/issues/

2026年8月1日 星期六

當晶片隨機數不再可靠:從 Coldcard 低熵漏洞看主要冷錢包廠商的「熵安全」哲學

當晶片隨機數不再可靠:從 Coldcard 低熵漏洞看主要冷錢包廠商的「熵安全」哲學

標籤:加密貨幣安全 冷錢包 硬件錢包 Bitcoin 密碼學

2026年7月31日發生的 Coldcard 低熵漏洞事件,無疑給整個加密貨幣硬體安全領域敲響了警鐘。由於韌體在庫連結(libsecp256k1)時的編譯配置錯誤,導致多款機型產生的助記詞熵值(Entropy)大幅低於密碼學標準(甚至低至 72 位元以下),引發離線暴力破解的安全危機。

這起事件暴露了一個核心問題:「即使配備了高規格的安全晶片(Secure Element),我們還能完全信任硬體產生的隨機數嗎?」


一、 各大冷錢包廠商的技術立場與架構回應

面對「硬體 TRNG 故障或後門」的風險,產業內各大廠商展現了不同的防禦哲學與技術路線:

廠商 / 品牌 核心安全立場與架構 物理熵 / 外部熵支援機制
Keystone 主打開源與多源熵混合。採用獨立三晶片架構(3 SE),強調可重複編譯與社群稽核。 支援(螢幕觸控輸入)
可在螢幕上記錄擲骰子點數(Dice Roll)直接注入物理熵。
BitBox 強調「多源熵防禦」。預設強制結合 MCU TRNG + SE TRNG + 設備金鑰 + 用戶熵。只要單一熵源正常即可保證安全。 支援(微型觸控列)
允許用戶設定時透過微型觸控列手動注入額外熵值。
Trezor 強調「可重複編譯驗證(Reproducible Builds)」與程式碼審查,防止編譯鏈層面的隱形漏洞。 支援(SD 卡/軟體端)
支援透過 MicroSD 卡或命令行工具導入用戶自訂熵。
Blockstream Jade 主張物理世界噪點。認為單純依賴晶片 TRNG 存在密碼學盲點,鼓勵將實體世界變數導入金鑰生成。 支援(相機與骰子)
支援拍攝環境物理噪點(相機雜訊)或手動輸入擲骰子結果。
Ledger 堅守閉源高規格安全晶片(EAL6+),強調晶片 TRNG 通過 FIPS 140-2 / AIS-31 測試,硬體認證才是防禦關鍵。 不支援
完全由安全晶片內部生成隨機數,不開放用戶注入外部物理熵。
Tangem 採取 Seedless(無助記詞)架構,私鑰直接在晶片內生成且永遠不可導出,靠多張卡片互相備份。 不支援
因無螢幕按鍵且採用無助記詞設計,無法輸入外部物理熵。
CoolWallet 薄卡設計(CC EAL6+ SE 晶片),私鑰生命週期被嚴格鎖死在晶片內。支援導出助記詞,但簽署僅在晶片內完成。 不支援
受限於薄卡物理形態(僅單色電子紙與單一按鈕),無法進行擲骰子等複雜熵輸入。

二、 業界兩大安全哲學的對立

從上述廠商的表態可以看出,冷錢包產業已分化為兩大陣營:

  1. 極客 / 密碼學派(Keystone, BitBox, Trezor, Blockstream):
    核心邏輯是「不信任任何單一晶片或韌體」。他們認為硬體晶片可能包含後門,編譯器也可能出錯。因此必須透過開源審查,並提供用戶輸入物理熵(擲骰子)或多源熵(MCU + SE)混合的機制。
  2. 硬體隔離 / 防人為失誤派(Ledger, Tangem, CoolWallet):
    核心邏輯是「不信任用戶的人為操作」。他們認為人為擲骰子(骰子不公、輸入錯誤)或抄寫助記詞帶來的安全性漏洞,遠大於安全晶片故障的風險。因此選擇將私鑰與隨機數完全交給符合最高安全認證(EAL6+)的硬體 TRNG 處理。

三、 使用「擲骰子(Dice Roll)」輸入物理熵真的萬無一失嗎?

為擺脫對黑盒晶片的依賴,越來越多進階用戶選擇透過擲骰子來輸入物理熵。從密碼學角度來看,一顆標準的六面骰(D6)每次拋擲可提供約 2.585 位元的熵:

  • 50 次有效拋擲:可獲得約 129 bits 熵(滿足 12 字助記詞需求)。
  • 99 次有效拋擲:可獲得約 256 bits 熵(滿足 24 字助記詞需求)。

⚠️ 物理熵實務上的隱患與盲點:

  • 韌體哈希邏輯漏洞:若設備韌體有惡意後門或程式碼邏輯寫錯,即使用戶輸入了完美的骰子熵,韌體在將骰子熵與設備熵進行混合時仍可能丟失強度。
  • 物理偏誤:普通的桌遊骰子常有質量分佈不均的問題,導致拋擲結果並非完全隨機(建議使用賭場級精密骰子)。
  • Checksum 依賴:BIP-39 助記詞的最後一個字包含校驗碼(Checksum),依然需要透過設備晶片運算生成。

四、 結論:打造終極安全的最佳實踐策略

Coldcard 事件給我們的教訓是:「單一設備、單一供應商的防護永遠存在單點故障(Single Point of Failure)的風險。」

對於管理重大資產的冷錢包使用者,建議採用以下分層防禦架構:

  1. 物理熵 + 多源混合:若使用單簽,優選支援 99 次擲骰子手動輸入且程式碼開源可審查的設備(如 Keystone、Blockstream Jade)。
  2. 啟用強 Passphrase(第 25 個字):設定一個足夠強大的隨機 Passphrase(16 字元以上),這能在助記詞熵值遭硬體瑕疵削弱時,額外建立一道獨立的密碼學屏障。
  3. 跨品牌多重簽名(Multisig 2-of-3):這是對抗單一廠商韌體漏洞最徹底的手段。例如組合 Trezor + BitBox + Keystone 建立多簽,即使未來有任何一家廠商再度爆發隨機數生成漏洞,攻擊者取得單一私鑰也絕對無法轉走資產。

Coldcard 硬體錢包爆出重大亂數瑕疵,哪些機型受影響?

Coldcard 硬體錢包爆出重大亂數瑕疵,哪些機型受影響?

整理自 Block 工程團隊與 Coinkite(Coldcard 官方)最新公告,資料更新至 2026/7/31

這次出了什麼問題?(用白話講)

任何一個「錢包」的安全性,最核心的基礎就是產生私鑰時用的亂數夠不夠隨機。如果亂數不夠隨機、甚至可以被猜出來,攻擊者就能直接算出你的私鑰,錢包裡的比特幣就會被偷走。

Coldcard 硬體錢包的韌體中有一個底層程式錯誤:原本應該用晶片內建的「硬體亂數產生器」來生成私鑰,結果因為一行判斷式寫錯,系統誤判成「硬體亂數不可用」,於是自動退回使用一套軟體模擬的假亂數產生器(Yasmarang 演算法)。

這套軟體亂數的問題在於,它的「種子」(初始輸入值)來自晶片的固定序號、系統計時器等可被外部觀察或推算的資訊,而不是真正不可預測的物理亂數。只要攻擊者能掌握或縮小這些輸入值的範圍,就有機會離線重現整個亂數序列,進而反推出你的私鑰。

【最新】官方確認受影響範圍與修復版本

Coinkite(Coldcard 官方)在 7/31 發布正式公告,確認的受影響範圍比最初分析更廣,Mk4/Mk5/Q 也正式被列入受影響名單

裝置型號受影響韌體版本修復版本
Mk3v4.0.1 – v4.1.9v4.2.0 以上
Mk4 / Mk5(標準版)v5.6.0 以前v5.6.0 以上
Q(標準版)v1.5.0Q 以前v1.5.0Q 以上
Mk4 / Mk5(Edge 版)v6.6.0X 以前v6.6.0X 以上
Q(Edge 版)v6.6.0QX 以前v6.6.0QX 以上
⚠️ Standard 跟 Edge 是分開的版本序列,別被 Edge 版本號比較大搞混,一定要裝對應自己機型與版本軌道的修復版。

TAPSIGNER、OPENDIME、SATSCARD 完全不受影響,因為是完全不同的程式碼庫。

Mk4/Mk5/Q 在修復版本之前產生的種子,安全強度只有約72 位元,遠低於應有的 128 位元,官方用詞是「嚴重程度較低,但仍然嚴重(still serious)」。

關鍵提醒:判斷是否受影響,看的是「生成這組私鑰當時」所用的韌體版本,不是裝置的出廠日期或現在的韌體版本。升級韌體不會回頭修補已經產生的舊種子——一定要照下面流程重新產生新種子並搬家。

兩種可以暫緩遷移的例外情況

  • 有用「Add Dice Rolls」加骰子補充亂數:投擲 50–98 次獨立公正的骰子,等於額外貢獻至少 128 位元熵;99 次以上約等於 256 位元。只要骰子過程沒被記錄或外流,官方認為這種情況下的種子不受此次 RNG 問題影響。如果不確定自己當初擲了幾次、或骰子紀錄是否外流過,還是建議遷移。
  • 有加高強度、獨一無二的 BIP-39 passphrase:這是額外的一道防線,但短的、常見的、有規律的、或重複使用過的 passphrase 不能算安全。即使有 passphrase,官方仍建議儘快遷移到新種子。

官方遷移步驟(適用所有機型)

  1. 確認已安裝對應機型的修復韌體版本
  2. 已更新的裝置上產生一組全新種子
  3. 抄寫並核對備份,先別急著存錢進去
  4. 在裝置螢幕上驗證一個新的收款地址
  5. 先用小額做測試轉帳,確認新錢包能正常運作
  6. 測試沒問題後,才把剩餘資金全部搬過去
  7. 遷移完全確認前,舊的備份先別銷毀

如果只有一台 Mk3、沒有第二台裝置:升級到 4.2.0 後,可以在同一台機器上先驗證舊備份 → 產生新種子並驗證 → 用舊種子小額測試轉帳到新地址 → 確認無誤後把舊種子資金全部轉入新錢包,整個過程要小心在新舊種子間切換。

官方特別提醒:「遷移過程中犯錯,可能比漏洞本身造成更大損失」——急不得,每一步都要照順序核對清楚。

這會影響到哪些功能?

不只是主錢包的助記詞,同一套有問題的亂數還被用在:

  • 新建錢包種子、紙錢包私鑰
  • 種子的 XOR 分割備份
  • 裝置間複製(Cloning)、USB 加密的臨時金鑰
  • Key Teleport 傳輸功能
  • Web2FA 兩步驟驗證的密鑰
  • Secure Notes 密碼產生器
值得一提:就算你用的是多簽(multisig)方案,只要所有簽名裝置全部都是受影響的 Coldcard,這個弱點依然成立,必須至少有一把安全的金鑰在其中,才能真正發揮多簽該有的保護效果。

這篇整理自 Block 工程團隊與 Coinkite 官方公告,官方投資調查仍在進行中,正式技術報告尚未發布,後續細節可能持續更新。

資料來源:Block Engineering Blog〈Predictable RNG Fallback and 32-Bit Reseed in COLDCARD Firmware〉;Coinkite 官方部落格〈Mk3 Security Advisory〉,更新於 2026/7/31。

Coldcard 漏洞資金流向調查與鏈上分析

資安漏洞分析

Coldcard 漏洞資金流向調查與鏈上分析

主推文(@glxyresearch
我們根據 Block 工程師發現、並由 @clay_garrett 分享的模式,繪製了 Coldcard 漏洞的資金流向圖。
⏱ 關鍵時間視窗:
在 7 月 30 日 UTC 時間 01:10:20 至 01:51:26 之間(共 41 分鐘,區塊 960,183–960,191),共有 1,196 個地址被完全清空,總計 1,082.65 BTC(約 7,020 萬美元)。這比硬體錢包廠商公開發布安全公告早了約 30 小時。

🚨 攻擊特徵分析:

每一筆 sweep 交易都支付完全相同的硬編碼手續費 30.0 sat/vB(比當週中位數 0.4–1.0 sat/vB 高出 30–75 倍),且沒有找零輸出。這看起來像是自動化工具在使用它已經掌握的私鑰花費資金,而不是擁有者自己在移動資金。

📄 受害者地址類型:

  • 1,183 個 原生 SegWit(BIP-84)
  • 7 個 BIP-49
  • 6 個 BIP-44

與多路徑金鑰掃描(Multi-path Key Scanning)一致。



💰 收益彙整地址:
收益在幾分鐘內完成彙整,之後至今未再移動:

• bc1qq85v2c9…cu9r — 562.02 BTC
• bc1qx76cae2…fhe3 — 398.48 BTC
• bc1q8jy96fe…tp3q — 89.62 BTC
• bc1qnk4zh9q…fecp0 — 32.45 BTC (未移動)
💬 作者後續留言(依時間順序)
留言 1
雖然如果用戶不把資金從受影響的 Coldcard 生成地址中遷移出去,新的攻擊仍可能發生,但這次初始攻擊在鏈上是可識別的。請注意,本分析可能並不完整,但這是我們盡力評估初始影響範圍的結果。
留言 2 📷 附圖
這次事件最關鍵、最具辨識度的特徵是它的手續費。比特幣每天都有成千上萬筆彙整交易,單純「多個輸入匯入同一個目的地」本身是極弱的訊號(網路上每一家交易所都會產生這種模式)。讓這次事件與眾不同的是:手續費是固定常數

留言 3 📷 附圖
整個事件橫跨 6 個區塊、共 41 分鐘。中間有 3 個區塊完全沒有 sweep 活動,顯示這些交易是分批廣播,而不是持續串流發送。

留言 4 📷 附兩張圖
損失分布在數量上以低於 1 BTC 的地址為主,但在金額上則以 1–50 BTC 的地址為主。這是個人自我保管(self-custody)的典型樣貌,而非機構或交易所持有的模式。


留言 5
目前,本波攻擊中被識別出的資金正存放在以下 4 個地址:
bc1qq85v2c926eg6pgxhwp6q7lf6cnsz80qs3fcu9r
bc1qx76cae2706qd5q576feh7xq8rfcsjpf2htfhe3
bc1q8jy96fe5lf8vfugydnte3cguk92gpev7kwtp3q
bc1qnk4zh9qcnap2mycp56qjrgza3cc8ylrh8fecp0
我們正在監控這些地址。

精選文章

Blockstream SPAC 破局與治理爭議

  調查報告摘要評析:Blockstream SPAC 破局與治理爭議 本案為做空調查機構(NatInfoSec)針對 Adam Back、Blockstream 及其金庫公司 BSTR(Bitcoin Standard Trea...

熱門文章