赞
踩
随着比特币区块链的发展,人们已经不满足于,只有一个账号的情况,有些人会有好几个账户,但是这就出现一个问题,我有几个账号,就要保存几个私钥,这就特别麻烦和不友好,所以,就出现了bip32确定性算法,该算法可以让你只有同一个种子,就可以生成无数个私钥和地址,这就大大方便了用户的使用。但是这个种子,也不较长,用户使用起来也比较繁琐,这就出现了bip39,它是使用助记词的方式,生成种子的,这样用户只需要记住,12个单词(3,6,9,12,15,18,21,24支持这些单词数,目前使用较广泛的是12和24),这就有大大提高了用户使用的便利性。又随着区块链发展,市面上出现了很多币种,之前的确定性算法只是针对比特币的,也就是说只支持一种币种,用户想用同一个种子,管理不同币种,这就促使了bip39协议的出现,它是基于bip32协议的,它给bip32的路径,赋予了不同的意义,很好的解决了多币种,多地址的问题。
如果想详细的了解这些协议,请查看官方文档(解析的最清楚)
big32:https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
bip39:https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki
bip44:https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki
验证网站:https://iancoleman.io/bip39/
我们在BIP32路径中定义以下5个级别:
m / purpose'/ coin_type'/ account'/ chain / address_index
路径中的撇号“ ' ”表示使用BIP32硬化衍生物。
每个级别都有特殊含义,如下面的章节所述。
purpose是在BIP43建议之后将常数设置为44'(或0x8000002C)。它表示根据本规范使用该节点的子树。
在此级别使用强化派生。
一个主节点(种子)可用于无限数量的独立加密币,如比特币,Litecoin或Namecoin。但是,为各种加密币共享相同的空间有一些缺点。
此级别为每个加密币创建一个单独的子树,避免重用加密链中的地址并改善隐私问题。
硬币类型是一个常量,为每个加密币设置。Cryptocoin开发人员可能会要求为他们的项目注册未使用的号码。
已分配硬币类型的列表在下面的“已注册硬币类型”一章中。
在此级别使用强化派生。
此级别将密钥空间拆分为独立的用户身份,因此钱包永远不会将硬币混合在不同的帐户中。
用户可以使用这些账户以与银行账户相同的方式组织资金; 用于捐赠目的(所有地址都被视为公共地址),用于保存目的,共同费用等。
帐户按顺序递增的方式从索引0开始编号。此数字在BIP32派生中用作子索引。
在此级别使用强化派生。
如果先前的帐户没有交易历史记录(意味着之前没有使用过任何地址),则软件应该阻止创建帐户。
从外部源导入种子后,软件需要发现所有使用过的帐户。“帐户发现”一章中描述了这种算法。
常量0用于外部链,常量1用于内部链(也称为更改地址)。外部链用于在钱包外部可见的地址(例如,用于接收付款)。内部链用于在钱包外部不可见的地址,用于返回交易变更。
在这个级别使用公共派生。
地址按顺序递增的方式从索引0开始编号。此数字在BIP32派生中用作子索引。
在这个级别使用公共派生。
从外部源导入主种子时,软件应开始以下列方式发现帐户:
此算法是成功的,因为如果上一个帐户没有交易历史记录,软件应该禁止创建新帐户,如上面“帐户”一章所述。
请注意,该算法适用于交易历史记录,而不是帐户余额,因此您可以拥有一个总共0个硬币的帐户,算法仍将继续发现。
地址间隙限制当前设置为20.如果软件连续命中20个未使用的地址,则预计在此之后没有使用过的地址并停止搜索地址链。我们只扫描外部链,因为内部链仅接收来自相关外部链的硬币。
当用户试图通过生成新地址来超过外部链的间隙限制时,钱包软件应该发出警告。
这些是上面“硬币类型”一章中描述的BIP44第2级使用的默认注册硬币类型。
所有这些常量都用作硬化推导。
index | hexa | coin |
0 | 0x80000000 | Bitcoin |
1 | 0x80000001 | Bitcoin Testnet |
此BIP不是注册硬币类型的中央目录,请访问SatoshiLabs,其中包含完整列表:
要注册新的硬币类型,需要实现该标准的现有钱包,并且应创建对上述文件的拉取请求。
coin | account | chain | Address_index | path |
Bitcoin | first | external | first | m / 44' / 0' / 0' / 0 / 0 |
Bitcoin | first | external | second | m / 44' / 0' / 0' / 0 / 1 |
Bitcoin | first | change | first | m / 44' / 0' / 0' / 1 / 0 |
Bitcoin | first | change | second | m / 44' / 0' / 0' / 1 / 1 |
Bitcoin | second | external | first | m / 44' / 0' / 1' / 0 / 0 |
Bitcoin | second | external | second | m / 44' / 0' / 1' / 0 / 1 |
Bitcoin | second | change | first | m / 44' / 0' / 1' / 1 / 0 |
Bitcoin | second | change | second | m / 44' / 0' / 1' / 1 / 1 |
Bitcoin Testnet | first | external | first | m / 44' / 1' / 0' / 0 / 0 |
Bitcoin Testnet | first | external | second | m / 44' / 1' / 0' / 0 / 1 |
Bitcoin Testnet | first | change | first | m / 44' / 1' / 0' / 1 / 0 |
Bitcoin Testnet | first | change | second | m / 44' / 1' / 0' / 1 / 1 |
Bitcoin Testnet | second | external | first | m / 44' / 1' / 1' / 0 / 0 |
Bitcoin Testnet | second | external | second | m / 44' / 1' / 1' / 0 / 1 |
Bitcoin Testnet | second | change | first | m / 44' / 1' / 1' / 1 / 0 |
Bitcoin Testnet | second | change | second | m / 44' / 1' / 1' / 1 / 1 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。