比特币协议BIP39(BIP39协议:比特币钱包助记词生成原理)
比特币是一种去中心化的数字货币,而数字货币的存储最重要的是需要安全可靠。为了保障用户资产的安全性和私密性,比特币钱包使用了一种特别的加密方式——“助记词”。
那么,什么是助记词呢?助记词是一串由12、15、18、21或24个单词组成的字符串,它们完全由随机的单词组成。这些单词采用的是一种特定的词库,每个单词都可以唯一地对应一个数学值。这些数学值可以用于生成私钥和公钥。
助记词的算法是什么呢?它的算法叫做BIP39,这是Bitcoin Improvement Proposal 39的缩写。BIP39是比特币中的一种协议,被广泛地应用于产生助记词。
BIP39最初是由Trezor的创始人Pavol Rusnak和Marek Palatinus提出的。他们设计这种协议是为了解决比特币钱包备份的问题。相较于备份私钥,使用助记词可以更加方便地进行备份和恢复。BIP39采用的是伪随机数生成器的原理,它可以生成一个128位的种子。这个种子用于生成主私钥(Mnemonic private key)。
在产生助记词之前,需要先生成一个熵值,称为“熵”,这个熵是一个128位随机数或者一些随机的字符串,熵的作用就是提供一个生成助记词的基础。具体实现过程如下:
1. 首先生成一个随机数,长度为128位。
2. 将这个随机数通过哈希函数SHA256计算出一个256位的哈希值。
3. 取这个哈希值的前4个字节作为校验和(checksum),追加在随机数后面,得到132位的字符串。
4. 将这个132位字符串以11位为一组进行分割。
5. 每组11位可以通过对应的词库找到对应的单词。
比特币钱包所使用的词库总共有2048个单词,这些单词都被分类为动词、形容词、代词和名词四类,每类有512个单词。这个词库被称为BIP39词库。
需要注意的是,BIP39生成的助记词必须要有校验和,校验和的作用是检验助记词是否输入正确。当单词输入不正确时,系统可以自动检查出输入错误。
一旦BIP39根据随机的128位种子生成了助记词,这个助记词就可以被用于恢复比特币钱包中的主私钥。因为主私钥是由助记词生成的,所以钱包只需要备份助记词就能够恢复出主私钥。在同一个助记词下,可以生成出无限的地址,也就是说,只需要备份一个助记词,就可以备份整个钱包中的所有地址!
总之,利用BIP39协议生成助记词使得备份和恢复比特币钱包变得更加便捷和可靠,同时也大大增强了比特币钱包的安全性。