Ср. Фев 28th, 2024

Сид-фраза, также известная как «мнемонический код» или «SEED», это ряд слов, используемых для создания приватных ключей в криптокошельке.

Эта мнемоническая последовательность, чаще всего включающая от 12 до 24 слов, создается при инициализации нового криптовалютного кошелька. Многие сохраняют ее на листе бумаги и хранят в безопасном месте.

«Мнемоника» — это методика запоминания, например, при помощи рифмовок, которая позволяет легче вспомнить нужную последовательность слов. Эта последовательность является ключом к вашему кошельку.

В сущности, ваш кошелек генерирует ключи и адреса на основе большого случайного числа, а мнемоническая фраза предоставляет простой способ записи этого числа.

Обычно в словаре для создания сид-фразы содержится 2048 слов.

Существуют различные протоколы (BIP), применяемые криптокошельками при работе с мнемоническими фразами:

BIP32 — подход к созданию дерева приватных ключей из основного (мастер) ключа.

BIP39 — способ превращения 128-256 бит случайных данных в 12-24 слова из определенного списка, которые затем конвертируются в 64-байтовый хэш.

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

Технический процесс формирования мнемонической фразы

Процесс включает в себя три этапа:

  1. Генерация случайного числа (энтропия).
  2. Преобразование этой энтропии в словесный ряд (мнемоника).
  3. Формирование фразы на основе мнемонических слов.

Генерация случайных числовых значений (энтропия)

Для формирования мнемонической фразы следует начать с генерации случайных чисел, известных как энтропия, которые служат основой для сид-фразы.

Под энтропией подразумевается уникальное случайное число, которое не было создано ранее и не будет повторено в будущем.

Можно представить это число как ряд битов (например, 10011010010001…), так как именно так информация хранится в компьютере.

Для справки: бит (со значениями 0 или 1) — это базовая единица данных в компьютере.

Создаваемая энтропия должна быть кратной 32 битам, чтобы легко преобразовывать ее в слова.

Ее размерность должна варьироваться в диапазоне от 128 до 256 бит, гарантируя уникальность и исключая возможность повторения случайных чисел двумя разными людьми.

Важно! При генерации энтропии используйте только надежные инструменты. Стандартные функции «случайности» в языках программирования могут быть недостаточно надежными для криптографических задач.

Конвертация энтропии в словесную форму (мнемоника)

Имея энтропию, можно перевести ее в словесный формат.

В начале мы прибавляем к энтропии контрольную сумму, что упрощает проверку на ошибки и повышает удобство для пользователя. Для формирования этой суммы энтропия проходит через алгоритм хеширования SHA256, обеспечивая уникальный «след» от изначальной энтропии.

После этого из хеша берется 1 бит контрольной суммы на каждые 32 бита энтропии и добавляется к ней.

Далее полученные данные разбиваются на блоки по 11 битов, которые конвертируются в десятичные значения. Эти десятичные значения указывают на конкретные слова из словаря, содержащего 2048 слов.

Таким образом формируется мнемоническая фраза.

Замечание: Число на 11 бит может принимать значения от 0 до 2047, отсюда и 2048 слов в словаре.

Замечание: Когда к каждым 32 битам энтропии добавляется 1 бит контрольной суммы, итоговое количество бит становится кратным 33, что удобно для деления на 11-битные блоки.

Преобразование мнемоники в SEED-последовательность

После получения мнемонической фразы, она может быть преобразована в SEED-фразу.

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

Добавление парольной фразы позволяет варьировать выходной результат.

Этот 64-байтовый хэш и есть ваша конечная SEED-фраза, которую можно использовать для генерации главного ключа иерархического кошелька.

PBKDF2 представляет собой хеш-функцию, созданную так, чтобы её обработка занимала много времени (она повторно хеширует данные множество раз). Это делает попытки взлома и использование мнемонической фразы для получения SEED-фразы более сложными.

Функция PBKDF2 также поддерживает добавление второго аргумента, известного как «парольная фраза» или «расширение SEED». Это предоставляет возможность получать разные SEED-фразы из одной мнемонической фразы.

Слова в мнемонической фразе выбираются из стандартизированного списка из 2048 слов по стандарту BIP39. Первые четыре буквы каждого слова в этом списке являются уникальными.

От admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

PHP Code Snippets Powered By : XYZScripts.com