HD钱包(bip32)地址推导路径

时间:2018-07-03 10:26:28

标签: blockchain bitcoin

我正在创建一个应用程序,该应用程序需要通过提供的XPUB键生成一个新地址。

例如xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz

我正在使用Electrum钱包和此应用提供的钥匙。

我的应用程序允许用户添加自己的xpub密钥,因此,只要xpub密钥仅由我的应用程序使用而不公开,则我的应用程序将能够生成新地址而不会影响用户的隐私。

因此,我正在寻找一种正确生成新地址的方法,我找到了一些库,但是我不确定派生路径,它的外观如何?

考虑以下路径示例

enter image description here

  1. 推导路径是否更多是惯例而不是规则?

  2. Bitcoin first external first m / 44' / 0' / 0' / 0 / 0这是有效路径吗?我在这里https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki

  3. 找到了它
  4. 我还发现Electrum钱包使用以下格式的另一种模式https://bitcoin.stackexchange.com/questions/36955/what-bip32-derivation-path-does-electrum-use/36956。它使用m / 0 /接收地址,并使用m / 1 /更改地址。

  5. 最大的地址数(n)是多少?在线工具如何计算HD钱包的余额,如果N数很大,则需要大量处理能力来计算总和。

总而言之,我想知道我应该使用哪种格式的派生路径以确保兼容性没有问题?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题1-3: 这是bip44的惯例,electrum并未遵循它,因此它与其他支持bip44的钱包不兼容。

问题4: 这个数字可以是无限的,如果您正在谈论某个父键的最大数字,答案是:

  

每个扩展密钥都有2 ^ 31个普通子密钥和2 ^ 31个强化子密钥   键   -https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki

根据bip44,如果您的应用程序设计导致大量地址,那是您自己的问题,需要通过更好的设计来解决,并且如果您指的是与其他钱包的兼容性,

  

地址间隙限制当前设置为20。如果软件达到20   连续使用未使用的地址,它期望没有使用的地址   超出这一点,并停止搜索地址链。   https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#Address_gap_limit