作者:bitvault
來源:https://blog.bitvault.sv/common-multisig-setup-errors-and-fixes/
多簽名錢包通過要求多個密鑰為交易簽名來提高比特幣保管裝置的安全性,但是,不正確的使用習慣可能會導致資金丟失或是裝置漏洞。常見的錯誤包括:糟糕的密鑰備份、錯誤配置腳本、密鑰未充分分散、軟件問題,以及缺少復原計劃。以下則是你可以如何避免這些錯誤:
- 妥當地備份密鑰:在多個安全地點(例如防火的保險櫃)存儲備份、避免使用電子存儲介質。使用 “Shamir 私鑰分割” 這樣的技術可以增加安全性。
- 驗證腳本和地址:多次確認所有配置;在轉入大額資金之前,先用小額資金測試。
- 實質性分散密鑰:將密鑰分散在多個設備和地點上,以減少風險。避免在同一位置存放多個密鑰。
- 確保軟件的兼容性:使用支持你的多簽名設置的軟件,並經常更新軟件。在存入資金之前,測試軟件的完整性。
- 準備復原規劃:清晰地寫下復原步驟、定期測試,並安排後備的密鑰持有人。
定期測試和審計是持續保證安全性的關鍵步驟。你要模擬需要復原錢包的情形、每個季度檢查密鑰備份,並定期輪換密鑰。BitVault 這樣的工具可以簡化這些流程,還提供延遲交易和安全通知這樣的高級功能。
視頻:為什麼比特幣多簽名錢包是非常安全的,以及,如何使用 Electrum 來建立 2-of-3 多簽名錢包
多簽名錢包用法常見誤區及糾正
建立一個多簽名錢包可能很不容易,甚至小錯誤也可能引發大問題。瞭解常見的誤區以及規避方法,可以幫助你免於犯下代價昂貴的錯誤。以下是常見誤區的詳細解釋,以及保證你的多簽名錢包流暢運作的實用解決方案。
糟糕的密鑰備份程序
問題:許多用戶要麼沒有妥當地備份自己的私鑰(種子詞),要麼將所有的備份材料都放在了一個地方。更糟糕的是,一些用戶甚至從來沒有測試過復原流程(直到遇上真實需要,然後發現自己無法復原),將自己的資金置於嚴重的風險之中。
解決方案:創建多個備份,並存放在單獨的、安全的位置。將跟你的密鑰有關的物品分散在多個地點,保證至少一套種子詞是跟其它元素完全分開的。
(譯者注:顧名思義,多簽名錢包涉及多個私鑰(種子詞),這些種子詞都要有單獨的備份,並且,不應在一個安全地點存放足以復原錢包(取出資金)的所有材料,否則,這個保管裝置的安全性將降低到與單簽名錢包相同 —— 只需攻破一個安全地點,就足以盜竊資金。)
避免實用電子存儲介質 —— 不要在電子設備上存儲種子詞、不要 複製-粘貼 它們、不要拍成照片。相反,你應該把它們寫在紙上,或者刻在金屬板上(更加耐用)。在安全的地方存放這些備份,比如銀行保險櫃。如果想獲得額外的安全性,你應該使用 Shamir 私鑰分割(SSS) 將一個種子詞分成幾份,要求獲得一定數量的碎片才能復原出這個種子詞。
定期測試你的備份系統,確保你能復原錢包和其中的資金。清晰地寫下復原的流程,要保證即使幾年之後你重新拿起也能遵守這個流程、復原你的錢包。
錯誤的地址(腳本)設定
問題:在公鑰記錄中出現錯誤,使用不匹配的地址格式(或者說不正確的腳本配置)可能使你無法復原錢包,或使之暴露在風險之中。這個問題常常出現在用戶需要手動輸入數據條目或使用不兼容的錢包軟件的時候。
解決方案:在完成錢包搭建之前,多次檢查公鑰記錄以及地址格式。使用可信任的工具來驗證所有的細節都嚴絲合縫,並且絕對不要將從不安全、不可信任的來源複製敏感信息。
使用小額資金來測試你的保管裝置,以儘早發現故障:確保你可以存入、取出資金而不會遇到問題,然後才能將大額資金存入。
保留關於你的多簽名錢包配置的詳細記錄,包括閾值要求、腳本類型、所設計的所有公鑰。這些資料在恢復錢包和排除故障時都極為有用。(譯者注:在先進的多簽名錢包中,已經可以將這些關鍵信息導出為 “輸出描述符” 或是 “BSMS 文件”,的確是非常重要的信息。)
糟糕的密鑰分散與協作
問題:將一個多簽名錢包的多個密鑰存放在同一個地點,會導致該錢包的安全性降級,此外,簽名器之間的交互協議不清楚,可能導致交易許可過程中的困惑、延遲甚至安全漏洞。
解決方案:在多臺設備、多個人、多個位置分散密鑰。避免將多個密鑰存放在同一臺設備或是放在同一個地方。保證硬件簽名器和種子詞是分開存放的。
為初始化交易的人選以及如何協作建立清楚的規則。使用安全的通信通道,比如加密聊天、視頻會議或者帶有多重身份驗證的私人虛擬網絡。避免在電子郵件中傳遞敏感數據,很容易被欺騙。
讓所有的密鑰持有人瞭解安全性的最佳習慣、簽名流程以及如何處理潛在的威脅。不要揭曉簽名人的身份,以保護他們免遭有針對的攻擊,同時避免讓他們的真名與家庭地址與某個簽名密鑰關聯起來。
在簽名交易時,保證所有參與者都理解交易的意圖、支付目標以及數額。驗證收款地址、為每一筆交易實現一個清楚的驗證流程。
軟件兼容性問題
問題:使用並不完全支持你的多簽名裝置的錢包軟件或服務,可能導致交易失敗或是無法復原資金。不同的軟件時間可能會以不同的方式來處理多簽名腳本。
解決方案:選擇兼容你的多簽名配置的錢包軟件。兼容性跟保管密鑰同樣重要。
缺少復原和緊急情況應對方案
問題:許多用戶都沒有為自己的多簽名錢包準備好妥善的復原(緊急情況應對)計劃。沒有清晰的文檔和流程,失去一個密鑰就可能導致永久的資金損失或是費力的復原嘗試。
解決方案:為一個私鑰丟失或失盜的情形準備應對計劃。可能需要安排一個受信任的第三方作為一個後備的密鑰保管人。寫下復原的步驟並單獨保管(不要跟私鑰放在一起)。
如何測試和審計你的多簽名裝置
解決了常見的問題之後,持續的測試和審計也是保證你的錢包安全的關鍵機關。定期審核以及演練復原場景,可以幫助你發現弱點、防止漏洞擴大。
演練復原場景
測試復原場景是找出和修復潛在漏洞的好劍法。比如說,模擬丟失了一個硬件簽名器或是某個簽名人失去行動能力的場景。看看你需要多長時間從錢包中取出你的資金,並記錄你會遇到的所有障礙。
每年要運行這些模擬至少兩次,並且要記錄下你學到的東西。保證所有的參與者都知道自己的角色,並且能夠觸及必要的備份材料。一份復原檢查清單可能是救命稻草 —— 包括像取出備份材料和在有需要時生成新密鑰這樣的步驟。如果你在使用 2-of-3 閾值條件,嘗試使用不同的密鑰組合來複原錢包、確保每一個復原路徑都像你想的那樣運作。
還要關注你在復原錢包期間跟其他簽名人的協調所花費的時間。如果你的裝置需要多個人來許可交易,還要演練通信流程,保證流暢和安全。建立加密通信通道或者安全的群聊,來保證緊急情況下協調能順利完成。
經常聯繫會建立起自信,並保證每個人都時刻準備好了,也是為定期的密鑰檢查打下基礎。
定期的密鑰和備份檢查
為了保持安全性,你的多簽名裝置也需要定期維護。可以每個季度檢查一次備份材料的完整性以及可訪問性。比如說,確認每一個寫在紙上的種子詞都依然可以辨識、沒有損壞。
在檢查期間,驗證所有的簽名人都可以觸及自己的密鑰並且理解自己的責任。因為人們可能會變換手機號碼、遷徙乃至丟失設備,所以保留聯繫信息和最新的密鑰位置就成了關鍵。關注你的緊急聯繫人列表、確保後備的密鑰持有人依然活著、在你需要的時候就願意提供幫助。
此外,也要更新你的錢包軟件、確保它跟你使用的其它工具相兼容。軟件更新有時會影響多簽名交易的處理方式,所以保持更新就成了關鍵。
定期檢查你的交易歷史,看看其中有無反常的活動以及未獲得許可的嘗試。即使是失敗的交易嘗試,也可能暗示著漏洞。記錄下你在檢查中的發現。
考慮每兩年輪換你的密鑰,作為額外的應對措施。雖然著可能是過度的,但它降低了密鑰被盜而導致長期損失的風險。在輪換密鑰時,創建一個新的多簽名錢包、徹底地測試它,然後將資金從舊錢包轉移盜新錢包。
快速參考:故障與解決方案列表
為了支持高效的測試和審計,使用這個快速參考指南來排查常見的問題。下面的列表列舉了常見的誤區、它們的表現、影響級別和解決方案,以及防止進一步問題的建議。
錯誤類型 | 表現 | 影響級別 | 快速解決方案 | 建議 |
---|---|---|---|---|
糟糕的密鑰備份 | 在設備故障之後無法訪問錢包;缺少種子詞 | 致命 | 立即重新創建備份;使用小額資金測試錢包能否復原 | 在 3 個以上不同地點存儲備份;使用 防火/防水 的存儲介質 |
錯誤的地址設置 | 交易失敗;資金髮送到錯誤的地址 | 高 | 驗證腳本類型在所有設備上一致;如有需要,重新生成地址 | 在第一次交易之前多次檢查地址格式 |
糟糕的密鑰分發 | 所有密鑰保存在同一個位置;一個人控制著多個密鑰 | 高 | 重新分發密鑰到不同地點/不同人;更新訪問流程 | 在一開始就計劃好地點和保管人 |
軟件兼容性 | 無法簽名交易;錢包不能識別簽名; | 中等 | 更新所有的錢包軟件;驗證 BIP 標準兼容性 | 在大額資金存入以前用小額資金測試 |
缺少復原計劃 | 在某個簽名人失去行動能力時沒有清晰的應對方案;缺乏緊急情況預案 | 中等 | 寫下復原錢包的每一個步驟;指定後備簽名人 | 制定書面流程;定期演練 |
“影響級別” 一列可以幫助你確定修復措施的優先級。立即解決致命和高風險的問題,因為它們可能導致你永久丟失資金(或者錢包永久鎖定)。
使用這個指南的時候,請從 “表現” 一列檢查自己遇到的問題,並瞭解相應的 “快速解決方案”。在快速修復措施解決掉緊急問題之後,“建議” 可以幫助避免重複犯錯。
保留這張表格以備季度檢查使用。考慮打印它並隨備份材料保管,以備快速查驗。
對於緊急情形,例如交易失敗或者簽名人無法行動,請首先使用快速解決方案。但請注意,在一些情形中,比如重新分發密鑰,可能需要創建一個新的多簽名錢包並轉移資金。請周密地計劃這些步驟,以保證流暢遷移。
結論
通過要求多個簽名,多簽名錢包可以顯著降低單點故障的風險。
保證你的多簽名錢包的安全性,是一個需要周密計劃和持續勞動的過程。缺少密鑰備份以及復原方案這樣的錯誤,通常可以通過周詳的準備和定期檢查來避免。
在維護多簽名錢包的安全性時,有三個關鍵的原則:妥當地備份種子詞、在多個地點和設備分散保管種子詞以及定期測試你的裝置。在創建好種子詞之後,就備份它們,並定期通過嘗試簽名來測試它們、確保一切都按預期進行。
在配置你的錢包時,要在安全性和易用性之間取得平衡。例如,2-of-3 和 3-of-5 這樣的簽名要求,既提供了靈活性,又使得你的某個密鑰丟失或者失盜時能夠輕鬆復原資金。相反,2-of-2 和 3-of-3 這樣的配置,即使只是無法訪問一個密鑰,也會給你帶來故障。此外,要將種子詞存儲在不同設備上,以降低風險。
隨著你的環境改變,要定期檢查你的安全設置和密鑰持有人安排。回顧簽名的快速參考表格來狙擊和解決可能導致資金永久丟失的漏洞。
多簽名錢包最強大的地方在於它內置的冗餘性。即使你丟失了一個私鑰(種子詞),只要你還能滿足簽名閾值要求,就還能取出資金。這讓多簽名錢包成為安全地保管大額儲蓄的絕佳選擇。但是,只有你遵守了合理的搭建和維護習慣時,才能獲得這些好處。跳過這些步驟可能會降低多簽名錢包本來能夠提供的安全性。