
拆分助记词还是多签:Shamir、SLIP-39 与 SSKR 对比
“需要好几份才能动用资金”这句话,描述的其实是两种截然不同的方案。一种是拆分助记词:用 Shamir 秘密共享,或基于它的标准(如 SLIP-39、SSKR),把同一个秘密切分成若干份额。另一种是多签:多把相互独立的密钥,签名数量不够时,区块链本身就会拒绝转移资金。
两者都在分散风险,但防范的对象不同。把它们混为一谈,往往会得到一个看上去安全、实际上更脆弱的方案。
Shamir 秘密共享如何运作
Shamir 秘密共享由阿迪·沙米尔于 1979 年提出。它把一个秘密分成 n 份,任意 t 份都能还原它,而少于 t 份则不会泄露任何信息。在“三选二”的拆分中,任意两份即可恢复秘密,而单独一份对攻击者来说毫无价值,确实是零信息。
两个常见的钱包标准建立在它之上:
- SLIP-39 由 SatoshiLabs 制定,把每一份编码为 20 或 33 个单词的短语,并支持分组(例如“我的三份中任意两份,或者家人一份加律师一份”)。Trezor 的 Shamir 备份就采用它。
- SSKR(分片秘密密钥重建)由 Blockchain Commons 制定,用自己的编码完成同样的工作,被一些离线签名设备采用。
SLIP-39 份额不能与普通的 BIP-39 助记词互换。支持 SLIP-39 的钱包通常无法把已有的 24 词助记词转换成份额;备份必须从一开始就以这种方式创建。
关键问题:签名时密钥会重新合在一起
Shamir 是一种备份技术。份额在秘密被存放期间保护它。但单独一份无法签署任何东西。要花费资金,就必须把份额合并,在一台设备上把完整密钥重建出来。
这意味着在签名的那一刻,用 Shamir 备份的钱包就是一个单密钥钱包。如果这台设备已被入侵,或者重建密钥的人受到胁迫,拆分就毫无帮助。很多时候,密钥只重建一次,之后就一直存放在一台硬件钱包里。
多签的思路正好相反。每个签名者都有自己单独生成的密钥,这些密钥从不碰面。每把密钥在各自的设备上签名,由区块链检查有效签名是否足够。不存在任何一台设备掌握全部密钥的时刻。MPC 钱包与多签介绍了第三种做法:用密码学拆分密钥,而不是由链上规则来约束。
不要把 24 个单词切成三段
一种诱人的自制方法,是把前八个单词写在一张卡片上,中间八个写在第二张,最后八个写在第三张。这不是 Shamir,而且有两个问题。
第一,它不是门限方案。三段缺一不可,丢掉任何一张卡片,钱包就没了。
第二,每一段都会泄露一部分秘密。每个 BIP-39 单词携带 11 位;24 词助记词包含 256 位随机数,外加 8 位校验和。一张八个单词的卡片会暴露这 256 位中的 88 位。拿到一张卡片的人还要猜 168 位,目前仍然无法做到;但拿到两张卡片的人只剩 80 位要猜,远低于助记词设计时的安全余量。如果是 12 词助记词(128 位),三段各四个单词,其中两段落入他人之手后只剩 40 位,用普通硬件就能暴力破解。
真正的 Shamir 方案中,低于门限的份额不会泄露任何信息;而切开的助记词,每多一段都让攻击者更轻松。如果要拆分助记词,请使用正规标准;助记词最佳实践介绍了更常见的做法,例如金属备份和分地存放。
取舍:可见性与链
两种方式各有实实在在的优势:
- 链上痕迹。 Shamir 在链上不可见:钱包在任何链上看起来、用起来都和普通单密钥钱包一样。多签则是可见的——比特币多签在花费时会暴露其脚本,而在基于账户的链上,金库是一个任何人都能查看的智能合约或程序。
- 链的支持。 Shamir 只涉及备份,因此适用于你的钱包支持的任何链。多签则与具体的链相关:比特币用脚本,以太坊虚拟机兼容链用智能合约账户,Solana 用链上程序,各自有不同的手续费和限制。
- 保护的对象。 Shamir 保护备份免于丢失和被盗。多签保护每一笔交易,因为没有任何一台设备能单独签名。
两者并不互斥,关键在于清楚每一种分别应对哪种风险。
SSP 的定位
SSP 是二对二多签。浏览器扩展 SSP Wallet 和手机应用 SSP Key 各自生成自己的 24 词恢复短语。在比特币这类未花费输出模型的链上,金库地址由一个二对二多签脚本生成,其中包含双方各一把公钥,每笔交易都需要两个签名。两把密钥从不在同一台设备上合并。
SSP 没有实现 Shamir、SLIP-39 或 SSKR。你需要备份两份普通的 24 词助记词,从零恢复金库时两份都要用到,因此两份备份同等重要。二对二、三选二与 M-of-N 对比解释了其中的取舍,继承与紧急访问则说明如何确保在需要时其他人也能恢复资金。
坦诚总结
拆分助记词和使用多签都需要好几份,但作用于不同的时刻。基于 Shamir 的标准(如 SLIP-39 和 SSKR)保护的是备份:低于门限的份额不泄露任何信息,钱包在链上不可见,也不依赖特定的链。但签名时完整密钥会被重建,签名环节仍然存在单点故障。多签让彼此独立、从不碰面的密钥分别签名,由链来执行规则,代价是链上可见,且与具体的链绑定。
不要手动把助记词切成几段:每一段都不可或缺,而每一段都会泄露秘密的若干位。SSP 采用二对二多签,使用两份独立的 24 词助记词,不提供助记词拆分功能——所以请妥善保管好两份备份。


