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

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] $ Инструмент показывает адрес кошелька? ▸
> Нет, и намеренно. Вывод адресов требует ещё одного слоя вычислений и создаёт соблазн проверить на странице настоящую фразу. Здесь только сама фраза и её контрольная сумма.