跳转到主要内容

BIP-39 密码短语(第25个词):高级钱包安全

BIP-39 密码短语(passphrase)通常被称为“第25个词”,它是加密货币钱包中最强大但也最容易被误解的安全功能之一。它会在种子派生过程中加入一段由用户选择的字符串,使同一组助记词生成完全不同的一组密钥和地址。正确使用时,它可在助记词泄露场景下提供纵深防御;使用不当时,则可能导致资金永久丢失。

本指南将准确说明密码短语的工作原理、何时使用、会引入哪些风险,以及如何安全实施。

密码短语如何工作

技术机制

BIP-39 标准 所述,种子派生过程使用 PBKDF2-HMAC-SHA512:

Seed = PBKDF2(
password = mnemonic_words,
salt = "mnemonic" + passphrase,
iterations = 2048,
key_length = 512 bits
)

当未设置密码短语时,salt 仅为字符串 "mnemonic"。当提供密码短语时,它会被拼接到 salt:"mnemonic" + "YourPassphrase"。由于 salt 不同,PBKDF2 输出会完全不同,从而生成完全不同的主密钥,进而得到完全不同的派生路径、私钥、公钥与地址。

关键特性

任何密码短语都有效。 密码短语没有校验和或验证机制。任何字符串(包括空字符串、单个字符或 500 字符的句子)都会生成一个有效钱包。输入错误密码短语不会报错;它只会静默打开另一个(通常为空的)钱包。

同一助记词,不同钱包。 24 词助记词配合密码短语 "alpha" 生成的钱包,与同一助记词配合 "bravo" 生成的钱包完全不同。攻击者无法检测这两个钱包之间的任何密码学关系。

大小写与编码都重要。 "MyPassphrase""mypassphrase" 会生成不同钱包。带尾随空格的密码短语与不带空格的也不同。密码短语在哈希前会做 UTF-8 NFKD 归一化,但除此之外必须精确字符匹配。

为什么要使用密码短语

防止助记词被盗

如果攻击者窃取了你的 24 词助记词(来自纸质备份、金属板或被攻陷设备),他们可以访问钱包中的全部资金,除非你设置了密码短语。没有密码短语时,他们只能看到“基础”钱包(由空密码短语派生)。你真正的资金位于受密码短语保护的钱包中,仍无法被访问。

这会将你的安全模型从单因子(你持有的东西:助记词)升级为双因子(你持有的东西:助记词 + 你知道的东西:密码短语)。

合理否认(Plausible Deniability)

由于每个密码短语都会生成有效钱包,你可以基于同一助记词维护多个钱包:

  • 无密码短语:放少量资金的诱饵钱包。
  • 密码短语 "alpha":存放主要资产的主钱包。
  • 密码短语 "bravo":用于额外防护的次级钱包。

如果你被胁迫交出助记词(所谓“$5 扳手攻击”),你可以只提供助记词而不提供密码短语。攻击者会看到一个真实且有少量资金的钱包,但无法知道是否还存在其他受密码短语保护的钱包,可能会满足于他们看到的内容。

这通常被称为“胁迫钱包”或“隐藏钱包”策略。

防止硬件被攻陷

如果硬件钱包存在供应链漏洞(例如随机数发生器后门),攻击者可能已知设备生成的助记词。若用户选择的密码短语从未在硬件钱包中输入或生成,就会增加攻击者未知的熵。

如何设置密码短语

硬件钱包

大多数主流硬件钱包都支持 BIP-39 密码短语:

Ledger:

  1. 在 Ledger Live 中进入 Settings。
  2. 在 Advanced settings 下启用 “Passphrase”。
  3. 有两种模式:“Attached to PIN”(为方便在设备上保存哈希)和 “Temporary”(每次都需输入)。
  4. 选择并确认你的密码短语。

Trezor:

  1. 在 Trezor Suite 中启用密码短语功能。
  2. 每次连接时,Trezor 都会提示输入密码短语。
  3. 你可以输入任意密码短语,不会保存确认信息。

Coldcard:

  1. 在菜单中进入 Passphrase。
  2. 在设备上输入密码短语。
  3. Coldcard 会显示派生出的首个地址,请核对是否符合预期。

软件钱包

