BIP39 由 Marek Palatinus 等人在 2013 年提出。它做了三件事:定义一张 2048 个单词的词表(英文、中文、日文等多语种各一张);规定熵 → 校验位 → 单词序列的算法;以及最后用 PBKDF2-HMAC-SHA512 拉伸 2048 次,得到 512 位种子的过程。这颗种子才是后续 BIP32 派生所有私钥的真正起点。

为什么这个词重要

BIP39 是事实上的"钱包互通标准"。MetaMask、Ledger、Trezor、Keystone、imToken、Phantom——只要它声称兼容 BIP39,就意味着把 12/24 个词导进去能恢复出同一组地址。这给了用户一个非常重要的逃生通道:钱包品牌跑路、设备坏了、应用下架,都不影响你换一家继续用。

但"兼容 BIP39"不等于"地址完全一样"。地址还取决于 BIP44 的派生路径,以及是否使用了 Passphrase。我在做六款钱包互导实测时遇到过 imToken 的 ETH 地址默认走另一条路径,导入 MetaMask 时要手动切换 derivation path 才能看到资产。

常见误解

  • "BIP39 单词就是私钥"——不是。它是熵的编码外壳,私钥还要再经过 PBKDF2 拉伸出种子、再经过 BIP32 派生才能得到。
  • "我自己挑 12 个英文单词更好记"——会让熵几乎归零,而且不满足校验位约束,多数钱包导入时会直接报错。必须用钱包随机生成的那一组。

延伸阅读