passphrase 要不要用:BIP39 第 25 个词的收益、代价与安全用法
结论先放这儿:passphrase 是个真东西,效果也确实存在,但它不是给所有人准备的。它能做到的很具体——就算有人拿到了你抄下来的 12 或 24 个词,没有这段口令,他打开的也不是你放钱的那套地址。它的代价同样具体——这段口令没有词表、没有校验位、厂商找不回,你输错一个字符不会看到任何报错,只会安静地进入一个空钱包。要不要用,本质上取决于一件事:你能不能把这段口令管得和助记词一样稳。
它加在哪一步:进的是 seed 派生
要判断该不该用,得先知道它插在链条的哪一节。助记词变成钱包地址,中间有一步叫 seed 派生:把那串词经过一个固定算法揉成一段种子,钱包再从种子里长出主私钥和所有地址。这条链的原理我在私钥和助记词什么关系里讲过。
passphrase 就落在这一步里。按 BIP39 规范的写法,它是可选项:你不设,算法就拿一个空字符串顶上去;你设了,它会被拼进 PBKDF2 的盐里——盐的构成是固定字符串 mnemonic 再接上你的 passphrase,两边都按 UTF-8 的 NFKD 方式规范化。派生本身用 HMAC-SHA512 作伪随机函数,跑 2048 轮,最后吐出 512 位、也就是 64 字节的种子。
细节可以忘,但有一个后果必须记住:你的助记词一个字都没变,种子却整个变了。盐变了,PBKDF2 的输出就是完全不相干的另一段,从它长出来的主私钥和全部地址也就完全不同。大家习惯叫它"第 25 个词",Ledger 官方文档也沿用 25th word 这个俗称,但严格说它并没有被加进那串词里。它动的是助记词确定之后、通往钱包的那道计算。
三个最常见的误会
这几条误会几乎是新手的标准动作,先清掉再往下看。
误会一:把它当成设备 PIN 的加强版。PIN 只是本机门禁,作用是别人捡到你的硬件钱包不能直接花钱;设备丢了,你拿助记词在新设备上就能恢复。passphrase 完全不在同一层——它进了种子派生,缺了它,同一组助记词恢复出来的是另一套钱包。一个管的是设备,一个管的是钱包本身。
误会二:以为它像助记词一样会校验。助记词有 2048 词的固定词表,还有校验位,抄错一个词恢复时通常会直接报错,这是助记词给你的兜底。passphrase 没有这层保护:规范没有为它定义词表,也没有为它定义校验位。规范里说得很直白——每一个 passphrase 都会生成一个有效的种子、也就是一个有效的确定性钱包,只有正确的那一个才会让你想要的钱包出现。翻成人话就是:错了不会拦你,只会给你一个空的。
误会三:以为加了它,原来的钱包就作废了。不会。空 passphrase 对应的那套钱包一直在,助记词单独就能恢复它。Ledger 官方也专门写明,设 passphrase 不会搬动你已有的资产,它打开的是一组全新的、里面本来就是空的账户。你要把钱挪进去,得自己转。这一点常被忽略,然后就有人以为币丢了。
它到底能挡住什么
收益只有一条,但这一条很硬:把「拿到助记词」和「能取走钱」这两件事拆成了两道门。
助记词备份的固有难题在于,它是明文的、是物理的、只要被人看见就等于交出去了。你抄在纸上或刻在钢板上,装修工人、搬家师傅、来家里住几天的亲戚、撬开抽屉的小偷——任何一个看到它的人都能立刻复原你的全部资产,你甚至不会知道发生过。这也是为什么助记词备份那篇要花那么大篇幅讲藏在哪。
加了 passphrase 之后,那张纸或那块钢板的价值就掉了一大截。捡到它的人能恢复出的,是空 passphrase 那套钱包;你真正的钱在另一套地址里,而通往那套地址的口令只在你脑子里、或者在另一个和助记词分开存放的地方。Trezor 官方把它定位成给有经验用户的可选高级功能,用来在现有备份之上再开出一套需要自定口令才能进入的钱包,说的就是这个用途。
还有一个常被拿来说的好处叫可否认性。规范里的原意是:因为任意口令都能生成有效钱包,别人无法从技术上证明你还藏着另一套。有些人据此设想一种用法——放一点钱在空 passphrase 的钱包里当门面,大额藏在带口令的那套后面。规范原文确实支持前半句的技术事实。但真被人堵在家里逼问的时候,这套安排能不能救你,是另一码事——那取决于对方知道多少、信不信你、能逼到什么程度。本站没有可引的一手证据来说明它在现实胁迫下的实际效果,所以这里只把规范写了什么讲清楚,不替你下结论。
代价:没有校验,也没有售后
把代价摊开看,比看收益更重要,因为代价是不可逆的那一侧。
一字之差就是另一套钱包。Trezor 官方的说法很不留情面:你输入的每一个 passphrase 都会生成一个不同的钱包,哪怕它只是个打错的字;而且区分大小写。多一个空格、少一个句点、把首字母大写了、把中文的逗号打成了英文的,结果都是另一套地址。它不会提醒你,因为在算法看来那本来就是一个合法输入。
写法上还有一层坑:Unicode。规范要求助记词和 passphrase 都按 NFKD 规范化。这意味着全角和半角、带组合符号的字母、同一个字符的不同 Unicode 写法,处理规则是定死的,但你在不同输入法、不同键盘上敲出来的到底是哪一个字符,你未必看得出来。中文输入法下随手打出的全角标点、手机上被自动纠正过的字符、复制粘贴时带进来的不可见空格,都会让你以为自己输的是同一段口令。
厂商不负责找回,这是白纸黑字的。Trezor 官方页面写明 passphrase 无法更改、无法移除、也无法找回,丢了就永久失去那个钱包里的资金;Ledger 官方文档同样说明他们不存储也不备份用户的 passphrase。这不是客服态度问题,是这套设计本身就没有存过它——设备里没有,厂商服务器上也没有。真忘了该怎么办,可以顺着助记词丢了怎么办里的思路评估还剩多少可能,但坦白说,纯粹靠猜的成功率很低。

