Shamir 备份与拆分助记词
Shamir 备份将钱包的恢复秘密拆分成多个份额,任何单独一份都无法用来盗取你的资金。了解它的工作原理,以及为什么把助记词一分为二存在风险。
Shamir 备份将钱包的恢复秘密拆分成若干份额,每一份都写成一组独立的单词,只要凑齐事先选定数量的份额(例如三份中任意两份)就能恢复钱包,而少于这个数量的份额不会泄露任何有用信息。这样你就可以把备份存放在不同地点,而任何一个地点都不持有完整的密钥。
这解决了一个现实中的两难。只有一份助记词备份,就意味着存在单点故障:丢了,资金就没了;被人找到,资金就可能被盗。多做几份副本能降低丢失风险,却会增加被盗风险。Shamir 备份旨在同时降低这两种风险,但它也带来了额外的复杂性,一旦操作失误,你可能会把自己锁在门外。
Shamir 秘密共享的工作原理
Shamir 秘密共享由密码学家 Adi Shamir 于 1979 年提出。其核心思想基于一个数学事实:确定一条曲线需要一定数量的点。两个点确定一条直线,三个点确定一条抛物线,依此类推。
简单来说:
- 1秘密被编码为一条随机选定曲线上的一个点。
- 2这条曲线上的不同点作为份额分发出去。
- 3份额足够多(达到门限)时,就能重建曲线并恢复秘密。
- 4份额不足时,有无穷多条曲线都能吻合,因此这些份额对秘密一无所知。
正是最后这一特性,使它与把一组单词简单拆成几段截然不同。
钱包中的 Shamir 备份:SLIP-39
硬件钱包制造商 SatoshiLabs(Trezor 背后的公司)发布了一项名为 SLIP-39 的 Shamir 备份标准。支持该标准的钱包会以单词列表的形式生成份额,看起来类似助记词,但使用的是不同的词表和格式。
设置 Shamir 备份时,你通常需要选择:
- 份额数量: 例如 3 份或 5 份。
- 门限: 恢复所需的份额数量,例如 2 份或 3 份。
有些实现还支持分组,例如“家庭组一份、个人组两份”,以满足更复杂的需求。
兼容性警告
SLIP-39 份额无法输入到只支持 BIP-39 的钱包中,而 BIP-39 正是大多数钱包用于 12 或 24 个单词助记词的标准。在依赖 Shamir 备份之前,请确认哪些钱包可以恢复它,并把这些信息与你的方案一起记录下来。
为什么不应该简单地把助记词一分为二
一种常见的自制做法是把第 1–12 个单词写在一张纸上,把第 13–24 个单词写在另一张纸上。这看似聪明,却有两个问题:
| 方式 | 如果其中一份被盗 | 如果其中一份丢失 |
|---|---|---|
| 一份完整的助记词 | 资金可能被盗走 | 如果钱包也出故障,资金就会丢失 |
| 一分为二的助记词 | 攻击者获知一半秘密,其余部分变得容易猜得多 | 如果钱包也出故障,资金就会丢失 |
| Shamir 三选二 | 攻击者得不到任何有用信息 | 用另外两份恢复 |
拆分助记词会让每一段对小偷都有价值,同时又让每一段都不可或缺。你会同时承受两种方式的缺点。如果你需要分散备份,请使用正规的方案。想进一步了解,请阅读钱包派生路径详解。
Shamir 备份与其他方案对比
| 方案 | 工作方式 | 主要优点 | 主要缺点 |
|---|---|---|---|
| 单份助记词 | 一组单词 | 简单,支持广泛 | 单点故障 |
| 助记词 + 密码短语 | 助记词再加一个秘密的额外单词 | 仅找到助记词还不够 | 忘记密码短语就意味着资金丢失 |
| Shamir 备份 | 带门限的份额 | 分散存放,能容忍份额丢失 | 需要支持 SLIP-39;要管理的东西更多 |
| 多签钱包 | 需要多把密钥签名 | 任何一把密钥都无法单独转移资金 | 设置和恢复更复杂 |
我们关于密码短语和用多签管理共同资金的指南介绍了这些替代方案。
如何安全地设置 Shamir 备份
- 1使用支持该功能的钱包,并从官方渠道下载或购买。
- 2选择合理的门限。 三选二是常见的起点:丢失一份仍能恢复,而单独一份被盗则毫无用处。
- 3手工仔细抄写每一份,标注份额编号和门限,并且绝不拍照。
- 4把份额存放在不同地点,例如你家中和另一个可信的地方。把所有份额放在同一个抽屉里就失去了意义。
- 5在向钱包大额存入资金之前,先用门限数量的份额测试恢复。
- 6把方案记录下来,让一位可信的人知道这个方案的存在、需要多少份额以及用哪种钱包恢复。请参阅我们关于加密资产继承规划的指南。
- 7考虑为每一份制作金属备份,以防火灾和水浸。
常见错误
- 把门限设成与份额总数相同,这样丢失一份就意味着失去一切。
- 把过多份额交给彼此认识、可能把份额凑在一起的人。
- 忘记这些份额使用的是哪种钱包标准。
- 从未测试过恢复。
- 把 Shamir 当成防范签名设备上恶意软件的手段;它并不是。
总结
Shamir 备份让你可以把钱包的恢复秘密分散到多个地点,这样丢失或被盗一份也不会让你损失资金。它比把助记词一分为二安全得多,但需要兼容的钱包和细致的记录。对于大多数自行保管 Bitcoin 或其他加密资产的人来说,一份妥善保存的单一备份就足够了;当金额和你的规划值得付出额外步骤时,Shamir 才更有意义。可以先从我们关于如何正确备份助记词的指南开始,打好基础。
常见问题
什么是 Shamir 备份?
Shamir 备份将钱包的恢复秘密拆分成若干份额,每一份都写成一组独立的单词。你可以自行设定恢复所需的份额数量,例如三份中任意两份。少于这个数量的份额不会泄露任何有用的秘密信息,因此单独一份丢失或被盗不会让你的资金面临风险。
我能不能直接把 24 个单词的助记词剪成两半?
不建议这样做。每一半仍会泄露你秘密的一部分,并大大减少攻击者猜出其余部分所需的工作量;而丢失任何一半都可能导致无法恢复。Shamir 备份和多签钱包正是为避免这两个问题而设计的。
Shamir 备份兼容所有钱包吗?
不。钱包中 Shamir 备份的常用标准 SLIP-39 与大多数钱包使用的 BIP-39 助记词不同。Shamir 份额只能在支持 SLIP-39 的钱包中恢复,因此请确认兼容性,并记下是哪种类型的钱包生成了这些份额。
Shamir 备份和多签是一回事吗?
不是。Shamir 备份是把一把密钥的备份拆分成多个份额,但恢复之后,钱包仍然只用一把密钥签名。多签则使用多把独立的密钥,每一把都必须为交易签名。多签可以防范单台设备被攻破,而 Shamir 主要保护的是备份的存放方式。
