Я создаю приложение, которому нужно сгенерировать новый адрес из предоставленного ключа XPUB
.
Например xpub6CUGRUonZSQ4TWtTMmzXdrXDtypWKiKrhko4egpiMZbpiaQL2jkwSB1icqYh2cfDfVxdx4df189oLKnC5fSwqPfgyP3hooxujYzAu3fDVmz
Я использую кошелек Electrum и ключ, предоставляемый этим приложением.
Мое приложение позволяет пользователям добавлять свои собственные ключи xpub, поэтому мое приложение сможет генерировать новые адреса, не влияя на конфиденциальность пользователей, поскольку ключи xpub
используются только моим приложением и не предоставляются публично.
Итак, я ищу способ правильно генерировать новые адреса, я нашел несколько библиотек, однако я не уверен насчет пути деривации, как он должен выглядеть?
Рассмотрим следующий пример пути
![enter image description here](https://i.stack.imgur.com/7jgkj.png)
Является ли путь деривации скорее соглашением, чем правилом?
Bitcoin first external first 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 достаточно велико, для вычисления суммы потребуется много вычислительной мощности.
В общем, мне интересно, какой формат пути деривации я должен использовать, чтобы не было проблем с совместимостью?
Буду признателен за любую помощь.