还有个容易被当成常识的错觉:长度上限。Trezor 官方页面写的是设备端最多 50 个 ASCII 字符,Ledger 官方页面写的是最多 100 个字符、区分大小写、可以含数字和符号。这两个数字是各家设备的输入限制,不是协议规定——BIP39 规范本身并没有给 passphrase 设上限。为什么要分清?因为你如果按某一家的上限设了一段很长的口令,将来换到限制更短的设备上,可能就输不进去了。

最后一项代价不好量化,但真实存在:复杂度。多一段口令,就多一份要备份、要核对、要在换设备时正确重现的东西。
真要用,按这个顺序来
如果看完上面你还是想用,下面这几步建议按顺序做,别跳。
- 先定写法,再定内容。只用你能在任何键盘上稳定敲出来的字符。我的取舍是:全部小写英文字母加空格,不用中文、不用表情、不用容易被输入法改写的标点。牺牲一点花样,换的是十年后你还能一字不差地重现它。
- 长度按最短的那台设备定。如果你现在用一台、将来可能换另一台,就按两者中较小的上限来设,别贴着上限写。内容上,一段你自己造的、别处不会出现的短句,比一个改了几个字母的常用密码更经得住猜。
- 把它当成第二份助记词来备份。不能只靠脑子记。人对一段半年不输的字符串的记忆有多不可靠,这件事不需要举例大家也清楚。它要有离线的物理备份,抗火抗水的那种,并且和助记词分开存放——两样凑在一起,等于这层保护白加了。
- 抄完立刻核对写法。助记词那边可以用助记词验证工具本地核对词和词序,passphrase 这边没有工具能替你验,只能靠你逐字符比对你抄下来的和你实际输入的。大小写、空格数量、标点,一个个过。
- 先小额跑一遍完整恢复。这一步是全篇最重要的。转一笔你不心疼的小钱进带口令的那套钱包,然后在另一台设备上用「助记词 + passphrase」恢复一次,确认地址对得上、钱能转出来,再往里放大额。跳过这一步就往里放钱的,等于把资产押在一段从没验证过的字符串上。
- 隔一阵试一次。和金属备份要偶尔摸一下是一个道理。半年到一年恢复验证一次,确认口令还是你记的那个、备份还找得到、字还看得清。
另外提醒一句:空 passphrase 那套原钱包别彻底放着不管。它照样由你的助记词控制,照样是你的资产入口,该有的备份和检查一样都不能少。整套安全模型里各环节怎么咬合,可以回看自托管完全指南。
谁别急着用
说点直接的。刚开始自托管、连助记词备份都还没做扎实的人,先别碰它。基本功是这几件事:备份是离线物理介质、抄完核对过、至少两个地方各有一份、做过一次完整的恢复演练。这些还没稳定下来就加一层没有校验、丢了没救的口令,多半是把风险从「可能被偷」换成了「大概率自己锁死」,而后者发生得更频繁、也更没得商量。
另一类是资产不大、账户不复杂的人。passphrase 带来的复杂度是固定成本,不会因为你钱少就变便宜。放几千块钱的日常热钱包,把助记词收好、别截图、别上云,收益已经拿到了大半。
反过来说,什么时候才值得考虑?最直接的信号是金额——到了你会认真想「万一备份被人看到怎么办」的量级,这层保护才开始划算。居住和保管条件是另一种情形,备份不得不放在合租房、放进共用的保险箱,或者只能托人保管,总之不完全在你掌控之中。也有人纯粹是因为已经把整套流程走熟了,多管一段口令对他不构成负担。到了那个阶段,它是一层性价比很高的保护。
如果只能给一条建议,我会说:把「能不能安全地忘不掉它」当成唯一的判断标准。你能给这段口令做出和助记词同等级的备份,就用;做不到,就别用——不用 passphrase 的钱包并不危险,用了却记不住的钱包才是真的危险。
常见疑问
加了 passphrase,原来的 12 个词还有用吗?
有用,而且没有任何改变。助记词本身不会因为你设了 passphrase 而变化,空 passphrase 对应的那套原钱包仍然存在,仍然可以只用助记词恢复。设 passphrase 打开的是另一组全新地址,Ledger 官方也说明这个动作不会搬动你原有的资产。
passphrase 输错了,钱包会提示我吗?
不会。BIP39 没有为 passphrase 定义词表和校验位,任何一段口令都能派生出一个合法的钱包,所以输错时你看到的只是一个余额为零的新钱包,没有任何报错。
忘了 passphrase,厂商能帮我找回吗?
不能。Trezor 官方写明 passphrase 无法更改、无法移除、也无法找回,Ledger 官方也说明他们不存储、不备份用户的 passphrase。忘记就意味着那套钱包里的资产永久取不出来。
passphrase 最长能设多少个字符?
BIP39 规范本身没有规定上限,实际限制来自你用的设备:Trezor 官方页面写的是设备端最多 50 个 ASCII 字符,Ledger 官方页面写的是最多 100 个字符。如果你可能换设备,按其中较短的那个来设更稳妥。
类目:助记词与私钥保管