- Главная
- / BIP39 по-русски
- / Парольная фраза BIP39: что такое «25-е слово» сид-фразы
Парольная фраза BIP39: что такое «25-е слово» сид-фразы
Парольная фраза BIP39 — необязательное дополнение к сид-фразе, которое задаёт сам владелец. Её называют «25-м словом»: самые длинные сид-фразы состоят из 24 слов, а парольная фраза как будто дописывается следующей. На деле это не слово из списка, а любая строка — слово, предложение или набор символов. В интерфейсах Trezor и Ledger она называется passphrase, в Electrum — seed extension, «расширение сида». Если вы ещё не знаете, как устроена сама сид-фраза, начните со статьи что такое сид-фраза.
Как парольная фраза попадает в сид
Стандарт BIP39 превращает слова в 512-битный сид функцией PBKDF2, и парольная фраза входит в её соль:
сид = PBKDF2-HMAC-SHA512(
пароль = слова сид-фразы (UTF-8, NFKD),
соль = "mnemonic" + парольная фраза (UTF-8, NFKD),
итераций = 2048,
длина = 64 байта
)
Если парольной фразы нет, вместо неё берётся пустая строка и соль равна просто “mnemonic”. Из сида по BIP32 получается главный ключ, а из него по путям деривации — все ключи и адреса. Поэтому другая парольная фраза меняет не один адрес, а весь кошелёк.
Это хорошо видно на официальных тестовых векторах BIP39: все они рассчитаны с парольной фразой TREZOR. Публичная тестовая фраза abandon abandon … about (одиннадцать слов abandon и about) с парольной фразой TREZOR даёт сид, который начинается с c55257c3, а без парольной фразы или с trezor строчными буквами получаются совсем другие сиды. Проверить это можно в конвертере сид-фразы в приватный ключ: введите тестовую фразу и измените в парольной фразе одну букву — сменятся все адреса. Только с тестовыми фразами: фразу кошелька с деньгами не вводят ни на одном сайте.
Любая парольная фраза открывает кошелёк
У слов сид-фразы есть контрольная сумма, поэтому кошелёк замечает большинство опечаток в словах (что делать, если он не принимает фразу, — в статье неверная сид-фраза). У парольной фразы контрольной суммы нет: по BIP39 каждая парольная фраза даёт действительный сид, а значит, и рабочий кошелёк. Поэтому опечатка не вызывает сообщения об ошибке — открывается другой кошелёк, скорее всего пустой. Trezor прямо предупреждает: Trezor Suite не может отличить неверную парольную фразу от верной, кошелёк которой просто пуст.
Кошелёк-обманка
Из этого же свойства следует то, что BIP39 называет правдоподобным отрицанием (plausible deniability). В кошельке без парольной фразы или под второй парольной фразой держат небольшую сумму, а основные средства — под настоящей. Если вас заставят открыть кошелёк, можно показать подставной: как поясняют авторы SLIP-39, доказать, что он не настоящий, невозможно. Переоценивать приём не стоит: о парольных фразах знают и злоумышленники, а Ledger называет такую защиту ограниченной.
Регистр, пробелы и Юникод
Слова сид-фразы кошельки обычно приводят к нижнему регистру, а парольную фразу — нет: она учитывается посимвольно. Единственное преобразование по стандарту — нормализация Юникода NFKD. Один и тот же видимый символ можно закодировать по-разному, и NFKD приводит такие варианты к одной форме, но регистр, пробелы и алфавит не трогает:
| Отличие при вводе | Тот же кошелёк? |
|---|---|
| TREZOR и trezor | нет |
| пробел в начале или в конце | нет |
| два пробела подряд вместо одного | нет |
| кириллическая «Е» вместо латинской E | нет |
| «ё» вместо «е» | нет |
| «é» одним символом или «e» со знаком ударения | да |
| неразрывный пробел вместо обычного | да |
Trezor отдельно напоминает, что пробел — тоже символ. Расхождения в пробелах уже приводили к реальным проблемам: в 2018 году выяснилось, что Electrum схлопывал повторные пробелы в парольных фразах BIP39 и отбрасывал пробелы по краям, поэтому получал другой кошелёк, чем другие программы. Ошибку исправили, а нынешний Electrum предупреждает о таких пробелах: старые версии из-за неё создают другой кошелёк.
Надёжнее всего ограничиться латинскими буквами, цифрами и обычными знаками — печатными символами ASCII. Trezor Suite поддерживает стандартный набор ASCII, а SLIP-39 допускает в парольной фразе только печатные символы ASCII (коды 32–126). Кириллица коварна ещё и двойниками: русские «а», «е», «о», «р», «с», «х» выглядят как латинские, но это другие символы. Русского списка слов в BIP39 нет, сама сид-фраза почти всегда английская (словарь с переводом и транскрипцией помогает с ней работать), и парольная фраза на русском только добавит путаницы.
Как её вводят Trezor, Ledger и Electrum
| Кошелёк | Название | Где вводить |
|---|---|---|
| Trezor | passphrase | на устройстве (Safe 7, Safe 5, Safe 3, Model T) или в Trezor Suite; у Model One — только в Suite |
| Ledger | passphrase | на устройстве: временно или с привязкой ко второму PIN-коду |
| Electrum | seed extension | в приложении: флажок Extend this seed with custom words |
Trezor. Функция по умолчанию выключена. Устройство не хранит парольную фразу, поэтому её вводят каждый раз, когда открывают этот кошелёк. Длина — до 128 символов, на Model One — до 50. Trezor советует по возможности вводить её на самом устройстве: всё, что набрано на компьютере или телефоне, может перехватить вредоносная программа. Изменить, удалить или восстановить парольную фразу нельзя.
Ledger. Парольная фраза — до 100 символов, с учётом регистра. Её вводят на устройстве как временную (действует, пока Ledger включён) или привязывают ко второму PIN-коду: при включении выбранный PIN определяет, какие счета откроются. Ledger предупреждает, что вводить парольную фразу на компьютере или смартфоне нельзя, а сама компания её не хранит и не резервирует. Привязка к PIN не заменяет запись: после трёх неверных попыток ввода PIN устройство сбрасывается, и счета восстанавливают из сид-фразы.
Electrum. При создании или восстановлении кошелька кнопка Options открывает окно с флажком Extend this seed with custom words, а при создании приложение ещё и просит повторить расширение. Для фраз BIP39 это обычная парольная фраза BIP39. У собственных фраз Electrum формула другая: в соли стоит “electrum” вместо “mnemonic”, а расширение перед расчётом приводится к нижнему регистру и очищается от лишних пробелов. Electrum предупреждает, что расширение нужно сохранить наряду с самим сидом.
Включение парольной фразы не переносит средства. Как подчёркивает Ledger, открывается отдельный набор счетов с новыми адресами, и он пуст. Кошелёк без парольной фразы остаётся на месте и по-прежнему открывается одними словами, поэтому деньги переводят обычной транзакцией.
Как хранить парольную фразу
- Запишите её посимвольно: регистр, пробелы, знаки — чётко и печатными буквами.
- Храните отдельно от слов: ни одно место не должно содержать оба секрета, но вы и наследники должны суметь найти каждый. Потеря любого из них — потеря средств.
- Держите запись офлайн. Правила из статьи как хранить сид-фразу относятся и к парольной фразе.
- Проверьте до пополнения. Откройте кошелёк заново по записанной парольной фразе и убедитесь, что попали в тот же кошелёк. Запишите его первый адрес получения: по нему потом сразу видно, что открыт нужный кошелёк. Как пройти восстановление целиком, рассказано в статье как восстановить кошелёк по сид-фразе.
- Убедитесь, что кошелёк для восстановления её поддерживает: вводить парольную фразу BIP39 умеют не все приложения.
Когда она помогает, а когда добавляет риск
Парольная фраза помогает, если:
- кто-то нашёл или сфотографировал запись слов: без парольной фразы он откроет пустой или подставной кошелёк;
- слова хранятся там, где их теоретически могут увидеть другие, например в банковской ячейке или у родственников;
- нужен кошелёк-обманка на случай принуждения.
Она добавляет риск, если:
- существует только в памяти: забытую парольную фразу никто не восстановит;
- наследники о ней не знают — для них средства потеряны;
- она слабая: имя или дата рождения плохо защищают от того, у кого уже есть слова, ведь каждую попытку перебора замедляют лишь 2048 итераций PBKDF2; Trezor советует выбирать парольную фразу по-настоящему случайно;
- её набирают на заражённом компьютере.
Ledger называет парольную фразу продвинутой функцией, а у Trezor она по умолчанию выключена. Если вы не готовы надёжно хранить два секрета и объяснить наследникам, как ими пользоваться, хорошо хранимая сид-фраза без парольной фразы надёжнее.
Чем она отличается от PIN-кода и пароля приложения
| Парольная фраза BIP39 | PIN-код устройства | Пароль приложения | |
|---|---|---|---|
| Участвует в вычислении ключей | да | нет | нет |
| Нужна при восстановлении на новом устройстве | да | нет, задаётся новый | нет, задаётся новый |
| Что защищает | сам кошелёк, даже если слова найдены | доступ к конкретному устройству | данные в конкретном приложении |
| Если забыли | средства под ней недоступны | сброс и восстановление по словам | переустановка и восстановление по словам |
PIN-код и пароль приложения — замки на конкретном устройстве. Парольная фраза — часть самого кошелька: без неё сид-фраза на любом устройстве откроет другой кошелёк.
Частые вопросы
Почему парольную фразу называют 25-м словом?
Самые длинные сид-фразы BIP39 состоят из 24 слов, а парольная фраза как бы дописывается к ним. Но это не слово из списка: у неё нет контрольной суммы, а длину ограничивает только кошелёк — у Ledger, например, это 100 символов.
Можно ли восстановить забытую парольную фразу?
Нет. Trezor и Ledger не хранят парольные фразы пользователей, и их поддержка её не восстановит. Остаётся вспоминать варианты и пробовать их в своём кошельке. Сайты и «сервисы восстановления», которые просят слова, — верный способ потерять и остальное.
Можно ли добавить парольную фразу к существующему кошельку?
Можно, но она откроет новый пустой кошелёк, а старый без парольной фразы останется доступен по одним словам. Средства нужно перевести обычной транзакцией. Если слова могли попасть в чужие руки, надёжнее создать кошелёк с новой сид-фразой.
Можно ли сделать парольную фразу на русском?
BIP39 допускает любые символы Юникода, но это лишний риск: Trezor Suite поддерживает стандартный набор ASCII, SLIP-39 допускает только печатные символы ASCII, а кириллицу легко спутать с похожими латинскими буквами. Используйте латиницу, цифры и знаки.
Нужно ли вводить парольную фразу каждый раз?
У Trezor — да: устройство её не хранит. У Ledger временную парольную фразу вводят после каждого включения, а при привязке ко второму PIN-коду нужные счета открывает этот PIN.