HD-кошелек (bip32) адреса получения пути - PullRequest
0 голосов
/ 03 июля 2018

Я создаю приложение, которому нужно сгенерировать новый адрес из предоставленного ключа 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. Я также обнаружил, что кошельки Electrum используют другую схему https://bitcoin.stackexchange.com/questions/36955/what-bip32-derivation-path-does-electrum-use/36956 в следующем формате. Он использует m / 0 / для получения адресов и m / 1 / для смены адресов.

  4. Какое максимальное количество (n) адресов? Как онлайн-инструменты рассчитывают баланс HD-кошелька, если число N достаточно велико, для вычисления суммы потребуется много вычислительной мощности.

В общем, мне интересно, какой формат пути деривации я должен использовать, чтобы не было проблем с совместимостью?

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 24 января 2019

вопрос 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

...