同一句助记词,四条曲线各自为政:SLIP-0010 如何让不同链的密钥互不相干 图 1
同一句助记词,四条曲线各自为政:SLIP-0010 如何让不同链的密钥互不相干 · 图 1

同一句十二词助记词,导进比特币钱包得出一批地址,导进以太坊钱包得出另一批,导进支持 Solana 的硬件钱包又是完全不相干的一批。很多用户第一次遇到这个现象时怀疑钱包软件出了错,其实这是写进规范的行为:BIP-32 只规定了 secp256k1 一条曲线上的派生,而钱包要面对的曲线远不止这一条。SLIP-0010 就是把层级派生推广到多条曲线的标准,状态为 Final。它回答两个问题:不同曲线的主密钥如何互不相关,以及为什么有些曲线的派生方式天生受限。

曲线名当盐:一份种子,长不出两棵可互推的树

标准的做法只有一行改动:生成主密钥时对种子做 HMAC-SHA512,哈希密钥用的是曲线名称字符串,而不是 BIP-32 固定的 Bitcoin seed。四条曲线各用各的值——secp256k1 仍用 Bitcoin seed(因此与 BIP-32 完全兼容),NIST P-256 用 Nist256p1 seed,ed25519 与 curve25519 各用同名加 seed 的字符串。改派生所用的哈希密钥,意味着同一份种子在不同曲线下算出的主私钥是彼此独立的输出,曲线上再没有对应关系可言。规范明确解释了这个设计的用意:不同曲线的群阶不同,用不同的盐可以刻意避免同一把私钥被挪用到另一条曲线上——那类跨曲线复用是密码学上公认的危险动作。派生路径层面再叠一层隔离:SLIP-0044 给每条链注册了币种编号(例如比特币是 0、以太坊是 60、Solana 是 501),路径里带撇号(‘)的层级走硬化派生,各链的树从根上就分岔,派生路径怎么读见 BIP-44 派生路径怎么读:为什么同一句助记词,导入后地址却不一样

ed25519 系曲线没有公钥派生:观察钱包这条路走不通

BIP-32 世界里一个常用工具是导出扩展公钥(xpub 一类),在不带私钥的服务器上扫地址、看余额,机制见 xpub、ypub、zpub 差的是前缀不是密钥:版本字节、派生意图与安全边界。SLIP-0010 在这点上给 ed25519 和 curve25519 判了死刑:这两条曲线上私钥不再是乘数而是字节串(签名时用的是私钥的哈希),规范的措辞是明确不支持公钥派生。后果很实际——在这类链上,“导出一份公开材料就能建观察钱包”的常规方案不成立,监控要么依赖链上索引服务,要么让持有种子的设备在线参与,二者的信任画像完全不同。这也是一部分用户宁可为比特币单独备观察钱包、为 ed25519 系链另找监控方案的原因:不是工具偷懒,是数学结构没给这条路留门。

对用户的三张清单

第一张是恢复演练清单:一份助记词恢复多链资产时,要按链分别核对地址与余额——同一句话在不同链上派生的是几套独立密钥,任何一条链上的漏账都不能拿另一条链的结果外推。第二张是备份安全清单:曲线隔离意味着单条链的私钥泄露不会直接波及另一条链,但种子本身是一切的主人,种子泄露则全部归零,保管动作不能因为”各链密钥不同”而放松。第三张是选型清单:评估多链钱包时值得问一句它如何派生非 secp256k1 链——按 SLIP-0010 加币种编号走的,换钱包后重导入能得到同样的地址;用自创方案(例如把种子另行处理再喂给曲线)的,将来迁工具时就要单独做恢复演练验证,口头承诺不算数。

顺带澄清两个常见误解

一是”同一种子等于同一把钥匙”:不成立,盐的存在正是为了让曲线之间互相推不出来。二是”标准派生所以地址全球唯一”:地址同时取决于曲线、路径、编码格式多个环节,链标识与地址格式的关系见 同一句助记词,三条链的地址为什么完全不同?币种段与地址格式,任何只凭助记词一致就断言账户必然一致的说法都跳过了这些环节。

本文讲解公开标准,不涉及任何投资建议;密钥操作请始终以设备与官方文档提示为准。