区块链钱包技术原理(三)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等。 单链钱包 若只能支持某一区块链的私钥管理与主网连线的钱包软件,就是单链钱包。
声明:本站所提供的资讯信息不代表任何投资暗示, 本站所发布文章仅代表个人观点,仅供参考。