Как реализовать протокол аутентификации биткойн-адреса (BitID)?

Bit-ID — это открытый протокол, обеспечивающий простую и безопасную аутентификацию на основе криптографии с открытым ключом. Я пытаюсь реализовать этот протокол в дротике, используя флаттер, и я застрял на пути вывода HD.

HD-структура

  1. объединить представление индекса с прямым порядком байтов с URI.
  2. Вычислите хеш SHA256 результата.
  3. взять первые 128 бит хеша и разбить его на четыре 32-битных числа A, B, C, D (каждое с прямым порядком байтов)
  4. Установите старшие биты чисел A, B, C, D в 1.
  5. Получите узел HD m/13'/A'/B'/C'/D' в соответствии с BIP32.

В руководстве по интеграции Digi-ID (расширение протокола в блокчейне Digibyte) приведен пример для тестирования. Я успешно вычислил результат хеширования, но я застрял в преобразовании хеша в пути bip32.

Тестирование

      BIP39 seed: myth glimpse mystery abstract embark net faint hospital catch hint develop state
Callback URI: digiid://digiid.digibyteprojects.com/callback?x=c6140375e5bae71e
Index: 0
Hash result: 460ebbfd1df7410106d62d41f802f769bc00db825e9cf8c649cb069dec35e8fb
BIP32 path: m/2147483661/4256894534/2168583965/3241006598/3925279480
Digi-ID address: DJDAkjie6nrW6RpFZSTpNUXsZ9JE2x6p1o

Может ли кто-нибудь объяснить преобразование из хэша в пути BIP-32? Было бы полезно, если бы объяснение было в дротике.

0 ответов

Другие вопросы по тегам