支持 BIP-39 密码短语的软件钱包通常会在初始设置或导入助记词时提供选项。请在设置流程中查找 “Advanced options”、“Optional passphrase” 或 “25th word”。

选择高强度密码短语

如果助记词泄露,密码短语应具有足够熵来抵御暴力破解:

密码短语类型近似熵暴力破解所需时间(ASIC)
常见英文单词~10 bits几秒
随机 4 词短语~50 bits数年
随机 6 词短语~75 bits数百万年
20+ 随机字符~120+ bits直到宇宙热寂

建议:

  • 至少使用 4-6 个随机词,或 16+ 个随机字符。
  • 不要使用个人信息(姓名、生日、常见短语)。
  • 不要使用单个词典词。
  • 考虑使用密码短语生成器(如 diceware),而非自行编造。

密码短语备份策略

密码短语现在是恢复机密的一部分。如果你丢失助记词或密码短语中的任意一个,就会失去资金访问权。这带来了备份挑战:你需要同时保存二者,但把二者放在一起又会失去安全意义。

策略 1:分离存储位置

  • 将助记词存放在地点 A(例如家中的防火保险箱)。
  • 将密码短语存放在地点 B(例如银行保管箱)。
  • 攻击者必须同时攻破两个地点。

策略 2:记忆 + 实体备份

  • 记住密码短语。
  • 将密码短语的加密备份保存在与助记词不同的位置。
  • 若你失去行为能力,加密备份可确保继承人恢复资金。

策略 3:对密码短语使用 Shamir's Secret Sharing

  • 使用 Shamir's Secret Sharing 将密码短语拆分为多个份额。
  • 将份额分发给多个可信方。
  • 需要 M-of-N 份额才能重构。

不要这样做

  • 不要把密码短语和助记词放在一起。 这会完全消除安全收益。
  • 不要只依赖记忆。 尤其在多年或数十年后,记忆并不可靠。
  • 不要使用你无法稳定复现的密码短语。 大小写、空白与精确字符都很关键。
  • 不要将密码短语存入同时也保存助记词的密码管理器。

风险与陷阱

风险 1:忘记密码短语导致永久丢币

这是使用密码短语的最大风险。不同于带校验和的助记词,密码短语没有机制验证“是否正确”。若你忘记它、哪怕记错一个字符,或引入隐藏字符(尾随空格、错误 Unicode 归一化),你都会打开另一个空钱包,资金将永久不可访问。

缓解措施: 在转入资金前充分测试密码短语。先完成钱包设置,核对首个收款地址,转入小额资金,再在另一台设备用“助记词 + 密码短语”恢复,并确认可访问资金。

风险 2:输入密码短语时被键盘记录

密码短语总要在某个时刻输入钱包。在软件钱包中,这意味着在电脑上输入,可能被键盘记录器或屏幕录制工具窃取。在支持设备端输入的硬件钱包(Coldcard、Trezor)上,密码短语在设备屏幕输入,安全性显著更高。

缓解措施: 仅在支持设备端输入的硬件钱包上输入密码短语,或在隔离网络的电脑上输入。

风险 3:继承复杂性上升

使用密码短语会增加继承规划复杂度。你的继承人需要:

  1. 助记词。
  2. 密码短语。
  3. 知道密码短语存在且必须使用。
  4. 如何使用它的说明。

如果缺少任何一项,继承都会失败。请参考我们的助记词指南,其中包含考虑密码短语的继承规划策略。

风险 4:错误的安全感

弱密码短语(单个常见词、生日、宠物名)在攻击者已获得助记词时可被暴力破解。攻击者拥有助记词和 GPU 集群后,可以针对已知 PBKDF2 函数测试数十亿个候选密码短语。请使用高强度、随机生成的密码短语。

风险 5:设置时输入错误(拼写错误)

如果你设置钱包时密码短语有未注意到的拼写错误,钱包仍会正常工作,你也能正常收款与转账。但下次你用助记词恢复并输入“无错版本”(或另一种错误)时,会得到不同钱包。你的资金就被“困”在那个错误拼写后面了。

缓解措施: 设置完成后,立即在另一台设备上用“助记词 + 密码短语”恢复钱包,验证出现的是完全相同的地址。

“第25个词”的误解

