Zelcore
Z
Zelcore TeamMulti-Asset Crypto Wallet & Web3 Ecosystem

多链托管难题——一个助记词,多条账本

阅读约 11 分钟
多链托管难题——一个助记词,多条账本

您只备份一张纸——上面写着 12 或 24 个词——便放心离开,以为自己的加密资产已经安全。但这张纸保护的并非某一个账户,而是钱包支持的所有区块链上的每一个账户。在 Zelcore 中,这意味着同时保护 80 多条链。准确理解其中的原因,以及这对您的托管决策意味着什么,是掌握自托管安全的基础。

助记词如何编码出庞大的密钥体系

助记词看起来像一组随机词语,实际上是对原始熵的精确编码。BIP-39 是将这一格式标准化的比特币改进提案,它规定词表恰好包含 2,048 个英文单词。每个词编码 11 位信息,因此没有哪个词是装饰:助记词中的每个词都承载着特定数据。12 个词的助记词编码 128 位熵;24 个词的助记词编码 256 位熵。

助记词本身并不是加密种子。在派生任何密钥之前,钱包会通过 PBKDF2-HMAC-SHA512(一种计算开销较高的密钥拉伸函数)处理助记词,迭代 2,048 次。输出是一个 512 位二进制值,也就是实际的种子。即使攻击者猜中了部分词语,这种拉伸也会让暴力破解难以实施。

有一点至关重要:如果您添加可选的密码短语(有时称为第 25 个词),PBKDF2 函数会将其纳入计算,从而生成完全不同的 512 位种子。相同的 12 个词搭配不同的密码短语,会解锁完全独立的钱包。两者毫无关联;如果您忘记密码短语,相应资金将永久无法找回。

派生树:一个种子,无限账户

512 位种子是分层确定性(HD)钱包树的根,该结构由 BIP-32 定义。钱包将种子的字节输入 HMAC-SHA512(以字面字符串 "Bitcoin seed" 作为密钥),再将 512 位输出等分为两部分:一个 256 位的主私钥和一个 256 位的主链码。钱包中的每个子密钥、孙密钥和地址,都是通过反复执行 HMAC-SHA512 运算从这两个值派生出来的。

BIP-44 规范了如何遍历这棵树,并定义了格式为 m/purpose'/coin_type'/account'/change/index 的派生路径。每个路径段都有特定作用:

撇号表示强化派生——这是一种单向运算,从数学上确保即使子密钥遭到泄露,也无法据此派生出同级密钥或父密钥。因此,尽管您的 Ethereum 账户密钥和 Bitcoin 账户密钥都源自同一个主密钥,前者也不会泄露后者。

在 Zelcore 中,一个助记词可同时控制 BTC、ETH、SOL、ADA 及数十种其他资产;每种资产都位于自己的 coin_type 子树中,并由同一个 512 位根种子确定性地派生而来。

攻击原理:一处失守,所有链都面临风险

由于派生过程具有确定性且经过标准化,任何持有您助记词的人,都能重新生成所有受支持区块链上的每个私钥。这不是设计缺陷,而正是设计本身。该安全模型的前提是助记词绝不会被他人看到。

实际后果十分严重。助记词一旦泄露,暴露的不只是您的 Bitcoin。攻击者可以派生出您的 Ethereum 地址、Solana 地址、Cardano 地址,以及您在其他链上的所有资产。只要有人拍下您的 Bitcoin 助记词,您的 Solana 资产就已面临风险。对方甚至可能不知道您持有 SOL。

丢失助记词则会带来相反的问题:没有按链区分的备用方案,没有账户恢复机制,也没有联系客服升级处理的途径。生成种子的熵在数学上不可逆。丢了这张纸,就会同时失去所有链的访问权限。

因此,硬件钱包会在安全元件内生成助记词,绝不将其暴露给已连接的计算机。种子在离线状态下生成,并始终保存在设备中。

助记词无法保留的链特定元数据

使用助记词恢复钱包,可以重新生成私钥和标准派生路径,但无法保留所有信息。以下几类数据无法通过种子重建:

