Бесплатный инструмент

Seed-фраза: генератор и проверка

Seed-фраза по стандарту BIP-39 — это 12 или 24 слова из словаря на 2048 слов, в которых закодирован случайный ключ и контрольная сумма. Последнее слово не произвольное: оно проверяет все предыдущие, поэтому фраза с опечаткой проверку не пройдёт.

Сгенерируйте новую фразу или вставьте свою — проверим контрольную сумму.

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

Как это устроено

1. СлучайностьБраузер берёт 128–256 бит из системного источника случайных чисел — того же, что используют для ключей шифрования. Обычный генератор случайных чисел здесь не годится: он предсказуем.
2. Контрольная суммаОт этих бит считается SHA-256, и первые несколько бит результата дописываются в хвост: по одному биту на каждые 32 бита случайности. Для 12 слов это 4 бита, для 24 — восемь.
3. СловаПолучившаяся цепочка режется на куски по 11 бит. Каждый кусок — это число от 0 до 2047, то есть номер слова в стандартном словаре. Отсюда и размер словаря, и то, что слов всегда кратно трём.
4. ПроверкаОбратный ход: слова превращаются в номера, номера в биты, от начала пересчитывается SHA-256 и сверяется с хвостом. Не сошлось — где-то опечатка или слово переставлено.

Частые вопросы

guest@404vpn:~$ cat seed-faq.md
[01] $ Почему последнее слово нельзя выбрать произвольно?
> Потому что в нём лежит контрольная сумма. Слова кодируют случайные биты, а в хвост дописываются несколько бит от SHA-256 этой же случайности. Если поменять любое слово, сумма перестанет сходиться — так кошелёк и понимает, что вы ошиблись при вводе.
[02] $ 12 или 24 слова — есть разница?
> Двенадцать слов это 128 бит случайности, двадцать четыре — 256. Перебрать не получится ни то, ни другое: 128 бит уже вне досягаемости любой техники. Двадцать четыре берут там, где важен запас на будущее и требования регламентов, но на практике опасность не в длине фразы, а в том, где она записана.
[03] $ Фраза уходит к вам на сервер?
> Нет. Генерация и проверка целиком происходят в браузере: ни слова, ни случайные биты страницу не покидают. Единственный запрос, который она делает, — обезличенный счётчик посещений, тот же, что на всех наших страницах: в нём есть адрес страницы и больше ничего. Отключите интернет — инструмент продолжит работать, и для реального кошелька так и нужно делать.
[04] $ Что такое 25-е слово или passphrase?
> Дополнительный пароль, который добавляется к фразе и даёт совершенно другой набор кошельков. Он не хранится нигде и не восстанавливается: забыли — потеряли доступ, даже зная все 24 слова. Здесь мы его не трогаем, это отдельная история.
[05] $ Инструмент показывает адрес кошелька?
> Нет, и намеренно. Вывод адресов требует ещё одного слоя вычислений и создаёт соблазн проверить на странице настоящую фразу. Здесь только сама фраза и её контрольная сумма.