助记词是 12 或 24 个普通的英文单词,加密货币钱包的全部钥匙就压在这些单词里。谁有这串词,谁就有钱:不需要密码,不需要手机,连钱包应用本身都不需要。下面讲:它是怎么生成的,为什么最后一个词不能自己挑,为什么在网页上生成的助记词不能用来放真钱,以及怎么保存才能既不丢、又不交出去。
| 助记词是什么 | |
|---|---|
| 形式 | 从 2048 个词的词表里取 12 或 24 个 |
| 里面装的 | 一个随机密钥 |
| 最后一个词 | 校验位 |
| 这串词 | 等于整个钱包,不要密码也不要手机 |
它是怎么生成的
标准叫 BIP-39。钱包取一个随机数,12 个词对应 128 位,24 个词对应 256 位,再把它翻译成一张固定词表里的单词,词表一共 2048 个词。每个词编码 11 位,所以从单词能唯一还原出那个数,钱包再从这个数推出自己所有的密钥和地址。
最后一个词不是随便挑的。随机数的尾巴上会接一段校验和 (用同一个数算出的 SHA-256 的前几位,用来查笔误),最后一个词装的正是它。任意改一个词,校验就对不上,钱包就是这样知道你输错了。你可以在这里检查自己的助记词有没有笔误:助记词:校验,校验在浏览器里算,单词不会发到任何地方。
12 个词还是 24 个?差别在余量,不在实际安全性。128 位的随机性已经超出任何暴力破解的能力。24 个词用在合规要求和长远余量重要的场合。真正的危险不在助记词多长,而在它写在了哪儿。
为什么不能在浏览器里生成
我们页面上的工具能生成助记词,它对你说的第一句话就是:别用它放真钱。不是因为我们会发送什么,页面什么都不发。而是因为浏览器旁边同时跑着扩展、剪贴板同步、自动填充,还有你背后的眼睛。任何一样都可能看到屏幕上的单词。被人看过一次的助记词就永远暴露了,它不像密码那样能换掉。
真正的钱包,助记词由硬件钱包 (一台独立设备,密钥永远不离开它)生成,或者由一台没联网的设备上的钱包应用生成。我们的生成器是让你看明白这东西怎么运作,以及给已有的助记词做校验。
怎么保存:两个方向相反的危险
保存助记词有一个天生的矛盾。只有一份会丢:泡了水、烧了、搬家时扔了。份数多了,每一份都是多一分风险:任何一份都可能落到错的人手里,而每一份里都是完整的助记词。
几条简单规则,盖住大多数情况:
- 写在纸上或金属上,不要存成文件。 文件会进云端、进备份、进剪贴板,设备一泄露它就跟着泄露。相册里的一张助记词截图,是丢掉它最常见的方式。
- 不要和设备放在一起。 手机和那张纸在同一个包里,包只需要被偷一次。
- 不要发给「文件传输助手」或自己。 那还是云端里的一个文件,只多了一层隐私的错觉。
- 不要往任何要求「验证助记词」的地方输入。 钱包只在恢复时问一次助记词,MetaMask、imToken、TP 钱包都一样。除此之外任何让你输助记词的,都是偷。
| 助记词不该在的地方 | |
|---|---|
| 电脑里的文件 | 跟着备份泄露 |
| 相册里的截图 | 跟着云端泄露 |
| 「发给自己」 | 还是那个云端 |
| 手机旁边 | 偷一个包就够了 |
| 「请验证助记词」的网站 | 那是偷 |
| 正确做法 | 纸上,离开设备,放两个地方 |
怎么拆分,让任何一份都不危险
「一份会丢、多份危险」这个矛盾有一条出路:把秘密切开,任意 K 份能拼回来,少于 K 份则对秘密一无所知。这叫 Shamir 秘密共享,已经四十多年了,它是一个数学性质,不是承诺。
打个比方:一把锁配了三把钥匙,规定要同时插两把才能开。一把丢了,另外两把照样开;一把被偷了,小偷靠一把什么都开不了。
这么做。把助记词拆成几份,比如拆成三份、门限为二。三份放在三个亲近的人那儿,或者三个地方。任意两份就能还原完整的助记词。单独一份,被偷了或被捡到了,什么也给不出去:连原文有多长都无法确定。丢了一份,剩下两份照样能恢复。
这比直接把助记词切成三段、每段四个词强在哪儿:普通助记词的一段已经是答案的一部分。有了十二个词里的八个,剩下四个可以穷举。而这里的一份单独看不含任何关于秘密的信息。
一个坑:门限等于份数很危险。三份取三,意味着丢任何一份就永远丢了秘密。家用通常是三份、门限二。全部在浏览器里算,秘密和各份都不会发到任何地方,并且上面那条警告同样适用:在网页上拆真的助记词,只能在你信任、没有多余扩展的设备上做。
我自己怎么做
说实话。真钱包的助记词,我会在硬件设备上生成,抄两遍在纸上,放在两个不同的地方,都不在手机所在的地方。如果金额大到丢了心疼、托付给一个人也心慌,我会拆成三份、门限二,分给互相不来往的人。而且永远不会以任何形式把它存成文件。
| 保存,简版 | |
|---|---|
| 生成 | 不在浏览器里 |
| 载体 | 纸,不是文件 |
| 份数 | 两份,两个地方 |
| 位置 | 离开设备 |
| 大额 | 三份,门限二 |
| 记住 | 助记词不能像密码一样换 |
助记词解决不了什么
助记词防不住你自己把它输进一个假网站。有人让你「验证助记词」、你照做了,什么保存方案都救不了。这是把一切都丢掉的最常见方式,而且它不是技术问题。
助记词也和别人看不看得到你的转账无关。链上的地址和交易是公开的,助记词守的只是动用它们的权利。怎么查转账到没到,为什么币会「消失」在另一条链上,在加密货币转账一直待确认里;怎么把助记词本身或它的一份安全地交给另一个人,在怎么安全地把密码或文件发给别人里。
翻出一串旧助记词、不知道拿它怎么办,可以问 AI,但不要输入助记词本身。
帮我理清一串助记词该怎么处理。助记词本身我不会
给你看,也不会输入到任何地方。
几个词:(12 / 24 / 其他)。
从哪儿来:(我的旧钱包 / 捡到的 / 别人给的)。
现在存在哪儿:(纸上 / 文件 / 截图 / 聊天记录)。
告诉我怎么在不暴露它的前提下确认它是完整的,
接下来怎么保存,以及绝对不能做什么。
一句话总结
- 助记词就是整个钱包,12 或 24 个词,最后一个词校验其余的。
- 在网页上生成来放真钱是不行的:不是因为发送,而是因为一切能看到屏幕的东西。
- 写在纸上,放两个地方,离开设备。
- 大额用 Shamir 拆分:三份、门限二,任何一份单独都没有意义。