术语表 /钱包与托管
Shamir 备份
又称 SLIP39、Shamir 秘密共享、Shamir 助记词备份。
- Shamir 备份是什么?
- Shamir 备份将一个钱包密钥拆分为多份助记词列表,并要求凑齐任意指定数量的列表才能重建,因此仅凭一张纸无法恢复钱包。
其数学原理源自 Adi Shamir 于1979年发表的秘密共享论文,比特币上的实现是 SatoshiLabs 发布的 SLIP-39。三取二的配置会生成三份各含20个单词的列表,任意两份即可恢复钱包,而任意一份单独存在时不会泄露任何信息。它用同一份备份同时应对被盗和丢失,这是单一助记词做不到的。
运作方式
门限共享不是加密,也不是把助记词切成几段。秘密被视为一个多项式曲线上的点,该多项式的次数比门限值少一,每一份分片则是这条曲线上的另一个点。两个点确定一条直线,三个点确定一条抛物线,依此类推,因此凑齐门限数量的分片就能重建曲线并读出原始数值。低于门限时完全没有任何部分信息:在三取二方案中,只拿到一份分片,每一个可能的秘密出现的概率与之前完全相同,这比“计算上困难”是更强的保证。
SLIP-39把这一思路封装为适合手写的格式。其词表包含1,024个单词,而 BIP-39为2,048个,每个单词长四至八个字母,且前四个字母即可唯一确定。对于128位的主密钥,一份分片为20个单词;对于256位的主密钥,则为33个单词,每个单词承载10位,另有标识符、门限和校验和数据,使钱包知道某份分片属于哪个分组。该方案支持两个层级:最多16个分组,每组最多16份分片,分组之间和组内都可以设置门限。
是否适合您,取决于两个限制。重建过程在某一台设备上的某一个时刻完成,因此无论分片分发得多么谨慎,该设备和该时刻都是单一的被攻破点。此外,SLIP-39与 BIP-39不能互换:现有的12个或24个单词的助记词无法转换为分片,分片也不能输入只识别助记词的钱包。
在哪里会遇到它
Trezor 于2019年8月在 Model T 的固件2.1.3中推出了 Shamir 备份,同年10月在2.1.6中加入了多分组的"super Shamir",其当前的 Safe 系列设备延续了这一功能。其他产品的支持很有限,这是反对它的最有力的实际理由:您的备份只能在单一厂商的硬件上恢复,或通过开源的 python-shamir-mnemonic 参考实现恢复,别处都不行。计划做长达十年备份的人,应将这一点与所有钱包都能读取的 BIP-39相比较。
它真正发挥作用的场景是地理分散和社会分担。分别存放在三座城市的分片可以在房屋失火时幸存,而任何单一地点都不足以让窃贼得手。在家人和一名律师之间分配的五取三方案,为遗产提供了可行的途径,同时在您在世期间不会让任何人单方面掌握控制权。这两种情况都需要至少演练一次恢复流程,因为门限方案的失效是悄无声息的:只有在您试图使用一份已损坏的分片时才会发现问题。
如果您喜欢这一思路的形式,但希望获得更广泛的工具支持,codex32 是另一个值得了解的选择。它被规定为 BIP-93,定义了一种分片格式,其校验和可以在纸上手工验证,无需使用计算机。
Shamir 备份 vs 多重签名
Shamir 拆分的是一个秘密;多重签名使用的是若干个真正相互独立的密钥。正是这一差别决定了其余的一切。Shamir 分片必须汇集到一台设备上才能花费,因此攻击者只要抓住这一时刻就能拿走全部资产,而多重签名的签名在不同设备上产生,密钥从不会汇合。多重签名在链上可见,链上交易手续费更高,并且需要把钱包描述符与种子一同备份。Shamir 对任何人都不可见,花费时不增加费用,也不增加链上的复杂性。对于继承和防火灾,Shamir 更简单。对于防范被攻破的设备或某一位不诚实的参与者,真正有帮助的是多重签名。