2023 年,卡巴斯基的研究人員拆解了一台從看起來相當正派的網路賣場買來的 Trezor 硬體錢包。這台裝置外觀跟原廠一模一樣,連包裝都是,運作也正常。它顯示出一串要抄下來的單字,跟真機沒有兩樣。只不過那串單字並不是裝置隨機抽出來的:它是攻擊者事先挑好的,攻擊者只要等著受害人把資金存進去就行。完整分析發表在卡巴斯基的部落格上 。
這個故事把整件事都講完了。受害人買的是對的產品、對的品牌,動機也沒問題。失敗的不是硬體,而是硬體周邊的那套程序。
冷錢包不是一件買來的物品。它是一套照著做的程序,硬體只是其中一個環節。
以下是五個安全層級,從最簡單到最嚴苛。每一級都可以照著用。每往上一級,問題都是同一個:上一級沒能擋住什麼,而那個風險真的跟你有關嗎?
冷錢包是什麼,不講術語
加密貨幣既不存在你的手機裡,也不存在你的電腦裡。它記錄在一本公開帳本上,也就是區塊鏈,這本帳本複製在數以千計的機器上。這本帳本把一筆資金和一個位址綁在一起,位址是一長串字元,扮演公開帳號的角色。
要動用這筆資金,必須證明你是它的持有人。這個證明來自一個只有你握有的祕密:私鑰。私鑰永遠不會被送到任何地方。它用來在付款指令上蓋一個密碼學簽章,網路則驗證這個簽章確實對應到相關的位址。
因此全部的安全性都落在同一個點上:誰看過私鑰。
在交易所,那個人不是你。平台握有鑰匙,你握有的是它資料庫裡的一列紀錄。它要是倒閉、被駭,或監理機關凍結帳戶,那列紀錄就值不了多少了。這就是流傳十年那句話的意思:不是你的鑰匙,就不是你的幣。
在手機錢包 App 裡,鑰匙確實是你的,但它是在一台連網裝置上產生的,而且就住在那台裝置上。一支現代手機執行著數以萬計、沒有人稽核過的程式碼,並且始終暴露在連製造商自己都不知道的漏洞之下。只要沒出事,鑰匙在那裡是安全的。
冷錢包,字面上就是冷的錢包,把邏輯反了過來。私鑰在一台不連網的裝置上產生,而且永遠不離開那台裝置。來回流動的只有待簽章的交易,進去;以及已簽章的交易,出來。就算攻擊者完全控制了你那台連網電腦,他看到的也只是來去的交易,而永遠看不到簽署它們的鑰匙。
這是唯一重要的分野。其餘的一切,都是在讓繞過這一點變得愈來愈難。
熱錢包與冷錢包的差別
熱錢包是指私鑰在連網裝置上產生或保存的錢包,這使它長期暴露於遠端攻擊之下。冷錢包在離線狀態下產生鑰匙、在離線狀態下簽章,所以私鑰從不接觸連網裝置。最常見的誤解在於作業系統扮演的角色:裝了 MetaMask 這類 App 的手機仍然是熱錢包,就算系統經過強化而且完全是最新版本也一樣。重點不是裝置的整體安全性,而是鑰匙用來簽章的那一刻是否存在網路連線。強化一台連網裝置會降低被攻破的機率,但改變不了錢包所屬的類別。
2026 年 Coldcard 事件給我們的教訓
在進入各層級之前有一點必須說明,而最近的新聞讓這一點避不開。
2026 年 7 月底,製造商 Coinkite 揭露,2021 年 3 月引入其 Coldcard 韌體的一個瑕疵影響了部分種子的產生。這並不是刻意設計的備援機制:切換到新密碼學函式庫時的一處整合錯誤,使得一個本該關閉軟體備援產生器的巨集沒有發揮預期作用,於是原本設定要用的硬體產生器實際上被繞過,改用了平台上那個通用、可預測的軟體產生器。產生出來的助記詞看起來完全隨機,但根據 Coinkite 公布的初步估算,其真實熵值在 Mk2 與 Mk3 機型上掉到約 40 位元,在 Mk4、Mk5 與 Q 上掉到約 72 位元,而原本應該是 128 位元。Coinkite 發布的技術說明 精確地描述了這個機制。
根據 TRM Labs 的分析 ,從 2026 年 7 月 30 日起,攻擊者分四波掏空了分布在 5200 多個位址上的約 1816 枚比特幣。他們從頭到尾都不需要接觸受害者的裝置,無論是實體還是遠端。他們只是重新算出了那些已經弱到可以用暴力破解找出來的私鑰。
要記住的正是這一點。這些受害者沒有犯任何錯。種子從未外流,裝置從未連網,實體備份無可挑剔。這些全都沒有用,因為漏洞出在鑰匙被建立的那一刻,那時甚至還沒有什麼東西需要保護。
這件事既不能否定 Coldcard 的硬體,也不能否定硬體錢包這個類別。這是一個具體的瑕疵,在第一波攻擊的隔天就有韌體修復釋出;而遷移到新種子仍然是必要的,因為更新修不好一把已經產生出來的鑰匙。但它照亮了一條對後文一切都適用的界線:本文的五個層級講的是鑰匙存在之後要怎麼保護它,沒有任何一級能單憑自己保證它當初被正確地產生出來。這正是 SeedSigner 這類開放方案的價值所在,後文會介紹,它的產生程式碼是公開的、任何人都能驗證,而封閉韌體卻可以把一個瑕疵藏上五年。
層級一:寫在紙上的助記詞
要人記住一把私鑰是不可能的。幾乎所有錢包都採用的 BIP39 標準繞開了這個問題。
錢包抽出一個非常大的隨機數,然後把它翻譯成一串取自 2048 個字固定字表的普通單字:這就是助記詞,也叫復原詞組。十二個字對應 128 位元的隨機性,二十四個字對應 256 位元。錢包從這串字出發,用數學方法重新推導出你所有的私鑰和所有的位址。
由此得到的核心結論是:助記詞就是錢包。如果你的裝置燒了,你把這些字輸入任何一個相容的錢包,就能原封不動地找回資金。如果有人讀到了這些字,他不需要別的任何東西。既不需要你的裝置,也不需要你的 PIN 碼。
讓這串字無法被猜到的,是它所包含的隨機性的量,而不是它表面上的長度。這跟密碼的道理相同,我們在熵與你的安全背後的科學 一文中做過詳細說明。
實務上,你用手把這些字按順序、編上號,寫在一個不經過任何裝置的載體上。絕不拍照,不截圖,不存文字檔,不放進會同步的密碼管理器,也不寄信給自己。任何碰到線上服務的做法都會把助記詞帶出離線領域,冷錢包也就不存在了。
這一級擋不住什麼。 紙會燒掉,撐不住淹水,會褪色,會弄丟。誰拉錯了抽屜,幾秒鐘就能看完。更重要的是,它構成一個單點故障,這個說法會貫穿本文:單獨一個要素,一旦遺失或被攻破,就足以讓全部資產跟著沒了。
立刻可做的改進花不了多少錢:把助記詞刻在金屬備份上,也就是打上鋼印或插入字塊的不鏽鋼板,Cryptosteel 和 Billfodl 是最知名的例子。鋼材能撐過住家火災和淹水。這解決的是意外損毀,不是竊盜。
層級二:市售硬體錢包
層級一的前提是你已經在某處產生了助記詞。如果你是在手機 App 裡產生、然後才抄下來的,那麼你的助記詞曾經存在於一台連網裝置上,紙只是備份了一個早就暴露的祕密。
硬體錢包從根本上解決了這個問題。這是一台小型專用裝置,沒有瀏覽器,也沒有第三方 App,它唯一的職責就是產生助記詞、把它保存在安全晶片裡,以及為交易簽章。它插在你的電腦上,但鑰匙從不離開晶片。電腦送來一筆待簽章的交易,裝置在自己的螢幕上顯示金額和收款位址,你按鍵確認,它回傳一個簽章。
那塊螢幕是關鍵,而且經常被誤解。如果你電腦上的惡意程式在送出時換掉了收款位址,裝置螢幕上顯示的會是真正的去向,也就是攻擊者的位址。它是你最後一道獨立的核對關卡。每一次都必須讀。
主流產品是 Ledger 、Trezor 和專攻比特幣的 Coldcard 。
對來源保持警覺
我們又回到了本文開頭那台假錢包。
只在製造商官網直接購買,或向它正式列出的經銷商購買。絕不在綜合電商平台買,絕不買二手,絕不收別人送的裝置。從出廠到你手上這一段路,中間人可以打開裝置、換掉內容再乾淨俐落地封回去。收到貨時依照製造商公布的驗證程序,檢查封條以及有沒有被開過的痕跡。
尤其要記住這條單憑自己就能瓦解最常見攻擊的規則:一台全新的硬體錢包必須讓你自己產生助記詞,絕不能給你一串現成的。凡是盒子裡已經寫好助記詞的裝置,或是要求你輸入隨附助記詞的裝置,都已經被攻破了。沒有例外。
這一級擋不住什麼。 你現在信任的是一家製造商的隨機數產生器品質,以及它韌體的完整性,也就是裝置內嵌的軟體。這套韌體通常是專有的,至少有一部分是,因此你無從驗證。這是合理的信任,對絕大多數人來說也站得住腳,但它終究是信任。而且助記詞依然是單點故障。
層級三:專用的實體隔離電腦
如果你不想信任任何製造商,那還有一條路:在通用硬體上、用開放且經過稽核的軟體,全部自己來。這就是實體隔離主機的原理,字面意思是被一層空氣隔開:一台從未連網、也永遠不會連網的電腦。
- 找一台只做這件事的機器。舊筆電就行,沒有內建無線晶片的型號最理想。
- 從一個你已經核對過密碼學指紋的映像檔出發,重灌一套乾淨的系統,例如常見的 Linux 發行版。
- 在盡可能低的層次上把網路廢掉。實體拆掉 Wi-Fi 網卡,它通常是蓋板下插著的一張小卡,這比在設定裡關掉要好。絕不插網路線。軟體層面的停用可以被軟體取消,而一個根本不存在的零件什麼也取消不了。
- 安裝一款主流軟體錢包,Sparrow 或 Electrum ,用隨身碟把安裝檔傳進去並核驗其簽章。
- 在這台機器上離線產生助記詞,並按層級一的方式做好備份。
要花錢時,流程走的是一種標準格式:PSBT(Partially Signed Bitcoin Transaction),也就是部分簽章的交易。這是一個檔案,包含一筆交易的所有細節,唯獨少了簽章。你在連網電腦上準備好交易並匯出這個檔案,用隨身碟、或用螢幕上顯示再由攝影機讀取的 QR code,把它送到離線機器上。離線機器完成簽章,你用同樣的路徑把簽好的檔案帶回來,連網電腦再把它廣播到網路上。
兩個世界之間唯一的通道,是一個你親手搬運的檔案。這很慢,而慢正是它的價值所在。
這一級擋不住什麼。 隨身碟成了你的弱點:它是一種主動介質,能夠帶進程式碼。此外,離線系統仍然是一套通用作業系統,龐大而難以稽核。紀律同樣重要:為了更新而「就插這麼一次」網路線的誘惑,會一口氣讓整套安排前功盡棄。
層級四:開源自製簽章器 SeedSigner
SeedSigner 把層級三的邏輯推到了底:一台極簡的、由你自己組起來的裝置,它的行為可以被驗證,而且什麼都不留。
核心零件是一塊 1.3 版本的 Raspberry Pi Zero。這個說明不是細節,而是整套方案的核心。Pi Zero 1.3 在硬體層面既沒有 Wi-Fi 也沒有藍牙:板子上根本沒有無線晶片。它不是 Raspberry Pi 5,不是 Pi Zero W,也不是 Pi Zero 2,那幾款都帶無線連線。官方文件講得很明白,1.3 版本提供的網路隔離保證最好。
它跟軟體停用的差別是根本性的。在設定裡關掉的 Wi-Fi,靠的是一段軟體的承諾,而另一段軟體可以背棄它。一塊從未焊上板子的晶片,則沒有任何程式碼、任何漏洞、任何被動過手腳的更新能夠重新啟用它。你不再是信任一項設定,而是確認一個實體上的不存在。
其餘的部分就三樣東西:一塊 1.3 吋、240 乘 240 像素的 WaveShare 螢幕及其按鍵,一個相容 Pi Zero 的攝影機模組,以及一張 microSD 卡。零件成本不到 50 美元,完全不用焊接。
所有通訊都透過 QR code,雙向都是。連網錢包,例如 Sparrow,把 PSBT 顯示成 QR code,交易體積大時會變成動態的。SeedSigner 的攝影機讀取它。裝置在自己螢幕上顯示交易細節,你確認,它簽章,然後反過來把已簽章的交易顯示成 QR code,由你用連網電腦的視訊鏡頭拍下來。沒有資料線,沒有隨身碟,沒有網路。光是唯一的通道。
這台裝置而且是無狀態的。它從不永久儲存鑰匙:助記詞在每次工作階段開始時輸入,使用期間只存在於記憶體中,斷電就消失。microSD 卡裡只有軟體。攻擊者偷走你關機的 SeedSigner,偷到的不過是一塊十五歐元的 Raspberry Pi。
開放的代價。 不再有製造商需要信任,但也不再有製造商為任何事情背書。在把軟體寫進 microSD 卡之前,你必須自己核驗它的真偽。專案在其 GitHub 發布頁 上提供映像檔,附帶一份清單以及該清單的簽章。核驗把兩件事結合起來:GPG 簽章證明這次發布確實出自開發者之手,SHA256 指紋比對證明檔案之後沒有被改動。而且必須在掛載映像檔之前就做,因為某些系統會在開啟時修改映像檔,導致比對失敗。核驗沒過,就不燒錄。
要留意的功能限制:SeedSigner 是一個比特幣專案,不支援其他鏈。
層級五:Qubes OS 上的 Vault 虛擬機器
層級三用一條拔掉的線把兩個世界隔開。這是一份你日復一日手動維持的保證,靠的是你的自律。
Qubes OS 提供的是另一種東西:由系統架構強制實施的隔離。Qubes 把你的各項活動分隔到不同的虛擬機器中,稱為 qube,由 hypervisor 加以隔離。我們在以安全為導向的作業系統比較 一文中把它跟其他系統做過定位。
Vault 虛擬機器在建立時完全沒有網路介面。這不是表面上的設定:這台虛擬機器根本沒有虛擬網卡,沒有驅動程式,沒有協定堆疊,沒有任何東西可以啟用。無論裡面跑什麼程式碼,它在實體上都沒有辦法送出一個封包。持有助記詞並離線執行 Sparrow 的正是它。
第二台虛擬機器是連網的,它以唯讀觀察模式執行 Sparrow,只帶公鑰。它看得到餘額和歷史紀錄,會建構交易,但無法為任何一筆簽章。
傳輸完全透過檔案進行,使用內部工具 qvm-copy。未簽章的 PSBT 從連網虛擬機器送往 Vault,Vault 完成簽章,簽好的檔案再以同樣的機制回來。沒有共用網路,沒有共同資料夾,沒有自動剪貼簿。
有兩點讓它勝過一台單純隔離的電腦。首先,隔離不再取決於你:在傳統的實體隔離機器上,隔離是你行為的一項屬性,只要沒人插線它就成立。而在 Qubes 之下,隔離由 hypervisor 在虛擬機器之下強制執行,跑在裡面的東西構不著。就算惡意程式在 Vault 中取得了完整權限,它依然沒有任何網路硬體可以驅動。其次是可逆性:qube 建立在範本之上,一旦你懷疑被攻破,就銷毀虛擬機器,幾分鐘內重建一台乾淨的。而在一台專用電腦上,同樣的疑慮就意味著徹底重灌。
這一級擋不住什麼。 這是本文中最穩固的方案,而它原封不動地保留了第一級的弱點:始終只有一串助記詞。一場燒掉備份的火災、一次施加在你身上的人身脅迫、一個操作失誤,結果不是全部遺失,就是全部被拿走。軟體隔離再完美,也改變不了這一點。
多重簽章:改變問題的性質
前面五個層級改進的都是同一件事,也就是對單一祕密的保護。多重簽章提出的是另一個問題:如果我們不再只有一個祕密呢?
這條原理寫在網路規則裡。資金不再綁在一把鑰匙上,而是綁在一組鑰匙上,並設一個門檻。三取二是指存在三把鑰匙,花費需要其中兩把。五取三是指存在五把鑰匙,需要其中三把。每把鑰匙獨立產生,用不同的裝置,最好還是不同類型的裝置,並存放在不同的地點:一台 Coldcard 放在家裡,一台 SeedSigner 放在信得過的親友那裡,一把鑰匙放進銀行保險箱。
這帶來的改變很清楚。竊賊找到一份備份,什麼也拿不到。一場火災毀掉一個地點,毀不掉你的資金,你可以用剩下的鑰匙重建。某家製造商被發現瑕疵也不夠,因為你其他的鑰匙來自別處。有人對你人身威脅,會撞上一個事實:你一個人在當下根本拿不出他要的東西。
單點故障在兩個方向上同時消失,既對遺失,也對竊盜。先前任何一級都做不到這個結果,包括 Qubes 那套方案。
代價是操作上的複雜度。要備份的不只是種子,還有錢包描述子,這是一個描述該方案結構以及組成它的公鑰的檔案。沒有它,就算你湊齊了所需數量的種子,要找回資金也會變得非常困難。一套文件不清的多重簽章,比一台用得清清楚楚的普通硬體錢包更危險。
適用於所有層級的規則
硬體佔據了討論的絕大部分,而真實的損失多半來自別處。
把備份在地理上分開。 同一棟房子裡兩個抽屜中的兩份相同種子,面對火災或淹水時只等於一份。風險不只是竊盜。把地點分開,同時記住:每多一份副本,你抵禦遺失的能力就更強,抵禦竊盜的能力就更弱。這是一種取捨,不存在最佳設定。
用小額做一次測試。 轉入相當於幾歐元的金額,確認收到,然後把錢包清掉,再完整地從備份中復原。收款成功並不能證明復原沒問題,而將來救你一命的正是復原。抄錯一個字、順序顛倒、備份不完整,這些都只有在那一刻才會浮現,而在只押上十歐元的時候發現要好得多。
保持低調。 技術上的安全對社交工程和有針對性的人身竊盜毫無作用。不要公開提到你持有加密貨幣,不在社群網路上,不在餐桌上,也不對交情不深的熟人說。世界上最好的方案,也保護不了一個眾所周知有東西可拿的人。
安排好傳承。 這是最被忽略的一點,而且不可逆。一個安全性做得好的冷錢包,其設計目標就是除了你之外誰也進不去。一旦身故或喪失行為能力,這個特性就會反過來對付你的繼承人,資金將永久損失。可行的做法有幾種:把加密過的文件託付給可信的第三方或存放在公證人那裡;採用包含一把由繼承人持有的鑰匙的多重簽章方案;或者設置一種在長期沒有生命跡象時釋出資訊的 dead man switch 裝置。每一種都涉及因國而異的法律與稅務影響。把技術意圖記錄下來,具體落實則請法律專業人士來把關。
這說明了 Arpokrat 的思路
貫穿這五個層級的主線不是複雜度的遞增。而是你必須信任卻無法驗證的角色數量在逐步減少。交易所要求完全的信任。硬體錢包把它壓縮到一家製造商。SeedSigner 用一次由你親自完成的核驗取而代之。Qubes 方案把保證從行為轉移到架構。多重簽章則把它從每一個單獨看待的要素上收回。
這正是主導我們產品設計的邏輯。建立在承諾之上的保證不是保證,而是一種表態。結構性的保證,就算建造它的人改了主意或收到強制令,依然成立。一項不持有你鑰匙的服務,無論承受多大壓力都交不出鑰匙:這就是 Arpokrat Swap 背後的原理。而且隨著法規框架的演變,這個問題正變得愈來愈具體,我們對歐盟計畫於 2027 年對門羅幣與 Zcash 實施限制 的分析就說明了這一點。
結語
不存在一個籠統意義上「好」的安全等級。存在的是與你所持有的東西、以及與誰可能合理地盯上你相稱的等級。
在製造商那裡買的硬體錢包上放幾百歐元,助記詞刻在金屬上並存放在住處之外,這是一套完全站得住腳的配置。它已經把你放在絕大多數加密貨幣持有者之上,並保護你免於那些真正造成損失的情境。為此沒有人需要在 Qubes 上搞多重簽章。複雜方案的合理性,出現在金額大到足以讓針對性攻擊變得有利可圖時,或者你的處境本身就會招來特別關注時。
所以正確的問題不是該往上爬到哪一級,而是你目前的哪一條假設最脆弱。對多數人來說那不是硬體:而是只存在一個地方的唯一備份、一次從未演練過的復原,或者一場從未考慮過的傳承。修正這三點不花什麼成本,而它們比從一級邁向下一級更重要。
