Рейтинг:0

Как работает восстановление аппаратного кошелька?

флаг ye

Я изучаю аппаратные криптовалютные кошельки и пытаюсь понять, как работает восстановление с технической точки зрения. Эти кошельки обычно предоставляют «начальное число для восстановления» из 24 слов, из которого можно восстановить кошелек. Что я хотел бы понять, так это то, как закрытые ключи для различных криптовалют могут быть восстановлены из этого одного начального числа, особенно с учетом того, что закрытые ключи генерируются после начального значения для восстановления.

DannyNiu avatar
флаг vu
a.k.a. Как работает генерация ключей + как генерировать PRNG.
Рейтинг:4
флаг tr

Ответ высокого уровня

Существует множество криптографических алгоритмов (хэши, коды аутентификации сообщений, шифры, генераторы псевдослучайных чисел...), которые в основном позволяют вам детерминистически преобразовывать некоторые произвольные данные в равномерно случайные данные (формально они псевдослучайные функции). Таким образом, в основном начальное число из 24 слов декодируется как строка байтов, которая затем преобразуется в равномерно случайные данные, которые затем интерпретируются как число, которое является закрытым ключом (это то, что вам нужно для авторизации транзакций).

Другими словами, если у вас есть мнемоника, вы можете получить закрытый(ые) ключ(и), используемый(ые) для авторизации транзакций.

Низкоуровневый ответ

Мнемоника из 24 слов преобразуется в 64-байтовое начальное число с помощью PBKDF2 (функция получения ключей, первоначально использовавшаяся для получения ключей из паролей). Для Биткойна это описано в БИП-39.

В частности, обратите внимание, что PBKDF2 не заботится о том, как была сгенерирована мнемоника, он просто получает строку байтов. По этой причине ничто не мешает другим криптовалютам получать ключи от той же мнемоники (если они не используют точный ту же процедуру, чтобы не создавать одинаковые ключи).

Затем это начальное число используется для генерации мастер-ключа, из которого может быть сгенерировано дерево пар ключей (чтобы одна и та же мнемоника могла генерировать большое количество адресов/открытых ключей). Главный ключ генерируется путем подачи начального числа в HMAC-SHA512 (функция аутентификации сообщения, хотя в данном случае не используется для аутентификации, а только для получения случайных данных) и получения двух 32-байтовых последовательностей. Первый интерпретируется как число (мастер-закрытый ключ), а второй — «мастер-чейн-код». Наконец, существует процедура получения дочернего закрытого ключа из родительского закрытого ключа, кода родительской цепочки и индекса, также с использованием HMAC-SHA512 аналогичным образом. Это описано в БИП-32.

Maarten Bodewes avatar
флаг in
Хех, вы меня заинтересовали своей историей, публикуя запутанные вещи о биткойнах, не участвуя на самом биткойн-сайте. Однако ваш сайт cryptoland.net (ссылка в вашем профиле) не работает.
флаг tr
@MaartenBodewes Я только недавно начал работать с криптовалютами (если быть точным, Zcash). Исправил ссылку в профиле, спасибо, что сообщили! (Этот домен больше не мой, кто-то сделал хорошее предложение)

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.