- Главная
- / BIP39 по-русски
- / 12 или 24 слова в сид-фразе: что лучше и надёжнее
12 или 24 слова в сид-фразе: что лучше и надёжнее
Сид-фраза из 24 слов содержит 256 бит энтропии, а из 12 слов — 128, так что теоретически 24 слова надёжнее. На практике подобрать перебором нельзя ни ту, ни другую, а ключи биткоин-кошелька в обоих случаях построены на кривой secp256k1 с уровнем безопасности около 128 бит — независимо от длины фразы. Если фраза сгенерирована случайно и хранится в тайне, 12 слов достаточно. 24 слова оправданы, если посторонний может увидеть часть записи — например, на фотографии — или узнать все слова, но не их порядок. Ниже разберём, сколько бит несёт фраза каждой длины, сколько вариантов остаётся, если часть слов неизвестна, сколько слов создают популярные кошельки и какую длину выбрать. Как устроена сама фраза, рассказано в статье о том, что такое сид-фраза.
Сколько слов в сид-фразе
Каждое слово BIP39 обозначает 11-битное число — свой номер в списке, от 0 до 2047. Спецификация BIP39 допускает от 128 до 256 бит энтропии с шагом 32 бита. К энтропии дописывается контрольная сумма — первые ENT/32 бит её хеша SHA-256, где ENT — длина энтропии в битах. Отсюда пять допустимых длин фразы:
| Слов | Бит энтропии | Бит контрольной суммы | Всего бит | Вариантов последнего слова |
|---|---|---|---|---|
| 12 | 128 | 4 | 132 | 128 |
| 15 | 160 | 5 | 165 | 64 |
| 18 | 192 | 6 | 198 | 32 |
| 21 | 224 | 7 | 231 | 16 |
| 24 | 256 | 8 | 264 | 8 |
Последнее слово несёт оставшиеся биты энтропии и всю контрольную сумму. Во фразе из 12 слов это 7 бит энтропии и 4 бита суммы, поэтому, когда первые 11 слов выбраны, завершить фразу могут ровно 2⁷ = 128 слов из 2048. Во фразе из 24 слов — 3 бита энтропии и 8 бит суммы, и подходящих слов остаётся 8. После 23 слов abandon (так начинается публичный тестовый вектор BIP39) годятся только эти восемь:
art diesel false kite organ ready surface trouble
Подходящие последние слова для любого тестового начала фразы покажет калькулятор последнего слова. Из этой схемы следуют ещё две вещи:
- Контрольная сумма не добавляет секретности. Она вычисляется из энтропии, поэтому действительных фраз из 12 слов 2¹²⁸, а не 2048¹² = 2¹³².
- Сид у обеих длин одного размера. BIP39 пропускает слова через PBKDF2 — 2048 итераций HMAC-SHA512 — и получает 64-байтный сид. Длина фразы определяет лишь, сколько разных сидов возможно.
Если в записи 20 или 33 слова, это не BIP39: скорее всего, перед вами доля SLIP-39 — стандарта со своим списком из 1024 слов (у Trezor он раньше назывался Shamir Backup). А 12 слов из Electrum — фраза собственного формата Electrum: вместо контрольной суммы BIP39 у неё номер версии. Дальше речь идёт только о фразах BIP39.
Надёжнее ли 24 слова
Математически да: 2²⁵⁶ возможных фраз против 2¹²⁸. На практике разница почти ничего не меняет, и причин две.
Обе длины не подобрать перебором
2¹²⁸ — это около 3,4 × 10³⁸, а 2²⁵⁶ — около 1,16 × 10⁷⁷. Ни один злоумышленник не переберёт сколько-нибудь заметную часть ни тех, ни других вариантов. Trezor в разборе резервных копий из 12, 20 и 24 слов оценивает 12 слов в 128 бит безопасности — столько же, сколько даёт приватный ключ Bitcoin, — а о 256 битах 24 слов пишет, что это намного больше, чем нужно.
Кривая ограничивает безопасность уровнем около 128 бит
Сид — не единственный путь к кошельку. Биткоин-адресами управляют приватные ключи на кривой secp256k1. Стандарт SEC 2, который задаёт эту кривую, в таблице 1 оценивает её стойкость в 128 бит и поясняет, что это значит: решение задачи дискретного логарифмирования на кривой такого размера, как считается, требует около 2¹²⁸ операций. Злоумышленник, увидевший один из ваших публичных ключей, может атаковать этот ключ напрямую, и насколько это трудно, определяет кривая, а не сид.
Поэтому с 24 словами сид несравнимо труднее подобрать, чем любой отдельный ключ, но поднять стойкость ключа выше примерно 128 бит, которые даёт кривая, длина фразы не может. Фраза из 12 слов уже соответствует этому уровню.
Когда 24 слова действительно помогают
Длина начинает играть роль, когда злоумышленник — или вы сами — уже знает часть фразы. Тогда объём перебора зависит от того, сколько слов ещё неизвестно.
Сколько вариантов остаётся, если слова неизвестны
Каждое неизвестное слово увеличивает перебор в 2048 раз, а контрольная сумма затем отсеивает большинство комбинаций: 15 из 16 у фразы из 12 слов и 255 из 256 у фразы из 24 слов. Вот сколько кандидатов остаётся, если известно, на каких местах стоят недостающие слова:
| Неизвестных слов | 12 слов | 15 слов | 18 слов | 21 слово | 24 слова |
|---|---|---|---|---|---|
| 1 | 128 | 64 | 32 | 16 | 8 |
| 2 | 262 144 | 131 072 | 65 536 | 32 768 | 16 384 |
| 3 | 536 870 912 | 268 435 456 | 134 217 728 | 67 108 864 | 33 554 432 |
| 4 | 1 099 511 627 776 | 549 755 813 888 | 274 877 906 944 | 137 438 953 472 | 68 719 476 736 |
Числа точные, если среди неизвестных есть последнее слово, и средние в остальных случаях. Например, если стереть пятое слово в публичной тестовой фразе из 12 слов (11 раз abandon и about), проверку проходит 131 слово, а в 24-словном тестовом векторе (23 раза abandon и art) — 10. Проверка контрольной суммы требует одного вычисления SHA-256, поэтому медленный шаг PBKDF2 нужен только кандидатам, которые её прошли.
При одинаковом числе пропусков фраза из 24 слов оставляет меньше кандидатов, потому что её контрольная сумма вдвое длиннее. А если одно-два слова потеряли вы сами, перебор при любой длине по силам программам восстановления; как его провести, рассказано в статье о том, как найти и исправить ошибку в сид-фразе.
Всё решает число скрытых слов
Преимущество 24 слов проявляется, когда посторонний видит часть записи: одну колонку на фотографии, лист, на который удалось мельком взглянуть, или половину разделённой фразы. Тогда скрытой остаётся гораздо более длинная часть фразы:
| Что узнал злоумышленник | Фраза из 12 слов | Фраза из 24 слов |
|---|---|---|
| 8 слов | 4 неизвестных: около 1,1 × 10¹² кандидатов (2⁴⁰) | 16 неизвестных: около 3,7 × 10⁵⁰ (2¹⁶⁸) |
| Половину слов | 6 неизвестных: около 4,6 × 10¹⁸ (2⁶²) | 12 неизвестных: около 2,1 × 10³⁷ (2¹²⁴) |
| Все слова, но не их порядок | 12! = 479 001 600 перестановок (около 2²⁹) | 24! ≈ 6,2 × 10²³ перестановок (около 2⁷⁹) |
Перебрать около триллиона кандидатов — большая, но выполнимая работа: в 2⁸⁸ раз меньше, чем подбор целой фразы из 12 слов. А 2¹⁶⁸ вариантов не перебрать. В последней строке контрольная сумма сокращает перебор для 12 слов примерно до 30 млн перестановок, которые имеет смысл проверять дальше. Похожий довод приводит Trezor, объясняя, почему Model One по умолчанию создаёт 24 слова: при восстановлении на этой модели слова вводят на компьютере, и 24 слова делают этот процесс безопаснее.
Та же математика объясняет, почему делить фразу по словам — слабая защита. Каждая часть сужает перебор, и Trezor предупреждает: если хранить первые и последние 12 слов в разных местах, защита будет не такой, как при настоящем разделении секрета. Если резервную копию нужно хранить по частям, используйте доли SLIP-39 или мультиподпись, а не делите слова; оба способа разобраны в статье о том, как хранить сид-фразу.
Чем приходится платить за 24 слова
- Вдвое больше записи и проверок. Каждая бумажная копия, металлическая пластина и проверка резервной копии занимают вдвое больше времени, а каждое лишнее слово — ещё один шанс ошибиться при переписывании.
- Зато опечатки отсеиваются надёжнее. Случайная ошибка в одном слове проходит проверку контрольной суммы примерно в одном случае из 16 у фразы из 12 слов (4 бита суммы) и лишь в одном из 256 у фразы из 24 слов (8 бит). Это подтверждает моделирование 200 000 случайных ошибок в одном слове для каждой длины: незамеченными остались около 6 % ошибок в 12 словах и около 0,4 % в 24.
- Дольше ввод на аппаратном кошельке. Если слова вводят на экране самого устройства или его кнопками, набирать придётся вдвое больше.
- Меньше кошельков для восстановления. Не каждый кошелёк принимает 24 слова: Exodus пишет, что его секретные ключи всегда состоят из 12 слов, и в справке описывает восстановление только по 12 словам. Phantom создаёт 12 слов, но может импортировать фразу BIP39 из 24 слов.
Сколько слов создают популярные кошельки
Данные в таблице взяты из справки и документации самих разработчиков по состоянию на октябрь 2026 года, для Trezor — из того же разбора резервных копий. Называют фразу по-разному: в русской справке MetaMask это «секретная фраза для восстановления», у Ledger — «секретная фраза восстановления», у Exodus — 12-word secret key.
| Кошелёк | Длина по умолчанию | Другие варианты и примечания |
|---|---|---|
| Ledger (все устройства) | 24 слова, другой длины устройства не создают | При восстановлении принимают фразы из 12 и 18 слов, созданные другими кошельками, но пользоваться фразой, созданной не на устройстве Ledger, компания не рекомендует |
| Trezor Model One (снят с продажи) | 24 слова (BIP39) | 12 слов |
| Trezor Model T | 12 слов (BIP39) | 24 слова; SLIP-39 из одной или нескольких долей |
| Trezor Safe 3 | 12 слов до июня 2024 года, затем копия SLIP-39 из одной доли в 20 слов | BIP39 из 12 или 24 слов; SLIP-39 из одной или нескольких долей |
| Trezor Safe 5, Safe 7 | Копия SLIP-39 из одной доли в 20 слов | BIP39 из 12 или 24 слов; SLIP-39 из нескольких долей |
| MetaMask | 12 слов | — |
| Trust Wallet | 12 слов | Swift-кошельки вместо фразы используют ключ доступа (passkey) |
| Exodus | 12 слов | Всегда 12 |
| Coinbase Wallet | 12 слов | Вместо фразы для входа можно использовать почту, аккаунт Apple или Google либо ключ доступа (passkey) |
| Phantom | 12 слов | Импортирует фразы BIP39 из 24 слов |
| Electrum | 12 слов в формате Electrum | Собственный формат, 132 бита; фразы BIP39 Electrum не создаёт |
При создании кошелька в Trezor Suite можно выбрать формат резервной копии, отличный от стандартного для устройства. Доля SLIP-39 из 20 слов хранит 128-битный секрет, как и 12 слов BIP39: лишние слова несут служебные данные о долях и более длинную контрольную сумму — три слова, или 30 бит.
12 слов нельзя превратить в 24
BIP39 подаёт в PBKDF2 сами слова в качестве пароля, поэтому любое их изменение — в том числе двенадцать дописанных слов — даёт сид, никак не связанный с прежним. Это видно на двух публичных тестовых фразах. Обе получены из энтропии, состоящей из одних нулевых бит, но их первые адреса нативного SegWit по пути деривации BIP84 m/84'/0'/0'/0/0 без парольной фразы не имеют ничего общего:
12 слов abandon ×11 about → bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu
24 слова abandon ×23 art → bc1qzmtrqsfuaf6l6kkcsseumq26ukaphfj9skkug6
Обе фразы — опубликованные тестовые векторы, поэтому никогда не отправляйте средства на эти адреса. Чтобы сменить длину, создайте новый кошелёк с новой, только что сгенерированной фразой и переведите в него средства. То же говорят производители кошельков: Phantom отмечает, что фраза восстановления создаётся один раз и изменить её нельзя, а Trezor — что копию BIP39 нельзя преобразовать в SLIP-39: нужно создать новый кошелёк и перевести в него средства.
Парольная фраза — другой способ защиты
Если вы опасаетесь, что кто-то найдёт записанные слова, длина не поможет: укравший лист получит всю фразу целиком. Помогает парольная фраза BIP39. BIP39 подмешивает её при вычислении сида: любая парольная фраза открывает действительный, но другой кошелёк, а ваш — только правильная. Чем за это платят:
- Это второй секрет, который тоже нужно сохранить. Потеряете его — одни слова откроют только кошелёк без парольной фразы.
- Её должен поддерживать кошелёк, в котором вы будете восстанавливать доступ. Проверьте, что в приложениях и устройствах, где может понадобиться восстановление, есть поле для парольной фразы.
- Добавить её позже — значит создать новый кошелёк. Как и при смене длины, средства придётся переводить.
Сколько слов выбрать
Выбирайте длину по тому, чем может подвести ваша резервная копия, а не по тому, насколько внушительно звучит число:
- Обычный программный кошелёк: оставьте 12 слов, которые создало приложение. Реальные угрозы здесь — фишинг, вредоносные программы и небрежное хранение, и ни от одной из них длина не спасает.
- Аппаратный кошелёк: оставьте длину по умолчанию — например, 24 слова на Ledger или копию из 20 слов на новых Trezor Safe.
- Запись, которую могут частично увидеть, или восстановление через компьютер, как на Trezor Model One: выбирайте 24 слова. Такая фраза гораздо надёжнее, если посторонний подсмотрел часть слов или узнал все слова, но не их порядок. Но никакая длина не поможет, если вы вводите фразу в приложение кошелька на заражённом компьютере: он видит все слова по порядку.
- Крупные суммы или долгое хранение: 24 слова дают запас ценой более долгой записи. Против того, кто найдёт записанные слова, сильнее парольная фраза, а для резервной копии по частям подходят доли SLIP-39 или мультиподпись. Заранее продумайте и то, как доступ к средствам получат близкие: об этом рассказывает статья о наследовании криптовалюты.
- У вас уже 12 слов: оставьте их. Смена длины означает новый кошелёк и переводы в блокчейне, а выигрыш от неё невелик.
Какой бы ни была длина, фразу должен создать надёжный генератор случайных чисел на устройстве, которому вы доверяете. Генератор сид-фразы на этом сайте предназначен только для обучения на тестовых фразах.
Частые вопросы
Сколько слов может быть в сид-фразе?
По стандарту BIP39 — 12, 15, 18, 21 или 24 слова. Чаще всего кошельки создают 12 или 24 слова, а 15, 18 и 21 слово принимают не все: Ledger, например, при восстановлении предлагает только 12, 18 или 24 слова. 20 или 33 слова обычно означают долю SLIP-39, а не фразу BIP39.
Вдвое ли надёжнее 24 слова, чем 12?
Нет. Подобрать их в 2¹²⁸ раз труднее, а не вдвое. Но и фразу из 12 слов подобрать невозможно, а ключи secp256k1, которые стоят за биткоин-адресами, дают около 128 бит безопасности, поэтому против перебора обе длины на практике одинаково надёжны.
Почему Ledger создаёт 24 слова, а MetaMask — 12?
Каждый производитель сам выбирает длину по умолчанию. Обе длины стандартные для BIP39, поэтому любую из этих фраз можно восстановить в другом BIP39-кошельке, который принимает такую длину, хотя пути деривации могут отличаться.
Можно ли дописать к 12 словам ещё 12?
Нет. Сид вычисляется из самих слов, поэтому 24 слова — это уже другой кошелёк. К тому же набор, полученный дописыванием, обычно не проходит даже проверку контрольной суммы: у 24 слов она занимает 8 бит, и случайный набор проходит её лишь в одном случае из 256. Чтобы перейти на 24 слова, создайте новый кошелёк и переведите в него средства.
Как проверить контрольную сумму фразы?
Кошелёк проверяет её сам при восстановлении. Чтобы посмотреть, как работает проверка, введите публичную тестовую фразу на странице проверки сид-фразы. Настоящую фразу не вводите ни на одном сайте.