作者: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 这样的配置,即使只是无法访问一个密钥,也会给你带来故障。此外,要将种子词存储在不同设备上,以降低风险。
随着你的环境改变,要定期检查你的安全设置和密钥持有人安排。回顾签名的快速参考表格来狙击和解决可能导致资金永久丢失的漏洞。
多签名钱包最强大的地方在于它内置的冗余性。即使你丢失了一个私钥(种子词),只要你还能满足签名阈值要求,就还能取出资金。这让多签名钱包成为安全地保管大额储蓄的绝佳选择。但是,只有你遵守了合理的搭建和维护习惯时,才能获得这些好处。跳过这些步骤可能会降低多签名钱包本来能够提供的安全性。