- Главная
- / BIP39 по-русски
- / Генератор сид-фразы
Генератор сид-фразы BIP39 онлайн
Создайте случайную мнемоническую фразу BIP39 из 12, 15, 18, 21 или 24 слов. Слова выбирает криптографический генератор случайных чисел вашего браузера, а последнее слово содержит контрольную сумму.
—
Как генератор создаёт сид-фразу
Сид-фраза (её также называют seed-фразой, мнемонической фразой или фразой восстановления) — это кошелёк в виде слов: из неё вычисляются все приватные ключи и адреса (подробнее — в статье что такое сид-фраза). При каждом нажатии кнопки генератор действует по спецификации BIP39 с помощью библиотеки @scure/bip39:
- Энтропия. Генератор берёт свежие случайные биты из
crypto.getRandomValues()вашего браузера: 128 бит для 12 слов и до 256 бит для 24. Это и есть секрет; поле «Энтропия (hex)» показывает его в шестнадцатеричном виде. - Контрольная сумма. Энтропия хешируется алгоритмом SHA-256, и к ней дописываются первые ENT/32 бит хеша, где ENT — длина энтропии: 4 бита для 128 бит, 8 бит для 256.
- Номера слов. Все биты делятся на группы по 11. Каждая группа — число от 0 до 2047, то есть номер слова в списке из 2048 слов.
- Слова. По каждому номеру берётся слово из списка выбранного языка.
Поскольку контрольная сумма стоит в конце, последнее слово случайно лишь отчасти. В фразе из 12 слов оно содержит 7 случайных бит и 4 бита суммы, поэтому после любых 11 слов фразу завершают только 128 слов из 2048; в фразе из 24 слов 3 случайных бита и 8 бит суммы оставляют 8 подходящих последних слов. Благодаря сумме кошелёк отвергает большинство опечаток, а придуманные человеком наборы слов обычно её не проходят. Подробнее о том, почему нельзя придумывать сид-фразу самому (на английском).
12 или 24 слова: что меняет длина
Каждые дополнительные 32 бита энтропии добавляют один бит контрольной суммы и три слова. Сумма полностью определяется энтропией, поэтому возможных фраз ровно столько же, сколько значений энтропии.
| Слов | Энтропия | Контрольная сумма | Всего бит | Возможных фраз |
|---|---|---|---|---|
| 12 | 128 бит | 4 бит | 132 | 2128 |
| 15 | 160 бит | 5 бит | 165 | 2160 |
| 18 | 192 бит | 6 бит | 198 | 2192 |
| 21 | 224 бит | 7 бит | 231 | 2224 |
| 24 | 256 бит | 8 бит | 264 | 2256 |
Уже 12 слов делают перебор невозможным: 2128 — это около 3,4 × 1038 фраз, а 128 бит соответствуют уровню безопасности кривой secp256k1, на которой построены ключи Bitcoin и Ethereum. 24 слова дают запас на случай долгого холодного хранения. Кошельки чаще всего создают 12 или 24 слова; фразы из 15, 18 и 21 слова поддерживаются не везде, поэтому проверьте свой кошелёк заранее.
На каком языке создавать фразу
Генератор предлагает все десять официальных списков BIP39: английский, японский, корейский, испанский, китайский (упрощённый и традиционный), французский, итальянский, чешский и португальский. Русского списка в стандарте нет. Для настоящего кошелька выбирайте английский: сама спецификация BIP39 отмечает, что подавляющее большинство кошельков поддерживает только его, и настоятельно не рекомендует другие списки.
Язык нельзя сменить потом: сид вычисляется из самих слов, а не из энтропии, поэтому одна и та же энтропия, записанная испанскими и английскими словами, откроет два разных кошелька. В списке слов BIP39 с транскрипцией и переводом у каждого английского слова есть произношение и перевод на русский, а первые четыре буквы любого слова уникальны — это удобно при проверке записи.
Как пользоваться генератором безопасно
Генератор работает прямо во вкладке браузера и после загрузки страницы продолжает работать без интернета. Он подходит для обучения, проверки кошельков и программ. Но фраза на экране доступна всему, что запущено в том же браузере и на том же компьютере: расширениям, другим скриптам и вредоносным программам. Для кошелька с реальными деньгами:
- Используйте аппаратный кошелёк. Он создаёт слова внутри устройства и показывает их на своём экране, так что они не попадают в компьютер.
- Или компьютер, который никогда не подключается к интернету, с проверенной программой-кошельком.
- Никогда не вводите фразу кошелька со средствами на сайтах, включая этот, и не копируйте её: другие программы могут читать буфер обмена, а некоторые системы хранят его историю.
Что сделать после генерации
- Запишите фразу от руки, пронумеровав слова по порядку, и сверьте каждое слово со списком. Не фотографируйте её и не храните в файле, почте или облачных заметках.
- Спрячьте запись на бумаге или металле отдельно от устройства; сравнение способов хранения есть в статье как хранить сид-фразу.
- Проверьте восстановление до первого перевода: восстановите кошелёк по записанной фразе на сброшенном устройстве или во втором приложении и убедитесь, что первый адрес для получения совпадает.
Проверка по тест-вектору BIP39
Спецификация BIP39 ссылается на официальные тест-векторы в python-mnemonic, эталонной реализации стандарта; любая библиотека BIP39 должна их воспроизводить. Первый вектор начинается со 128 нулевых бит:
- Энтропия (hex)
- 00000000000000000000000000000000
- Мнемоническая фраза
- abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
- Сид с парольной фразой TREZOR
- c55257c360c07c72029aebc1b53c05ed0362ada38ead3e3e9efa3708e53495531f09a6987599d18264c1e1c92f2cf141630c7a3c4ab7c81b2f001698e7463b04
- Корневой ключ BIP32
- xprv9s21ZrQH143K3h3fDYiay8mocZ3afhfULfb5GX8kCBdno77K4HiA15Tg23wpbeF1pLfs1c5SPmYHrEpTuuRhxMwvKDwqdKiGJS9XFKzUsAF
Почему фраза заканчивается словом about: первые 121 бит нулевые, поэтому первые 11 номеров равны 0 (abandon). Последняя группа — это оставшиеся 7 нулевых бит и 4 бита контрольной суммы; SHA-256 от 16 нулевых байтов начинается с 0x37 (в двоичном виде 0011 0111), значит, сумма равна 0011, а последний номер — 3, то есть about. Генератор не принимает энтропию на вход; чтобы увидеть вектор, вставьте фразу в конвертер сид-фразы в приватный ключ с парольной фразой TREZOR и сравните сид и корневой ключ.
Другие инструменты
Генератор сид-фразы — частые вопросы
Можно ли использовать генератор для настоящего кошелька?
Генератор сделан для обучения, тестов и проверки других программ. Фраза создаётся на вашем устройстве, но веб-страница делит браузер с расширениями и другими скриптами, а на компьютере может оказаться вредоносная программа. Для реальных денег создавайте сид-фразу на аппаратном кошельке или на компьютере без интернета и никогда не вводите фразу кошелька со средствами ни на одном сайте, включая этот.
Работает ли генератор без интернета?
Да, после того как страница полностью загрузилась и кнопка «Сгенерировать фразу» работает. Можно отключить сеть, создать фразу, записать её и закрыть вкладку до повторного подключения. Но отключённый интернет не делает обычный компьютер изолированным: программы, которые уже на нём есть, всё равно видят слова на экране.
Сколько слов выбрать: 12 или 24?
При хорошем источнике случайности надёжны оба варианта. 12 слов несут 128 бит энтропии, что соответствует 128-битному уровню безопасности кривой secp256k1, на которой построены ключи Bitcoin и Ethereum. 24 слова дают 256 бит и запас прочности для долгого хранения. Фразы из 15, 18 и 21 слова поддерживают не все кошельки, поэтому сначала проверьте свой.
Можно ли выбрать 12 слов из списка самому?
Не стоит. Человек выбирает слова далеко не случайно, и такую фразу проще подобрать. Кроме того, случайный набор из 12 слов проходит проверку контрольной суммы лишь в одном случае из 16, а набор из 24 слов — в одном из 256. Стандарт BIP39 предназначен для случайности, созданной компьютером, а не для придуманных людьми фраз.
Может ли у двух людей получиться одна и та же фраза?
На практике нет. Возможных фраз из 12 слов 2¹²⁸ (около 3,4 × 10³⁸), из 24 слов — 2²⁵⁶, поэтому при исправном криптографическом генераторе случайных чисел совпадение невероятно. Реальные риски — слабая случайность и небрежно хранимые копии фразы.
Можно ли добавить к фразе парольную фразу (25-е слово)?
Не в этом генераторе: он создаёт только слова. Парольная фраза BIP39 применяется, когда слова превращаются в сид, поэтому её задают в кошельке. Любая парольная фраза открывает действительный, но другой кошелёк, так что без точной парольной фразы одни слова средства не восстановят.