“第25个词”这个说法是简化表达,可能会误导:

  • 密码短语不局限于 BIP-39 词表词汇。它可以是任意 UTF-8 字符串。
  • 密码短语不会被编码成额外助记词,它是 PBKDF2 salt 的一部分。
  • 密码短语没有校验和;而助记词第 24 个词包含校验位。
  • 12 词助记词同样可以使用密码短语;按这个逻辑它应是“第13个词”,但“第25个词”只是泛称。

技术上更准确的术语是 “BIP-39 passphrase” 或 “mnemonic passphrase”。

SafeSeed 工具

使用 SafeSeed Key Derivation Tool 查看同一助记词在不同密码短语下如何生成完全不同的地址。输入一组测试助记词,分别在有/无密码短语情况下观察效果。所有计算都在浏览器内完成,不会传输任何数据。

密码短语 vs. 钱包 PIN vs. 密码

这三者经常被混淆:

功能BIP-39 密码短语钱包 PIN钱包密码
保护对象种子派生设备访问应用访问
存储位置不存储(你自行记忆)设备上设备/服务器上
是否可更改否(会创建新钱包)
忘记后果资金不可访问重置设备并从种子恢复可重置密码
暴力破解目标带种子的 PBKDF2设备锁定机制取决于实现
作用范围该种子下的全部钱包单台设备单个应用

密码短语本质上不同,因为它会改变派生出来的密钥。PIN 或密码只是控制对设备上已存在密钥的访问。

高级用例

多个隐藏钱包

高级用户可以基于同一助记词维护多个钱包:

  • 空密码短语:小额资金(诱饵)
  • 密码短语 A:主要储蓄
  • 密码短语 B:交易资金
  • 密码短语 C:应急储备

每个钱包都完全独立,链上不存在可见关联。需要记忆和备份的密码短语越多,风险也随之上升。

与多签结合

对机构级或超高价值存储,可将 BIP-39 密码短语与多重签名结合:

  • 每位签名者的密钥都由“助记词 + 唯一密码短语”派生。
  • 攻击者必须获取多个助记词以及对应的密码短语。
  • 这提供了多层彼此独立的安全防护。

FAQ

什么是 BIP-39 密码短语或“第25个词”?

BIP-39 密码短语是用户可选的一段字符串,会加入种子派生过程(PBKDF2 salt)。启用后,同一助记词会生成完全不同的一组密钥和地址。它常被称为“第25个词”,但它可以是任意文本字符串,不必是 BIP-39 词汇。

我可以更改密码短语吗?

不能像普通密码那样直接“修改”。由于密码短语决定派生出的密钥,更改密码短语就等于打开一个地址完全不同的新钱包。若要“更改”,你必须用新密码短语创建新钱包,并把旧密码短语钱包中的全部资金转移过去。

如果我忘记密码短语会怎样?

你的资金会永久不可访问。没有恢复机制、没有重置选项,也无法暴力破解高强度密码短语。这就是为什么必须妥善备份密码短语。

密码短语会存储在我的硬件钱包上吗?

某些硬件钱包提供将密码短语关联到次级 PIN 的选项(如 Ledger 的 “Attached to PIN” 模式)。此时设备会保存提示信息或哈希以方便使用。不过,更标准的方式是 “temporary” 模式:每次都需输入密码短语,且设备不存储任何内容。

每个钱包都支持 BIP-39 密码短语吗?

多数兼容 BIP-39 的钱包支持该功能,但有些不会在界面中暴露选项。请查看钱包文档。主流硬件钱包(Ledger、Trezor、Coldcard)都支持。

攻击者能知道我是否使用了密码短语吗?

不能。因为默认的空密码短语也会生成有效钱包,仅凭助记词无法判断是否存在额外受密码短语保护的钱包。即使攻击者拿到助记词并在基础钱包中看到资金,他们也无法确认是否还有受密码短语保护的钱包。

密码短语区分大小写吗?

是的。"MyPassphrase""mypassphrase""MYPASSPHRASE" 会生成不同钱包。空白字符也有区别,"my pass""mypass" 不同。记录密码短语时务必极其精确。

12 词助记词也能用密码短语吗?

可以。密码短语功能适用于任何 BIP-39 助记词长度(12、15、18、21 或 24 词)。无论助记词长度如何,PBKDF2 过程都相同。

相关指南