使用过数字钱包的人,应该都会遇到助记词,用一句话来解释助记词就是:它是私钥的明文显示。
意如其名,帮助你记忆私钥的单词。因为,一串长长的字符总没有几个单词好记忆。
什么是助记词
拥有数字货币资产的人都知道,私钥的备份是非常重要的,有私钥就拥有该私钥对应账户上的所有资产。一般来说私钥都有 256 位,以 64 个字母数字构成的 16 进制字符串表示。直接抄录这 64 个字母数字是很容易搞错的。
助记词是明文私钥的另一种表现形式, 最早是由 BIP39 提案提出,其目的是为了帮助用户记忆复杂的私钥 (64位的哈希值)。助记词一般由12、15、18、21个单词构成,这些单词都取自一个固定词库,其生成顺序也是按照一定算法而来,所以用户没必要担心随便输入12个单词就会生成一个地址。虽然助记词和 Keystore 都可以作为私钥的另一种表现形式,但与 Keystore 不同的是,助记词是未经加密的私钥,没有任何安全性可言,任何人得到了你的助记词, 可以不费吹灰之力的夺走你的资产。
回顾一下私钥空间,比特币、以太坊的私人密钥空间的大小(2^256)是一个难以置信的大数目。
十进制大约是10^77。可见宇宙估计含有10^80原子。
要从这么大的空间里找到一个私钥,它刚好是V神的钱包,这概率……比大海捞针,而且是不能借助任何工具,还难。
其实,所有的助记词字典,其实只有2048个单词。
通过下面这个连接就可以访问:
https://github.com/bitcoin/bips/blob/master/bip-0039/english.txt
今天,学一学助记词是怎么计算出来的。
教学开始!
生成助记词
第一步 提供一个熵源
所谓熵源,即随机性来源。我们生成助记词需要一个 n * 32 位的一个数字作为熵源。熵源的位数越多安全性越高,生成的助记词数量越多。熵源的位数称为ENT(initial entropy length)。ENT 应该在 128 ~ 256 之间。
生成一个私钥在本质上与“在1 到2^256之间选一个数字”无异。只要选取的结果是不可预测或不可重复的,那么选取数字的具体方法并不重要。目前主流使用操作系统底层的随机数生成器来产生256位的熵(随机性)。通常情况下,操作系统随机数生成器由人工的随机源进行初始化,这就是为什么也可能需要不停晃动鼠标几秒钟。
1. 先从熵开始,熵的长度是32的整数倍,分别为 128, 160, 192, 224, 256,也就是我们私钥的长度。
2. 熵的长度再加上校验和的长度。为熵的长度/32 位, 所以校验和长度可为 4,5,6,7,8 位;
3. 一共有2048个助记词,用二进制表示的话需要11位。 2的11次方等于2048。所以,上面助记词的个数分别是12,15,18,21,24。
例如: 128位的熵,加上 4位校验和,等于132位长度的二进制,每11个切割成一组,那需要12组。
(128+4)/11 =12, 也即128长度的熵需要12个助记词
(256+8)/11 =24, 也即256长度的熵需要24个助记词
画张流程图就是

每个单词有唯一一个码,好了,上面就是助记词生成的整个过程。
12个助记词安全吗?
我们的钱包只有12-24个单词,从表面看上去,假如全球用户的所有帐户加起来有10亿个钱包,那我从2048个字典里随机挑出12个单词,这个好像有机会瞎猫碰到死耗子一样,再不行,我拿计算机一直尝试12个单词的随机组合,然后看看是不是一个钱包的私钥……
哈哈……哈哈……
说干就干,求值了一下……不算不知道,一算吓一跳。
下面分别是2个单词到24个单词的随机组合个数,到第4个单词时已经17万亿了,再往上就不知道怎么读了。
4194304
8589934592
17592186044416
36028797018963968
73786976294838206464
151115727451828646838272
309485009821345068724781056
633825300114114700748351602688
1298074214633706907132624082305024
2658455991569831745807614120560689152
5444517870735015415413993718908291383296 (已经40位数了,除以10亿,还有31位)
继续13个单词
11150372599265311570767859136324180752990208
22835963083295358096932575511191922182123945984
46768052394588893382517914646921056628989841375232
95780971304118053647396689196894323976171195136475136
196159429230833773869868419475239575503198607639501078528
401734511064747568885490523085290650630550748445698208825344
822752278660603021077484591278675252491367932816789931674304512
1684996666696914987166688442938726917102321526408785780068975640576
3450873173395281893717377931138512726225554486085193277581262111899648
7067388259113537318333190002971674063309935587502475832486424805170479104
14474011154664524427946373126085988481658748083205070504932198000989141204992
29642774844752946028434172162224104410437116074403984394101141506025761187823616
真相竟然那么残酷,啥也不要想了,还是好好研究搬砖吧。
参考资料:《精通以太坊》,初学者,如有疏略,还请指教。