什么是 Shamir's Secret Sharing (SSS)?
Shamir's Secret Sharing (SSS) 是一种将秘密分成多份的方法,只有达到指定数量的份额才能将其恢复。单独一份毫无用处。可以把它想象成一个保险箱,只有当足够多的朋友带着各自的钥匙出现时才会打开,而不是由某个人单独打开。
有人认为 SSS 只是复制你的私钥。并非如此。使用 Shamir's Secret Sharing (SSS) 时,每个份额单独看毫无意义,只有达到特定阈值的份额才能恢复原始秘密。
Shamir's Secret Sharing (SSS) 的工作原理
设想你把一个 24 个单词的助记词拆成五份,任意三份即可重建。这是 Shamir's Secret Sharing (SSS) 的经典设置。
- Step 1: 你选择一个阈值,例如五选三。
- Step 2: 你的钱包把种子转换为数学上的点,这些点单看起来像随机数据。
- Step 3: 它生成五个份额,每个人或每个存放地点各得一份。
- Step 4: 之后,任意收集三份,钱包就能用它们重建秘密。
- Step 5: 少于三份即便公开也无法泄露任何信息。
没错,就是这个原理。
为什么 Shamir's Secret Sharing (SSS) 很重要
以下是人们关心它的原因,尤其在加密领域:
- 好处: 丢失一份也没关系,只要仍达阈值即可恢复,省时又省心。
- 视角: 单一私钥存储显得脆弱。它把风险分散到不同的人和地点,这与社区驱动的加密文化很契合。
- 相关应用: 你会在硬件钱包、DAO 财库运营和注重安全的托管方案中看到它。
将份额存放在不同类别的地方。一份交给可信的人,一份放在银行保管箱,一份放在家用防火保险箱。把阈值设得既能在某处失效时恢复,又足够高以阻止单独窃贼。
Shamir's Secret Sharing (SSS) 的主要特性
快速要点,适合在排队买咖啡时浏览:
- 阈值: 你决定需要多少份才能重建,例如五选三或七选四。
- 隐私: 单独一份不会泄露关于秘密的任何信息。
- 灵活性: 你可以为不同的人生成多份,而无需改变阈值。
- 离线: 可以在无网络的 air gapped 设备上完成。
- 独立性: 不需要改变区块链或特殊智能合约,因为它只是对你的秘密进行纯数学处理。
变体
同一思想,不同形式:
- VSS: 可验证的分割为份额增加了校验,你可以在不暴露秘密的情况下确认份额有效性。
- SLIP 39: 一种基于助记词的版本,专为钱包备份设计。
- 门限签名: 相关理念用于签名密钥,无需在单一地点重建完整密钥。
Shamir's Secret Sharing (SSS) 与多重签名并不相同。SSS 保护的是像种子或私钥这样的秘密。多重签名保护的是链上支出,需要多个密钥。两者可以同时使用,许多团队就是这样做的。
示例
某个 DAO 将其金库的种子分成七份,阈值为四,把每位董事会成员分到一份,把恢复权限锁在团队协作之后。
趣闻
Adi Shamir 还参与创建了 RSA。他在 1979 年提出了 SSS,远早于 seed phrases 在 Crypto Twitter 上流行。
总结
一句话:Shamir's Secret Sharing (SSS) 让你备份重要权限而不必把所有信任放在一个地方,就像把劳力士和 Reddit 讨论结合起来,但用于你的密钥。
