助记词详解,以及如何保管好你的助记词

· 6 分钟阅读

助记词是一小组单词,可以在任何电脑上重建你的加密货币钱包。本指南介绍这些单词是什么、钱包如何把它们转换成密钥、如何保存才能永远不失去访问权,以及为什么不能让任何人看到它们。示例使用 Blocknet 钱包及其 12 个单词的恢复助记词。

什么是助记词?

简短回答

助记词也叫恢复短语或种子短语,是一组普通单词,通常为 12 个或 24 个,编码了钱包密钥所依据的秘密。把这些单词输入兼容的钱包,它就会重建同样的密钥、地址和余额,即使你的电脑和钱包文件都已不在。

每个加密货币钱包都建立在秘密密钥之上。密钥是一个很长的随机数,很难手抄,也很容易抄错。助记词用一个固定单词表里的单词来表示同一个秘密,所以你可以把它抄在纸上、读出来核对,并在多年后再输入。

Blocknet 钱包把它的助记词称为恢复助记词(recovery seed)。它有 12 个单词,在你新建钱包时由钱包生成。保管好它,你就随时能找回钱包。

助记词是如何运作的?

许多钱包遵循 BIP39,这是 Marek Palatinus、Pavol Rusnak、Aaron Voisine 和 Sean Bowe 于 2013 年为比特币编写的标准。它分三步运作。

  1. 随机比特。 钱包生成 128 到 256 个随机比特。12 个单词的助记词包含 128 比特,24 个单词的包含 256 比特。
  2. 先加校验和,再转成单词。 钱包用 SHA-256 对这些比特做哈希,并把哈希的前几个比特作为校验和附加上去(12 个单词时为 4 比特)。然后把结果切成每段 11 比特。每段是 0 到 2,047 之间的一个数字,从 2,048 个单词的列表中选出一个单词。
  3. 为密钥生成种子。 使用助记词时,钱包用 HMAC-SHA512 对它执行 2,048 轮 PBKDF2,得到一个 64 字节的种子。密钥就来自这个种子。

校验和让钱包能告诉你助记词是否有误。随机的 12 个单词组合中,只有十六分之一的校验和有效,所以大多数拼写错误和单词顺序颠倒都会在任何操作发生前被发现。英文单词表还经过设计,每个单词的前四个字母都不重复,字迹难以辨认时会很有帮助。

12 个单词在 Blocknet 中的含义

Blocknet 钱包使用标准的 BIP39 英文单词表和 128 比特随机数,所以每个恢复助记词都是 12 个单词。它通过 BIP39 的 PBKDF2 步骤把这些单词转换成 64 字节的种子,不使用额外的口令。前 32 个字节成为你的花费密钥,后 32 个字节成为你的查看密钥。你的地址由这两个密钥的公钥部分构成,所以同样的 12 个单词总会对应到同一个地址。隐身地址详解解释了花费密钥和查看密钥如何配合,让你私密地收款。

128 比特有多大?可能的种子共有 2^128 个,约 3.4 × 10^38。没有人能靠猜单词找到你的钱包。唯一现实的进入方式是看到你的助记词,所以本指南其余部分都在讲如何妥善保存它。

助记词、密码和钱包文件有什么区别?

人们经常把保护钱包的这三样东西搞混。下面是它们在 Blocknet 钱包中各自的作用。

是什么 能给你什么
恢复助记词 你抄下来的 12 个单词 在任何电脑上完全控制钱包
钱包密码 你自己设定的密码 在这台电脑上打开钱包文件
钱包文件 一个 .wallet.dat 文件 你的密钥和历史记录,用你的密码加密

你的密码用来加密钱包文件(钱包用 Argon2id 派生加密密钥,再用 AES-GCM 加密),Blocknet 从不在任何地方保存它。密码与生成密钥毫无关系。用这 12 个单词恢复时,你要为新的钱包文件设定一个新密码。这使助记词成为最重要的那份备份:即使你丢了文件、忘了密码,它依然有效。

应该如何保存助记词?

简短回答

按顺序把单词写在纸上,逐个对照屏幕检查,然后把纸放在安全的离线位置。再抄一份,存放在另一个地方。不要把助记词放进照片、文本文件、笔记应用、电子邮件或云存储,因为任何读到它的人都能控制资金。

这些习惯能让助记词既安全又可用:

为什么绝不能把助记词告诉别人?

这 12 个单词就是你的钱包。谁拥有它们,谁就能在自己的电脑上重建钱包并转走里面的一切,而交易一旦上链就无法撤销。每次你要求查看助记词时,Blocknet 钱包都会显示这段英文警告(大意是:你的恢复助记词控制所有资金,任何拥有它的人都能偷走你的币,绝不要分享它,绝不要在网上输入它):

WARNING: Your recovery seed controls all funds.
Anyone with this seed can steal your coins.
Never share it. Never enter it online.

无论看起来多么正式,任何索要助记词的请求都应视为诈骗。钱包开发者、交易所、矿池和客服人员都从不需要它。要求你输入这些单词来“验证”或“同步”钱包的网站或应用,就是想拿走你的币。

做任何事都不需要分享助记词:

如何查看和恢复 Blocknet 恢复助记词?

在命令行钱包中,在 shell 提示符处输入 seed。钱包会显示上面的警告,请你确认并输入密码,然后按编号分行显示 12 个单词。在桌面钱包中,打开设置并选择“View Recovery Seed”(查看恢复助记词),同样会先要求输入密码。

恢复时,两种钱包都可以使用:

钱包会检查单词和校验和,重建你的密钥,并扫描区块链查找你的输出,所以你的余额和历史记录会以同一个地址恢复。Blocknet 钱包指南一步步介绍了如何创建钱包、备份助记词和找到你的地址。

把助记词安全地抄在纸上之后,就可以让这个地址派上用场了。Blocknet 挖矿指南介绍了如何让 seine 挖矿到这个地址,并开始在 bntpool.com 挖矿。

常见问题

助记词和私钥有什么区别?

私钥直接控制资金,而助记词是一份人类可读的备份,钱包会把它转换成私钥。在 Blocknet 钱包中,这 12 个单词会生成花费密钥和查看密钥,所以仅凭助记词就能重建整个钱包及其全部功能。

如果弄丢了助记词,还能恢复钱包吗?

只要你还有钱包文件和密码,就可以继续使用这个钱包。助记词是在文件或密码丢失时使用的备份。趁钱包还能打开,用 seed 命令或 View Recovery Seed 再次显示助记词,并把它抄下来。

把助记词存在密码管理器里安全吗?

Blocknet 钱包指南要求把助记词离线写在纸上,不要存进文本文件、笔记应用或云存储,因为任何读到这 12 个单词的人都能控制资金。把纸质副本放在两个不同的安全地点,就有了一份从不接触互联网的备份。

助记词在任何钱包应用里都能用吗?

单词表是通用标准,但每种币把单词转换成密钥的方式各不相同。请在官方 Blocknet 命令行钱包或桌面钱包中恢复 Blocknet 助记词。两者都接受这 12 个单词,并在钱包扫描区块链后恢复相同的地址和余额。