十二個單字。對正在讀這篇文章的大多數人來說,這就是全部的安全模型:十二或二十四個常見的英文單字,只產生一次,抄在紙上,掌控著他們在鏈上擁有的一切。BIP39 助記詞確實居功厥偉——它讓錢包備份變得可攜、標準化、不綁定任何廠商。但它也悄悄成了整個產業最集中的風險。助記詞是一個單點故障:一個機密,誰讀到它,一切就歸誰;而唯一知道它的人一旦弄丟,一切也隨之深埋。
先把結論說在前頭:這個問題靠更好的藏匿地點是補不起來的。單一助記詞的任何存放安排,都只是在外洩風險與遺失風險之間做交換。真正的解法在結構層面——把控制權分散到多把彼此獨立的密鑰上,讓任何單一機密都無法掏空錢包,也無法因為消失而把錢包永遠鎖死。
一個機密,兩種方向相反的失敗方式
助記詞是錢包完整的主密鑰:它以確定性方式推導出每一把私鑰、每一個地址,因此誰握有這串單字,誰就掌控資金,不會再被問任何問題。它是一份無記名的機密。沒有可以凍結的帳戶,沒有密碼重設,也沒有任何有權撤銷轉帳的客服專線。
所謂單點故障,是指任何一個元件只要失守或遺失,就足以讓整個系統崩潰。以這個定義衡量,單一助記詞的保管方式在兩個方向上同時不及格:
- 外洩。任何讀到這串單字的人——闖空門的竊賊、同步到雲端的相簿、掃描備忘錄 App 的惡意程式、知道你習慣把東西收在哪裡的親戚——都能在幾分鐘內、從世界任何角落把錢包搬空,且無法挽回。
- 遺失。如果唯一的副本被火燒、被水淹、字跡褪色,或跟著垃圾一起被丟掉,這些幣將永遠顯示在鏈上,卻永遠無法動用。區塊鏈會大方地把你的餘額展示給你的子孫看;但他們誰也碰不到它。
令人不安的是,這兩種風險互相拉扯。多做幾份備份,遺失的機率縮小了,外洩的機率卻成倍放大;只留一份藏在絕佳的地點,效果正好相反。面對單一助記詞,你只能選擇自己比較可能栽在哪一種失敗上——卻無法讓這種失敗模式本身退場。
產業裡記錄最完整的損失案例
這一切都不是假設。2013 年,威爾斯的 IT 人員 James Howells 把一顆存有約 7,500 枚 BTC 密鑰的硬碟當垃圾丟了。它從此埋在紐波特的一座垃圾掩埋場裡,十年來的開挖提案既沒有說動當地市議會,也沒有讓那些幣移動分毫。舊金山程式設計師 Stefan Thomas 手上則有一顆加密的 IronKey 隨身碟,裡面存放著 7,000 餘枚 BTC 的密鑰——他多年前忘了密碼,據 2021 年的廣泛報導,這顆隨身碟的十次嘗試機會他已用掉八次,用完即永久鎖死。名案之外,被廣泛引用的 Chainalysis 估算指出,永久遺失的比特幣約占所有已開採比特幣的 20%。
留意這兩位的身分:一位 IT 專業人士,一位功力深厚的軟體工程師,而且都入行得夠早,完全明白自己手裡握著什麼。單一密鑰保管懲罰的不是無知——它懲罰的是普通人難免的疏失,而且罰到一無所有。同樣一個歸檔失誤,銀行客戶付出的是一下午的客服電話,自託管持有者付出的卻是全部資產,而且永遠拿不回來。
為什麼多做備份也解決不了問題
每個弄丟幣的故事之後,標準建議都如出一轍:把備份做好。把單字沖壓進鋼板,火燒水淹都毀不掉;在多個地點存放副本;租一個銀行保管箱。這些建議就其本身而言都合理——但沒有一條觸及底層結構,因為助記詞的每一份副本都是一把完整的鑰匙。鋼板撐得過一場住宅火災,也同樣撐得夠久,久到被人找到。每多一個備份地點,就多一個地方放著你財富的一份完整、可直接花用的副本,靜候不該讀到它的人。
產業對此心知肚明,所以「助記詞備份即服務」才會被一再嘗試。今年 5 月,Ledger 宣布推出 Recover——一項選用的訂閱服務,將裝置種子的加密副本分片交由三家託管方保管,並與身分驗證綁定。技術用戶的反彈來得又快又猛,Ledger 隨即暫停了上線。我們當時寫過這場風波帶給自託管的啟示;此處真正要緊的是一個更窄的問題:這款產品為什麼會存在。沒有備份的單一種子,就是一場遲早要發生的損失,廠商每天都從客服工單裡感受到這股壓力。但透過第三方重組種子並沒有消除單點故障——它只是把單點故障換成了交易對手風險與流程風險,而這類風險的代價,去年 11 月 FTX 的崩塌已經為所有還需要這一課的人標好了價。
平心而論,硬體錢包在它宣稱的事情上確實做得很好:讓密鑰遠離連網的電腦。但硬體錢包裡的種子仍然只是一份種子。裝置和紙本備份一起弄丟,結局跟那座垃圾掩埋場沒有兩樣。
真正消除單點故障的做法
多簽——多重簽名保管——改變的是結構,而不是藏匿地點。多簽錢包要求 N 把獨立密鑰中的 M 把共同授權任何一筆交易:2-3、3-5,依此類推。任何單一密鑰都動不了資金,任何單一密鑰的毀損也凍結不了資金。單點故障不是被藏得更好,而是不復存在。
做法得當的話,N 把密鑰中的每一把都是各自獨立的標準 BIP39 助記詞,在各自的裝置上產生,存放在各自的地點——而且每一把都可以屬於不同的人。一個密鑰分散在兩座城市、兩個人手中的 2-3 錢包,沒有任何一個地點、任何一台裝置、任何一個人的失守是致命的。
也為其他方案說句公道話:MPC 錢包用另一套數學追求同樣的目標——把一把密鑰拆成多個分片,共同計算出簽名——是合理的設計,只是在協定透明度與恢復方式上有自己的取捨。託管機構則把密鑰管理整個移走,部分機構確實有此正當需求,代價是必須信任託管方。多簽的獨特優點在於規則由鏈本身強制執行:任何人都能在鏈上驗證花費門檻,恢復也不倚賴任何一家公司繼續營運。正是這種可驗證性,讓 Ownbit 多簽在 App 本身並不開源的情況下,仍堅持開源其鏈上合約;也讓 Ownbit 錢包裡的每一把共同簽名密鑰都是一份普通的 BIP39 助記詞,你完全可以用標準工具自行恢復。
一套經得起現實生活考驗的 2-3
以下是我們最常推薦的配置,全程只需要幾支手機:
- 密鑰 1——你的日常手機。錢包 App 保存一份助記詞,並負責協調交易。
- 密鑰 2——用一支閒置手機充當冷錢包。一支舊手機,抹除資料後永久離線,保存第二份助記詞。未簽名的交易以 QR Code 傳入,簽名再以 QR Code 傳出,因此這把密鑰永遠不接觸網路。Ownbit 的冷錢包工作流程正是為此而生,無須額外購買任何硬體。
- 密鑰 3——存放在別處的備份助記詞。第三份助記詞以紙本或鋼板的形式放在第二個地點,或交給你信任的家人保管。
現在把各種失敗情境走一遍。一場住宅火災燒掉了日常手機和冷錢包手機?密鑰 3 加上替換裝置,就能恢復 2-3 的控制權。竊賊找到了備份助記詞?它單獨簽不了任何交易,你大可按自己的節奏,從容地把資金轉移到一個全新的錢包。手機在機場被偷?答案同上。在 2-3 多簽裡,遺失任何一把密鑰都撐得過去,偷走任何一把密鑰都毫無價值——在單一助記詞下互相拉扯的那兩種風險,如今被同一個結構一併吸收。
目標不是讓密鑰永遠不會遺失,而是讓任何單一的遺失都撐得過去,讓任何單一的失竊都毫無用處。
誠實面對代價
多簽並非沒有成本。每一筆支出都需要第二個簽名,多出一道協調步驟——對儲蓄來說可以接受,對買咖啡的零錢來說就嫌麻煩,這也是為什麼在多簽金庫旁邊,一個小額的單一密鑰熱錢包仍有其正當位置。在某些鏈上,多簽交易的手續費會略高一些。而且你現在要妥善保存的助記詞是三份,不是一份;紀律並沒有消失,只是被分散了。真正改變的是犯錯的後果:過去致命的失誤,如今成了可以修復的事故。
還有一個比較安靜的好處。因為密鑰可以屬於不同的人,多簽天然是繼承安排的地基:繼承人今天就能持有一把密鑰,卻不能今天就動用資產,而且任何人都不必在生前分享自己的助記詞。這個題目值得另文專述——就眼前而言,重點已經足夠清楚。如果你在鏈上的全部身家,都繫於一串單字必須同時保持既保密又安全,那麼問題就不在於這套安排會不會失敗,而在於它會先朝哪個方向失敗。
常見問題
有人發現我的助記詞會怎樣?
他將完全控制這個錢包。助記詞能重新產生每一把私鑰,撿到的人可以在幾分鐘內把所有資產轉到自己控制的地址,而鏈上轉帳無法撤銷。唯一的防禦是立刻把資金轉移到新錢包——前提是你能及時發現外洩。
金屬助記詞備份夠用嗎?
金屬解決的是耐久性——防火、防水、防字跡褪色——但解決不了保密性與風險集中的問題。一塊鋼板仍然是你錢包一份完整、可直接花用的副本,躺在一個找得到的地方。作為儲存方案的一環它很稱職,拿來替代徹底消除單點故障,則遠遠不夠。
用了多簽是不是就沒有助記詞了?
不是——你會有好幾份。在標準多簽中,每一把共同簽名密鑰都是一份獨立的 BIP39 助記詞,獨立產生、獨立保存。差別在於,其中任何單獨一份既不能花費資金,也不會因遺失而凍結資金;只有達到門檻——例如 2-3——才有這個權力。
BIP39 密語(「第 25 個字」)難道不夠保護嗎?
密語能防範別人撿到寫下來的助記詞,這確實有價值。但它同時多了第二樣你可能弄丟的東西:忘了密語,光憑助記詞什麼也恢復不了。它只是把藏匿處挖得更深,並沒有像彼此獨立的多簽密鑰那樣消除單點故障。