身份钱包学名叫做分层确定性钱包(简称:HD 钱包),最早是比特币开发者们为了解决备份私钥困难而提出的解决方案。
最早的比特币钱包是一堆随机生成的私钥的集合:钱包会预先生成 100 个随机私钥,并且每个私钥只使用一次,这些私钥用光后再产生一批私钥,所以每次完成 100 个交易后,你必须备份新的私钥,否则可能会丢失资产。
为了解决用户必须备份所有私钥的问题,比特币开发者们提出了 BIP32(BIP:比特币改进提案的英文缩写):使用一个种子,推导出不同的私钥。这样只需要保存一个种子,就等于备份了所有的私钥。
再后来,开发者们觉得种子也太难记了,于是提出 BIP39:用 2048 个不同的英文单词来取代种子,比如根据算法随机生成12个英文单词作为助记词。
这就是分层确定性钱包的发展过程,为了便于理解,我们称之为「身份钱包」。通过身份钱包,你可以使用一份助记词,更方便地管理多条公链上的数字资产。
下面带你完整地过一遍钱包生成的过程,以及每个步骤所涉及的 BIP 提案:
第一步:随机生成一个助记词(BIP39)
第二步:由助记词推导出种子(BIP39)
第三步:种子生成根私钥(BIP32)
第四步:根私钥再根据不同路径推导出多链钱包(BIP44)
至此,助记词 -> 种子 -> 根私钥 -> 多链钱包的生成过程就完成了。
这也是为什么在身份钱包中,只要备份一个助记词就相当于备份了不同公链的钱包。
所以助记词相当重要,一定要离线保存在安全的地方。
助记词与私钥的功能相同,都可以用来恢复钱包,并且助记词更容易保存备份。