实际建议是:除了助记词,也记录您使用的钱包软件和派生路径。几个月或几年后需要恢复钱包时,仅凭助记词未必能提供足够的信息。

地址复用与跨链身份

BIP-44 的 coin_type 分段意味着,从同一个种子派生出的 Bitcoin 地址和 Ethereum 地址在数学上互不相关——它们共享同一个根,但公钥不同。不过,兼容 EVM 的区块链——Ethereum、BNB Chain、Polygon、Avalanche C-Chain、Base 等——都共享 coin_type = 60。因此,同一个 0x... 地址会出现在每条 EVM 链上。

这是有意为之,但也会在不同链之间建立身份关联。知道您的 Ethereum 地址的人,可以用同一地址查询您在每条 EVM 链上的活动。注重隐私的用户在整合资产前,应了解这一点。

Bitcoin 的 UTXO 模型通常鼓励每笔交易都生成新地址,HD 钱包会自动完成这一操作。Ethereum 的账户模型则很少更换地址;大多数用户会长期为每个账户保留一个地址。在多笔交易中重复使用同一个 Bitcoin 地址,会让输入更容易关联到同一所有者,从而削弱隐私保护。

对于高价值资产托管,可以考虑按种子隔离资产:为高风险交易活动和长期持有分别使用不同的助记词;或者使用从未接触过联网设备的隔离设备来存放大额资产。

如何保护自己:守住单点故障

助记词既是您最强大的恢复工具,也是最危险的单点故障。以下是具体的保护措施:

  1. 写在金属上,不要写在纸上。 不锈钢或钛制备份板可以经受火灾和洪水。纸张则不行。
  2. 绝不将其数字化。 不要截图、保存在云端笔记中、存入密码管理器,也不要打字记录。助记词一旦接触联网设备,攻击面就会显著扩大。
  3. 存入大量资金前,先验证能否恢复。 仅使用助记词在一台新设备上恢复,确认助记词有效,并能生成您预期的地址。
  4. 考虑使用 Shamir 秘密共享(SLIP-39)。 SLIP-39 是一种将种子拆分为 N 份,并且只需 M 份即可重建种子的标准。这样可以将份额分散存放在不同地点——例如一份放在家中的保险箱,一份交给可信赖的人保管,一份存入银行保险库——而任何一个地点都不会持有完整的秘密。
  5. 了解密码短语的利弊。 设置强密码短语(第 25 个词)可以提供合理否认的空间:不带密码短语的钱包中只存放少量诱饵资产,真正的持仓则只有输入密码短语才能访问。风险是对等的——忘记密码短语和丢失助记词一样,后果都无法挽回。

对于在 Zelcore 中持有多条链上资产的加密货币钱包用户,最后一点尤其重要:恢复测试应涵盖您实际使用的所有区块链,而不只是最显而易见的一条。

要点总结


延伸阅读

“私钥不在您手中,币就不属于您”——交易所实际持有什么

“私钥不在您手中,币就不属于您”——交易所实际持有什么

通过 FTX 和 Mt. Gox 的真实失败案例,解析交易所中的欠条式余额与真正的链上所有权有何区别,并说明“托管”在实践中意味着什么。

阅读约 8 分钟
助记词:通往每个账户的主密钥

助记词详解:工作原理、存储方法以及无法恢复的内容

助记词完整指南:了解 BIP-39 如何对助记词进行编码,BIP-32/44 如何为每条区块链派生所有密钥,如何安全存储助记词,它们能恢复和不能恢复哪些内容,以及仅在恢复时才会出现的故障情况。

阅读约 17 分钟
第 25 个词:口令如何增加第二层保护

第 25 个词:口令如何增加第二层保护

了解 BIP-39 口令如何创建一个完全独立的隐藏钱包,为什么它能最有效地防范助记词被窃,以及可能导致严重后果的失误情形,并了解何时值得承担这一风险。

阅读约 10 分钟

订阅我们的新闻通讯

我们每月为您发送一次简讯。没有垃圾邮件,只有 Zelcore 的最新动态。

订阅我们的新闻通讯