我正在创建一个应用程序,需要从提供的 XPUB key 生成新地址。
例如xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz
我正在使用 Electrum 钱包和此应用程序提供的 key 。
我的应用程序允许用户添加自己的 xpub key ,因此我的应用程序将能够生成新地址,而不会影响用户隐私,只要 xpub
key 仅由我的应用程序使用而不暴露向公众公开。
所以我正在寻找一种正确生成新地址的方法,我找到了一些库,但是我不确定派生路径,它应该是什么样子?
考虑以下路径示例
推导路径更多的是一种约定而不是规则吗?
比特币第一个外部第一个 m/44'/0'/0'/0/0
这是有效路径吗?我在这里找到了https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki我还发现 Electrum 钱包使用另一个架构 https://bitcoin.stackexchange.com/questions/36955/what-bip32-derivation-path-does-electrum-use/36956采用以下格式。它使用 m/0/来接收地址,使用 m/1/来更改地址。
地址的最大数量 (n) 是多少?在线工具如何计算HD钱包的余额,如果N数很大,则需要大量的处理能力来计算总和。
总而言之,我想知道我应该使用什么格式的导出路径才不会出现兼容性问题?
如果有任何帮助,我将不胜感激。
最佳答案
问题1-3: 这是 bip44 约定,electrum 不遵循它,因此它与支持 bip44 的其他钱包不兼容。
问题4: 数量可以是无限的,如果您正在谈论某个父键的最大数量,答案是:
Each extended key has 2^31 normal child keys, and 2^31 hardened child key -https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
如果你的应用程序设计导致大量地址,那是你自己的问题,你需要通过更好的设计来处理它,如果你指的是与其他钱包的兼容性,根据bip44,
Address gap limit is currently set to 20. If the software hits 20 unused addresses in a row, it expects there are no used addresses beyond this point and stops searching the address chain. https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki#Address_gap_limit
关于blockchain - HD钱包(bip32)地址推导路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51152264/