ERC-3450:把助记词裁成 N 份合法词组,凑够 T 张才能复原 图 1
ERC-3450:把助记词裁成 N 份合法词组,凑够 T 张才能复原 · 图 1

ERC-3450:把助记词裁成 N 份卡片,凑够 T 张才能复原

一句十二个词的助记词是单点故障:丢了进不去,被人抄走钱就没了。分片保管的想法很自然,难的是标准化——今天用某个工具分出去的碎片,五年后还能不能凑回原句?ERC-3450 在 2021 年 3 月 29 日给出了一个算法级的答案:把 Shamir 秘密共享方案确定性地套在 BIP-39 助记词上。按 ercs 仓库记录,这份提案状态为 Stagnant,但它是理解各类“密钥分片备份”产品的必读文献。

先拆词表,还是先拆熵

这是整份提案最关键的工程决定,原文用一小节讲透。BIP-39 助记词并不是纯随机数据,它编码了两样东西:原始熵,加上一段从熵的 SHA256 哈希里取前几位算出的校验和,校验和保证你抄错的词组能被钱包当场发现。如果直接对整句助记词做 Shamir 分割,每个碎片还原出来的比特流都可能不满足校验规则,就不是合法的 BIP-39 词组。提案的做法分三步:先把目标助记词还原成底层熵,再对熵做 Shamir 分割,最后把每个碎片的值当作新熵重新生成词组、重新计算校验和。这样每张碎片卡都是一句能被任意 BIP-39 钱包验证的“真助记词”。数学上,分割按字节逐个进行,域取 GF(256),字节按 AES 使用的 Rijndael 不可约多项式解释。

ERC-3450:把助记词裁成 N 份合法词组,凑够 T 张才能复原 图 2
ERC-3450:把助记词裁成 N 份合法词组,凑够 T 张才能复原 · 图 2

约束条件与碎片格式

生成碎片要求三个输入:一句合法助记词、碎片总数 N、门槛数 T,且必须满足 T 大于 1、T 不超过 N、N 小于 256。每张碎片携带两样数据:一个取值在 1 到 255 之间的 ID,就是多项式上的 x 坐标;一段与原始助记词等长的 BIP-39 词组,就是曲线上对应的 y 值。少于 T 张碎片时,规范的说法是除长度之外不泄露原句的任何信息——这句话是整套方案的安全承诺,值得每个使用者拿去质询任何分片工具的实现。

恢复:拉格朗日插值与 f(0)

恢复过程反过来:取任意 T 张碎片,按各自的 ID 与词组还原出曲线上的点,用拉格朗日插值重建多项式,计算 f(0)——常数项正是原始熵,重新生成助记词即可。规范对每个字节实例独立插值,并把 x 坐标互不相同作为前提。原文特意用 HTML 上标写公式,也提示实现时注意转义,这类细节说明作者清楚文档会被机器消费。

它为什么重要,又为什么没赢

后来把助记词分片做成产品的是 SLIP-0039 一系,各厂商走的是另一条带校验词表的路,ERC-3450 因此停在 Stagnant。但“拆熵再分片、碎片必须是合法助记词”这个思路的价值不减:任何声称能把密钥拆成几份的钱包或钢板,都应回答三个问题——碎片本身能不能被独立验真、少于门槛时泄露什么、恢复算法有没有跨工具的确定性问题。普通用户拿这三问去筛工具,比听营销词踏实:分片保管的安全增益,全部建立在“任何一张碎片单独都是废话”这个数学事实之上。

选 N 与 T 是一道生活题

算法之外的取舍同样写在规范的字里行间。N 越大,单张碎片落入坏人之手的价值越低,但保管与协调成本随份数上升;T 越高,容忍丢失的能力越强,可凑齐 T 份的时间成本与单点灾难(比如同一次火灾同时烧掉多份)的暴露面也变高。原文给出的约束只有数学边界——T 大于 1、不超过 N、N 小于 256,怎么选是生活判断:常见思路是让门槛数大于你最可能同时失去的份数,再小于一半以上的总份数,把每张碎片放到物理上互相独立的地点与介质。还要补一句安全边界:分片防的是丢失与单点窃取,防不了所有碎片同时泄露,也不改变私钥算法本身的风险。碎片是备份策略,不是护身符,工具再标准化,最后考验的还是你把卡片分别锁进了哪几个抽屉。

本文为机制说明,不构成任何投资建议。