Вы здесь

Seed фраза (мнемоническая фраза) – что такое и как работает

seed-фраза

Сид фраза («мнемонический код», «SEED») – это список последовательности слов для генерации приватных ключей в кошельке криптовалюты.

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

Мнемоническая фраза обычно составляет от 12 до 24 слов. А в словаре для генерации сид-фразы существует 2048 слов.

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

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

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

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

Обязательно читайте смежные статьи для того, чтобы лучше понимать о чем идет речь:

Для безопасной генерации SEED-фразы ОФФЛАЙН используйте этот сервис

Как генерируется мнемоническая фраза технически?

Существует три шага:

  1. Случайное число (энтропия)
  2. Энтропия переводится в слова (мнемонику)
  3. Из мнемонических слов создается фраза

seedУпрощенная схема генерации сид-фразы

1. Создание случайных чисел (энтропии)

энтропия сид фразыЭнтропия должна быть от 128 до 256 бит.

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

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

Лучше всего думать об этом числе как о последовательности битов (например 10011010010001...), как компьютеры хранят числа.

Примечание: бит (0 или 1) является наименьшей единицей хранения информации на компьютере.

Генерируемая энтропия должна быть кратна 32 битам, поскольку это позволит разделить энтропию на четные порции и преобразовать ее в слова в дальнейшем.

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

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

2. Энтропия переводится в слова (мнемонику)

Теперь, когда у нас есть энтропия, мы можем закодировать ее в слова.

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

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

checksum-seed

Затем мы разбиваем это на группы по 11 битов, преобразуем их в десятичные числа и используем эти числа для выбора соответствующих слов.

перевод энтропии в сид

В словаре есть 2048 слов.

И теперь у нас есть мнемонический код.

Примечание: 11- битное число может содержать десятичное число между 0-2047 (именно поэтому в словаре 2048 слов).

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

3. Из мнемонического кода создается SEED-фраза

Теперь, когда у нас есть наш мнемонический код, мы можем преобразовать его в нашу SEED-фразу.

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

мнемоническую фразу в сид

Необязательная парольная фраза (passphrase) позволяет изменять конечный результат.

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

мастер-ключИерархия ключей в криптовалюте

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

Кроме того, PBKDF2 также позволяет вам предоставить второй ввод, называемый «фразой-паролем» или «seed extension» вместе с данными, которые вы хотите хэшировать. Это позволяет вам создавать совершенно разные начальные числа из одной и той же мнемонической фразы.

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

PBKDF2  хеш-функция

Оцените статью: 
Средняя: 3.5 (2 оценки)

Категория: 

Хотите самым первым получать уникальную и важную информацию?
Добавляйте нас в закладки!
Подписывайтесь на наши проекты!
Аватар пользователя Антон Састрпцин
Автор: Антон Састрпцин Является старшим аналитиком фондового рынка ММВБ. Работает в сфере финансовых услуг с 2014 года. С 2016 года консультирует бизнесы в «финтех» отрасли. Специалист IT технологий.
Добавьте комментарий