Duress Wallet 是一种预先准备的钱包:当有人强迫持有人交出比特币访问权限时,持有人可以展示它。具体实现可能使用特殊 PIN,也可能使用不同的 passphrase,即额外的秘密文本。目的是开放这个钱包,而不是主钱包。但其中的比特币是真实的,也确实可以花掉。这项功能可能限制当下交出的访问权限,却不能保证对方相信屏幕上的余额,更不能保证对方停止威胁。
钱包是接收和发送比特币的应用程序或设备。私钥是用于授权花费比特币的秘密数字。假设彼得把主要积蓄放在主钱包里,另备一个钱包应对可能的胁迫。支持此功能的设备可以在输入特殊 PIN 后只打开第二个钱包,提供它用于签署付款的密钥。在这个模式中无法访问主钱包。但这不是显示虚构金额的假界面。从第二个钱包发出的付款仍会正常进入比特币网络。Duress Wallet 这个名称本身既不说明密钥如何派生,也不说明 PIN 会不会触发其他动作。因此,彼得需要弄清设备的具体行为,而不能只看菜单名称。 [1] [6] [7]
PIN 通常用于解锁 Hardware Wallet,也就是保护密钥的硬件设备。BIP39 passphrase 的作用不同:它与 Seed Phrase,即用单词记录的备份,一同用于计算 seed,也就是派生密钥的起始数据。即使 passphrase 中有字符输错,程序仍会接受,通常会打开另一个空钱包。BIP39 在计算前会通过规范化统一字符表示。要回到原来的钱包,必须有正确备份和原来的 passphrase;Trezor 无法替你找回它。因此,更换 passphrase 不像更改邮箱密码:比特币不会随之搬到新钱包。支持 passphrase 也不等于支持特殊的 Duress PIN。 [2] [3]
如果对方已经看过彼得的主钱包,或知道它的地址,另一块屏幕上较小的余额不会抹去这些信息。BIP39 能生成多个有效钱包,却不能证明没有其他钱包。COLDCARD 的 SSSP 文档给出了一个例子。SSSP 是针对单个签名者的支出规则设置;知道主 PIN 的人可以导出 XPUB,即扩展公钥,用它观察相应地址和余额。XPUB 本身不能签署付款,但仍会泄露信息。购买记录和此前对应用的访问也可能影响判断。不过,仅凭链上交易之间的联系,还不能证明持有人的身份。 [2] [5]
有些 Trick PIN 只会打开另一个钱包,有些则会删除秘密数据,或使设备永久失效。这些后果不同。比特币输出,也就是与花费条件关联的金额,仍然记录在区块链上。如果有完整备份,持有人可能仍能通过另一台设备访问它们。如果唯一可用的密钥副本消失,持有人自己也可能失去访问权限。删除数据同样无法控制威胁者的反应。因此,介绍这种功能并不是建议读者在危险场景中启用它。 [1] [6]
对彼得来说,只记下“备用 PIN”是不够的。他需要知道哪些数据能恢复主钱包,哪些能恢复另一个钱包:Seed Phrase、适用的 passphrase,以及实现所需的派生参数。备份单词不能代替遗忘的 BIP39 passphrase。使用独立测试数据演练时,应核对已知收款地址,并查看重启后会打开哪个钱包。应用显示了某个有效钱包,并不证明恢复的是预期钱包。不要拿真实钱包唯一可用的备份试验破坏性选项。 [3] [4]
被偷走的关机设备、被窃取的备份、直接针对人的胁迫,是三种不同情况。对方掌握的信息和能力也不一样。Duress Wallet 可以是经过认真规划的 Self-custody 的一部分,也就是由自己控制密钥的保管方式,但它没有普遍可靠的应对剧本。第二个钱包里也不存在能够从技术上证明安全的金额。个人安全、亲近的人、恢复能力和自己操作出错的可能性都需要考虑。设备测试能说明软件怎样运行,不能预测攻击者怎样行动。因此,EFF 主张根据具体威胁制定安全计划,并定期重新评估。 [6] [5]
BIP85 可以从一组主秘密数据反复重建其他钱包。起点是 BIP32 主扩展私钥,也就是私钥加上派生更多密钥所需的数据。计算沿完全 hardened 的路径进行,每一步都需要私钥材料,再由 HMAC 这种带密钥的哈希函数处理结果。在这个层级中,派生出的钱包称为子钱包,共同的起点称为根。从子钱包不应能反推出根,但取得根和所需参数的人可以重新创建子钱包。因此,地址不同不等于备份彼此独立。应区分从共同根派生的钱包、使用另一 passphrase 的钱包,以及具有真正独立 seed 的钱包。恢复时仍需要正确路径和 index,也就是选择某个子钱包的编号。 [4]
COLDCARD 文档区分了不擦除主 seed 的 Duress Wallet,以及先擦除主 seed 再打开指定钱包的 Wipe → Wallet。文档列出三种 BIP85 变体和旧版 Legacy Wallet。主钱包的单词备份有 24 个单词时,BIP85 变体使用 index 1001–1003;为 12 个单词时,使用 2001–2003。Legacy 的路径是 m/2147431408h/0h/0h,其中 h 表示 hardened 步骤。这些信息描述的是一种具体实现,不是比特币共识规则。其他设备或其他 firmware 版本,也就是设备内部程序的版本,不能仅因名称相似就被认为行为相同。恢复时也必须知道确切模式。 [1]
要获得更完整的理解,请将本词条与以下词条结合阅读: BIP85, BIP39 passphrase, Hardware Wallet, 自主托管, Secure Element, Seed Phrase.