488 / 736BIP39-P

BIP39 passphrase

恢复词之外的另一份秘密

在同一组恢复词上添加 passphrase,就可以使用另一个钱包。这样能保护什么?为什么输错字符会打开一个空钱包?又该怎样避免给恢复带来麻烦?

BIP39 passphrase 是一段可选的秘密文本,钱包会将它与恢复词,也就是 Seed Phrase,一起使用。两者共同决定你能访问哪些密钥。如果使用过 passphrase,恢复时也需要它,设备的 PIN 不能替代。它提供了额外的保护,但也多了一样可能丢失的东西;使用 Bitcoin 并不要求一定设置它。

假设你创建了一个没有 passphrase 的钱包,并保存了恢复词。仅凭这些词,就足以派生出相同的一组密钥。输入 passphrase 后,钱包会根据这两项输入计算出另一个用于生成密钥的基础,称为 seed。这样访问的是另一个钱包,并不是给原来的钱包再加一把锁。PIN 通常用于解锁设备,而 passphrase 参与决定密钥本身。有人称它为“第 25 个词”,但它不必是一个词,也不必出自 BIP39 词表。 [1] [2]

登录普通账户时,输错通常会收到“密码错误”的提示。但在这里,同样的错误可能打开另一个通常没有余额的钱包,因为 BIP39 没有用于 passphrase 的校验和。原来的比特币并没有因此被删除。先核对备份、输入的准确内容、所选账户和恢复设置。大小写和空格也有区别。不过存在一个技术例外:某些 Unicode 写法,例如 é 和字母 e 后接组合重音符,经过 NFKD 规范化后会变得相同。实际使用时仍应保存准确写法,不要只凭字符看起来相似来判断。应用也可能提供自己的确认或检查功能。 [1] [2]

如果别人拿到了你的恢复词,足够不可预测的 passphrase 可以使他更难进入正确的钱包。但它必须保持秘密,也不能容易猜中。生日、名言或在其他地方用过的密码,都不是好的选择。掌握恢复词的攻击者可以离线猜测,也就是在自己的计算机上尝试,不必询问你的设备。设备的 PIN 和尝试次数限制挡不住这种攻击。如果你还不熟悉普通备份和恢复,应该先掌握这些基本操作。安排得更复杂,并不意味着自动变得更安全。 [1] [2]

开始输入新的 passphrase 后,原钱包的资金仍由原来的密钥控制。要迁移,必须先确认新钱包及其恢复流程正常,再真正把比特币发送过去。从没有 passphrase 的钱包迁移时也是如此。不要将它与修改 PIN 混淆:改变设备的解锁方式,本身不会生成一套新的比特币密钥。 [2] [3]

安全地记录 passphrase 的准确内容,并考虑在合理需要时谁能找到它。与恢复词分开存放,可以降低两部分同时泄露的风险,但也不能妨碍自己恢复或继承安排。一段足够强、却忘记且没有备份的 passphrase,可能再也找不回来。在存入较大金额前,按该钱包可信的操作流程测试恢复。还应保存必要设置,例如地址类型,以及告诉钱包去哪里寻找账户的派生路径。Output Descriptor 是这些规则的机器可读描述;在支持它的钱包中,它可能是备份的重要部分。但它不能代替丢失的 passphrase。 [2] [3]

不同的 passphrase 可以对应不同的钱包,因此有人还会保留一个余额较少的诱饵钱包。但无法保证攻击者会相信你已经展示了全部资产。付款记录、备份或其他痕迹,都可能暴露还有别的资金。防止密码被猜中,与面对人身胁迫时的安全,是两回事。 [1]

使用钱包不需要你手动完成下面的计算。BIP39 将恢复词作为 password 输入交给 PBKDF2-HMAC-SHA512。另一个输入称为 salt,形式为 "mnemonic" + passphrase。这里的 salt 是一个附加输入的技术名称,并不是另一项需要你自行编造或备份的秘密。恢复词不会被附加到这个输入里。两个文本输入都经过 NFKD 规范化和 UTF-8 编码。经过 2048 次迭代,得到长度为 512 位、即 64 字节的 seed。没有 passphrase 时,这段短语为空,但 salt 仍包含 "mnemonic"。较长的结果或重复计算,并不会把容易猜中的 passphrase 变成强秘密。 [1]

示例 · BIP39-P

字母大小写可能改变钱包

相同助记词配合 passphrase“alpha”和“Alpha”,按 BIP 39 会派生出不同种子。这些只是简短示例,不是安全口令。规范没有 passphrase 校验和;输入错误可能打开另一个通常为空的钱包。应用程序可以自行增加检查。

要获得更完整的理解,请将本词条与以下词条结合阅读: BIP 39, PBKDF2, BIP39 checksum, 自主托管. 反向关联还来自: Seed Phrase, BIP 39, Cold Storage, Gap Limit.

01Passphrase 和恢复词或 PIN 是一回事吗?

不是。BIP 39 将恢复词与可选的 passphrase 一起使用。如果设置过 passphrase,仅有恢复词不足以访问原来的钱包,PIN 也不能替代它。恢复时还可能需要其他信息,例如地址类型,以及告诉钱包去哪里寻找账户的派生路径。

02passphrase 能保护已经泄露的助记词吗?

足够不可预测且未随助记词一同泄露的 passphrase,可以增加派生正确种子的难度。但持有助记词的攻击者仍可离线尝试候选值;短小或可预测的 passphrase 不是可靠保护。强 passphrase 丢失且没有备份,可能导致访问权无法恢复。

DOC · 001BIP39 — Mnemonic generation and seed conversion规范 DOC · 002Trezor — What is a passphrase文档 DOC · 003BIP380 — Output Script Descriptors规范
修订日期: 来源优先 · 非投资建议