# 钱包安全：松鼠的隐秘仓库

By [linktr.eth](https://paragraph.com/@linktr) · 2023-04-04

---

Passphrase 密语
-------------

所谓密语，很像信中套信。

夏津之战，文信马踏雪密授机密情报给将军白起，将情报嵌入了三层套嵌的密信中，并借口其妻子生产而赶赴晋阳。

这份情报来得非常及时、准确，使得白起成功地埋伏、围攻赵军，最终打败了赵国军队，成为了古代中国历史上著名的战役。

我们都知道钱包在创建的过程中会生成12、18或24个单词，这些单词就是你的钱包密钥，谁得到它，谁就掌握你的资产，所以万万不可泄露。

而密语做的，就是在这些单词的外面，再套一层密码，并透过特殊的方式派生出隐藏的钱包账户和地址。

*   钱包 A + 密语 B = 钱包 C
    
*   钱包 A + 密语 D = 钱包 E
    

一个钱包可以绑定无数个密语，每个密语都将带你走向不同的门。

图片加载中

每次要操作这些隐藏钱包，你都必须输入正确的密语，否则它们无法显形。

用密语的好处是，即便哪天你的助记词泄露，对方在不知道密语的情况下，依然无法获得你的资产。

下图是 Trezor 估算的暴力破解 Passphrase 需要花费的成本：

图片加载中

可以看到，如果你设定了一个同时包含大小写字母、数字、且12位以上的密语，破解它所需花费的成本是个天文数字。

主流的硬件钱包都支持密语，我目前主要在使用的三款硬件钱包是 Trezor、OneKey 和 Ledger。

下面以适合中国人习惯的 OneKey为例，教你如何设置。

首先，在你的硬件钱包「安全」或「钱包」选项中，打开 Passphrase（密语），下图分别为 OneKey Mini、Classic 和 Touch 的界面。

图片加载中

图片加载中

图片加载中

完成后，连接你的硬件钱包至客户端。

软件会自动识别到这个硬件已经开启了密语功能。

还记得我们刚才提的吗？一个钱包可以绑定无数个密语，每个密语都将带你走向不同的门，每扇门背后都是隐藏钱包。

密语不存在对或错，它不是密码，而是一串魔咒，你念什么魔咒都能进入对应的隐藏钱包。

密语不会被客户端记住或存储，下图中，你输入字母 ABCD，就会进入一个以 ABCD 为密语的隐藏钱包；你输入数字78219，就会进入另一个隐藏钱包。

只要你在同一个钱包上输入相同的密语，那么你每次进入的就是同一扇门。

这样说，我想应该够清楚。

如下图所示：

*   按提示输入 Passphrase 密语就可以进入对应的钱包。
    
*   选择「在设备上输入」，可以使用直接在硬件上输入你的密语。
    
*   勾选「固定」，会将这个密语的钱包账户保留下来，固定在客户端的钱包列表里
    
*   如果不勾选，那么软件关闭后这个钱包账户会自动消失，等待你下次重新输入密语召唤它
    

图片加载中

通过密语进入隐藏钱包后，你可以先小额往里存一点币。然后拔除设备，重新输入密语，再检查币是否还在。

只要确认还在，就说明你已经熟练掌握密语的输入了。

不过，我衷心建议不要在隐藏钱包上操作 DeFi，频繁地输入密语是很痛苦的。

密语+隐藏钱包只适合用来囤币，不适合做其他操作。

以上，是为密语。

多重签名
----

印度史诗《摩诃婆罗多》中，提到过一个宝藏，它被藏在玛哈布哈拉塔家族的宝库中。

为了保持宝藏的安全，存放宝藏的密室被设置了多重签名系统。

在这个宝藏的多重签名系统中，只有能掌握宝藏藏匿之地的几个人才能够进行签名授权。如果宝藏被盗或者有任何非法使用，那么他们会失去玛哈布哈拉塔家族的信任。这样就可以保护这个宝藏，防止不当的使用。

比特币原生支持多重签名，如果是以太坊或其他 EVM 链的资产（如 Polygon、BSC…），我推荐你用 Gnosis Safe 来做多签。

下面我以 OneKey 硬件钱包 + Electrum 客户端为例，演示如何通过这种形式保护你的资产。

准备工作，你需要：

1.  下载并安装 [Electrum 客户端](https://electrum.org/#home)
    
2.  准备好支持 Electrum 客户端的硬件钱包，如 OneKey、Trezor、Ledger、BitBox02  … 等
    

  

首先，打开 Electrum 客户端，创建新钱包，钱包名称随时可改。

图片加载中

这里，我们选择 Multi-signature wallet，也就是多重签名钱包。

图片加载中

这个界面看起来有些复杂，我们逐一解释：

*   From X cosigners，指的是这个多重签名钱包一共有 X 把「钥匙」。
    
*   Require Y signatures，指的是需要 Y 个签名才能把交易发出去。
    

X 的数值永远大于等于 Y 的数值。常见的有：

图片加载中

为什么？因为这样设置的容错性最好。

非常不建议你设置成诸如 3 of 3，5 of 5… 这种每次交易需要全部钥匙签名的形式，万一丢了其中一把钥匙，你的币就找不回来了。 

如图所示，我们选择了 2 of 3 多签形式。

意味着这个钱包由3把钥匙共同生成，每次转账，都需要其中的2把钥匙共同签名，才能奏效。

图片加载中

接下来，我们选择 Use a hardware device，按照界面的提示，逐一插入自己的硬件钱包。

Electrum 会要求你解锁钱包，读取硬件钱包的公钥。

图片加载中

图片加载中

图片加载中

当你使用Electrum钱包客户端时，它会让你选择地址格式并允许你自定义路径。

Electrum的默认派生路径是：m/84’/0’/0’。

不过，我们建议保持默认的设置，不做过多的调整。

图片加载中

这时会出现钱包的公钥，我们暂时用不到。

图片加载中

继续添加硬件钱包，直到你将3个钱包都添加完。

恭喜，到这里你就已经完成了  2 of 3 多签钱包。

图片加载中

所有转到这个钱包里的币，都需要2个签名才能发出去。

如果你丢了其中一个钥匙也没关系，只要还有2把，就能随时把钱包恢复出来。

Electrum 是一款非常强大的开源比特币钱包，功能极多，受制于篇幅，这里不展开，你可以自行摸索。

一些说明：

*   多签的钥匙数量一旦设置，无法修改，所以创建时务必谨慎。
    
*   硬件钱包不是多签的必需品，我这里用硬件钱包做演示，是因为这样更安全。
    
*   如果你偏好纯软件的比特币多签钱包，[BlueWallet](https://bluewallet.io/%C2%A0) 是个不错的选择，容易上手，也是完全开源的。
    
*   访问 Electrum -> Preferences -> Appearance，可以修改客户端的显示单位，我比较喜欢改成 BTC 或 sat。
    
*   访问 Electrum -> View -> Show Addresses，可以将当前钱包里的地址都显示出来，建议打开。
    

以上，是为多重签名。

自定义路径
-----

阿斯托里亚号是一艘美国军舰，在1942年参加了第二次世界大战。这艘军舰沉没于阿留申群岛附近的海域，事后被发现是因为恶劣的天气和导航错误导致的。

在阿斯托里亚号沉没之前，舰长詹姆斯·莫林斯（James Manning Roebling）曾经对船员提出了一个提醒：无论何时都要重视风险，并且在采取任何行动之前，要想象一下最坏的情况，并采取措施以最大限度地减少事故的发生。

虽然这艘军舰的结局是悲剧，但不妨碍我们从中汲取教训。

对于加密资产的保护，我们除了密语、多签外，还有一个冷门的加密方式，即，自定义派生路径。

假设你处在极度危险的环境下，被迫交出了自己的所有硬件钱包、助记词、甚至是密语，那么你至少还应该留最后一个铜板在「自定义派生路径」上。

什么叫派生路径？以最流行的 BIP44 为例，其派生路径为：

    m / purpose' / coin_type' / account' / change / address_index
    

具体来说，BIP44定义了以下参数：

– Purpose’：表示此HD密钥是用于分层确定钱包结构的。

– Coin\_type’：coin\_type是一个数字，意思是币种的类型，例如，比特币的值为0。

– Account’：帐户，编号是可以自定义的，可以创建多个帐户。

– Change：这是一个非强制项，可以是0或1，0表示外部地址，用来接收比特币；1表示内部地址，用来找零。

– Address\_index：地址的数字索引，用于确定和管理地址列表。

因此，比特币的完整派生路径为：m / 44′ / 0′ / account’ / change / address\_index，比如 m / 44′ / 0′ / 0’ / 0 / 0。

图片加载中

当你将助记词导入钱包时，相应的账户地址会自动恢复，但这个数字会有上限。通常而言，钱包在“account”这一层级往上找到20就会停止。

然而事实上，“account’”的上限是2 ^ 31 – 1，也就是2147483647。

这是因为BIP44使用了带符号的32位整数来编号从0到2^31-1的账户。

这样一来，你就可以创建自己的账户路径。

比如说，你可以创建一个数值为202399999的“account’”，并在其中存储一些资产，而除了你自己，没有别人会知道这个路径的存在。

除了“account’”，你还可以自定义“address\_index”，而二者的组合可以几乎无限。

歹徒即便拿到你的助记词，导入他的钱包，若不知道具体的路径位置，也极难恢复出真正有币的那个地址。

这为你脱逃和转移资产争取了宝贵的时间窗口。

这是个天然的藏匿容器，却极少有人知道。

下面，我用 OneKey 桌面客户端手把手教你操作。

首先，点击钱包界面右上角的账户选择器。

图片加载中

在账户选择器中，点击右侧的 + 号，轻点 Manage Accounts 管理账户。

图片加载中

接着，点击 Mange Accounts 页面右上角的 … 菜单，并继续点击 Find Address by Path 选项。

图片加载中

在下方的界面中，我在 Account 栏输入了  202399999 这个数字，在 Address\_index 栏输入0，你可以按自己的想法随意输入。

图片加载中

现在，见证魔法的时刻到了！

你的钱包出现了一个编号极大的账户，这就是你的秘密地址。

保险起见，你可以点击账户右侧的菜单“…”，删除这个账户，然后重新添加一次。

只要确认地址一样，你就可以放心往里转币了，美哉美哉。

图片加载中

通过这种方法，你可以给自己的地址叠加无数个 Buff。

真真假假，没有人知道你的币究竟在哪个账户的哪个地址上。

当然，自己要把路径记牢，最好能写下来，放在安全的地方。

如此一来，真是念头通达。

总结
--

以上种种，是我亲身指南的最佳资管实践。

你只需学习其一，就可轻松应对囤币难题。

若巧妙组合运用，FBI找你都无门。

请诸位好好学习，做一只聪明的松鼠，保管好自己的隐秘仓库。

作者：[王一石](https://yishi.zhubai.love/)

---

*Originally published on [linktr.eth](https://paragraph.com/@linktr/iMjjJF60lxH255q71aGk)*
