区块链钱包技术原理(三)HD Wallet

上一篇谈到了钱包软件的如何创建私钥、地址以及数字签名技术,本篇是最后一篇,带你认识管理私钥功能。

多私钥使用需求...

在谈管理私钥功能之前,我们先了解使用者对于私钥的需求为何?

现今不断有新的区块链主链,以及其应用服务上线,因此使用者需要支持多个区块链、多币种、多帐户的钱包软件,而且不论是为了要强化隐私,还是为了区分不同的交易目的,使用者在每次交易时,都可能需要切换不同的地址与对应私钥来执行交易,于是在生成众多不同的地址与私钥的状况下,管理私钥变成了麻烦且复杂的事情,另一方面,私钥是一串又长又乱的随机码,一份私钥对于使用者就已经不易保管与记忆了,多份私钥的状况下,那就必须要有一个相对简化的方式来备份。

多地址操作,强化隐私
因为区块链的交易纪录是透明的,所以会有隐私上的隐忧,虽然说使用者是以代名(地址)的方式显示自己,但也不算真的匿名,为了强化隐私,都会建议使用者多地址操作交易,因为单一地址操作交易的话,他人会较容易描绘在背后操作的人。

先说解决方案哪里来

比特币区块链是一个开源的项目,任何人都可以参与并做出贡献,其中有一群人不断致力于比特币协议,使它有更好的效率与功能,而这群人就是比特币开发者社群,他们建立了一个关于改善建议的提案制度,提案的简称就是BIP,全文是Bitcoin Improvement Propposal,直白的代表着比特币改进建议的提案,BIP后面会加上数字,做为不同提案的识别编号,而目前许多钱包软件服务,都是遵循BIP协议来进行钱包软件的设计。

BIP32

提出了管理私钥的分层方法,透过单一个种子Seed生成主私钥,透过主私钥就能推导与维护多个子私钥。

BIP32 定义的HD Wallet

此提案,定义Hierarchical Deterministic Wallet (简称HD Wallet)分层确定性钱包的规范,利用树状结构管理多组公私钥对,产生了以下好处:

  • 透过一个种子,就可以有序的串起所有的子私钥,使用者即使使用大量不同的地址(私钥)来做交易,也可以有序且方便的管理与使用。
  • 备份或转移所有私钥至其他钱包软件,只需要种子即可,而且只需要备份一次,没有任何私钥生成时间先后,而备份不同步的问题。
许可权控制
分层确定性钱包让分层许可制有实现的可能,高层领导团队掌有主私钥,分配子私钥给各部门做使用,高层具有推导出各部门子私钥的能力,而各部门只能使用自己被分配到子私钥,进而使用对应地址中的资产,就可达到分层权限控制的效果。从种子推导至最底层的子私钥,过程都是使用不可逆的hash算法,因此底层单位即使有子私钥,是无法推测出高层掌握的主私钥,也无法推测出其他部门拥有的子私钥,所以没有任何越权或是跨权的可能。关于主私钥
主私钥是无法直接使用某子私钥所对应地址的资产,它唯一的目的是重新生成Wallet Tree,去推导出子私钥,它无法直接签署交易动用资产。

BIP39

BIP39是基于BIP32的提案,提出了Mnemonic助记词的概念,将人脑难以记忆的种子Seed,转化成一串语言可读的有序字词,有着以下好处:

  • 语言可读的助记词替代种子,使得备份更加人性化。
  • 支持助记词的钱包软件,互相之间可以打通转换,使用者只要有助记词就可以轻易地更换钱包软件。
Seed: b90c9906b30f5d7aff5d0e19f782b200a31830d0f8a6ce9c63f67e93eea780b8ea16b761db6011ec5917c66286e1b6327daecbd0c9f235f7b6e802107f58cb7a转换成助记词:team duty scale price receive worth flower slab approve laugh seven motion

BIP44

BIP44也是基于BIP32的提案下,替分层路径定义了规范,赋予树状结构各层的代表意义,同时也增加了多币种的支持,某方面,也可以看做是一种特定的BIP32子私钥生成的方式。

BIP44所定义的路径:
 m / purpose' / coin_type' / account' / change / address_index

BIP44明确定义了币种、帐户、地址的路径分类,使得只要支持此协议标准的钱包软件,它们之间的打通转换会更加相容,另一方面,也是向使用者表示,自己的钱包软件明确支持多币种、多帐户之使用。

助记词生成器(含分层衍伸路径)
https://iancoleman.io/bip39/BIP44币种列表
https://github.com/satoshilabs/slips/blob/master/slip-0044.md#slip-0044--registered-coin-types-for-bip-0044

BIP32使得钱包软件可以管理多私钥,以及备份上只要备份种子即可,而BIP39则是人性化备份种子的方案;BIP44是提议子私钥生成方式的标准,综合以上的解决方案,就可满足钱包软件支持多个区块链、多币种、多帐户的多份私钥需求,而且私钥的备份变得相当人性化。

总结

目前的钱包软件技术方案,奠定了钱包软件服务可以跨链、跨币与跨软件互通的基础,而若该钱包软件可连线至不同的区块链主网(比特币、以太坊等)进行互动,我们称作为多链钱包。

但不是每一个钱包软件服务都是多链钱包,并且上述的技术方案实现的状况,要看每个钱包软件服务商而定,每一家都可能有不同的服务诉求。

多链钱包
也有人称HD钱包、Multi Coin Wallet、Multi Cryptocurrency Wallet、Universal Wallet等。
单链钱包
若只能支持某一区块链的私钥管理与主网连线的钱包软件,就是单链钱包。

本文链接地址:https://www.wwsww.cn/jishu/5993.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。