免费试读阅读约需 9 分钟
助记词如何变成你的密钥
大多数钱包都遵循 Bitcoin 社区制定的一套公开标准,即 BIP-39、BIP-32 和 BIP-44。Ethereum 钱包也采用同样的标准。它们合在一起,解释了为什么一组单词就能恢复一个钱包曾经显示过的每一个地址。
一步一步来
- 钱包生成 128 位或 256 位的随机数据。
- BIP-39 加上一个简短的校验和(checksum),再把结果映射到一个固定的 2,048 词词表上,得到 12 或 24 个单词。每个单词代表 11 位。
- 这些单词,加上一个可选的密码短语(passphrase),会经过一个刻意设计得很慢的密钥拉伸函数,生成一个 512 位的种子(seed)。
- BIP-32 把这个种子扩展成一棵密钥树:一把主密钥,再由它派生出钱包所需的任意数量的子密钥。
- BIP-44 规定了每种币和每个账户在树中的位置,这就是为什么换一个钱包应用也能找到相同的地址。
结论是:这些单词不是你钱包的密码。它们就是你的钱包。任何拿到它们的人,都能在任何兼容的应用里、在任何地方重建每一把密钥,完全不需要你的设备。
可选的密码短语
有些钱包允许你添加一个密码短语,有时被称为第 25 个单词。同样的单词配上不同的密码短语,会生成一套完全独立的密钥。如果有人只找到了那些单词,它能保护你。这也意味着,忘记密码短语,会和丢失单词一样让那部分资金彻底丢失,而且没有任何迹象会提示曾经用过密码短语。
会出什么问题
- 把单词输入网站、表单或客服聊天窗口,就等于交出了钱包。任何正规服务都不需要它们。
- 照片、笔记应用、邮件草稿和云文档都会被复制、同步,有时还会被扫描。存放在这些地方的单词,要当作已经泄露。
- 单词表是公开的,而校验和意味着只有部分组合是有效的。缺失或拼错的单词有时可以找回,但你自己编的短语并不随机,也不安全。