派生 BIP39 seed 时,助记词是 PBKDF2-HMAC-SHA512 的输入,而 mnemonic 与 passphrase 拼接后构成盐值。它既不是设备 PIN,也不是词表中额外的必需单词;未使用 passphrase 时采用空字符串。
助记词和盐值 mnemonic + passphrase 均以 UTF-8 编码并进行 NFKD 规范化。PBKDF2-HMAC-SHA512 执行 2048 次迭代,返回 512 位、即 64 字节的 seed。输出长度不意味着原始秘密随机性有 512 位。 [BIP39 — Mnemonic generation and seed conversion]
大小写和空格可能改变结果。同时,不同 Unicode 写法经过 NFKD 后可能形成相同输入,例如 é 与 e 后接组合尖音符。因此,说每一种不同写法都必然产生不同钱包并不准确。 [BIP39 — Mnemonic generation and seed conversion]
BIP39 没有 passphrase 的 checksum。拼写错误可能派生有效 seed,并显示另一个通常为空的钱包;这不意味着原有资金被删除。应用可以要求重复输入或比对已知数据。仅用于解锁设备的 PIN 不能替代 passphrase。 [BIP39 — Mnemonic generation and seed conversion] [Trezor — What is a passphrase]
攻击者持有助记词备份后,可以离线尝试 passphrase 候选值,并将派生数据与已知钱包比较。足够不可预测且未泄露的 passphrase 可以增加攻击难度。短引文、重复使用的密码或仅靠 2048 次迭代都不能保证保护。 [BIP39 — Mnemonic generation and seed conversion]
如果更改 passphrase 派生出另一个 seed,也不会改变现有输出的签名条件。因此,迁移到新钱包需要实际交易。同样,余额为空本身不能证明丢失:应先核对输入和恢复参数。 [Trezor — What is a passphrase] [BIP380 — Output Script Descriptors]
安全备份 passphrase,并通过可信流程验证恢复。将它与单词分开存放可减少共同泄露,但必须允许授权恢复和继承。强 passphrase 遗忘且没有备份时,可能无法找回。除单词和 passphrase 外,还可能需要派生路径和脚本描述;Output Descriptor 有助于保存这些信息。 [Trezor — What is a passphrase] [BIP380 — Output Script Descriptors]
另一个 passphrase 可用于独立钱包或诱饵钱包。但这不能保证攻击者会相信展示的余额,也不会消除付款和备份痕迹。钱包隔离、抵抗猜测和胁迫下的安全是不同属性。 [BIP39 — Mnemonic generation and seed conversion]
字母大小写可能改变钱包
相同助记词配合 passphrase“alpha”和“Alpha”,按 BIP 39 会派生出不同种子。这些只是简短示例,不是安全口令。规范没有 passphrase 校验和;输入错误可能打开另一个通常为空的钱包。应用程序可以自行增加检查。
要获得更完整的理解,请将本词条与以下词条结合阅读: BIP 39, PBKDF2, BIP39 checksum, 自主托管. 反向关联还来自: Seed Phrase, BIP 39, Cold Storage, BIP85.
01passphrase 与助记词或 PIN 相同吗?+
不同。助记词和可选 passphrase 是 BIP 39 种子派生的两个输入,都使用 NFKD 规范化。如果使用过 passphrase,仅有助记词不够。设备 PIN 不能替代它。完整恢复还可能需要派生路径和脚本信息。
02passphrase 能保护已经泄露的助记词吗?+
足够不可预测且未随助记词一同泄露的 passphrase,可以增加派生正确种子的难度。但持有助记词的攻击者仍可离线尝试候选值;短小或可预测的 passphrase 不是可靠保护。强 passphrase 丢失且没有备份,可能导致访问权无法恢复。