Телефон утонул, приложение исчезло вместе с телефоном, а криптовалюта осталась доступна благодаря листку с двенадцатью английскими словами. Выглядит как фокус с подозрительно простым секретом. Но монеты внутри слов никто не прятал. Сид-фраза позволяет заново вычислить ключи, которыми владелец распоряжается средствами. Сами переводы и состояние счетов хранит блокчейн.
Механика строится на повторяемых вычислениях. При создании кошелька программа получает случайные данные и записывает в виде слов. Из фразы затем выводит исходный секрет, а из секрета целое дерево ключей. Совместимый кошелёк на другом устройстве повторит расчёты и получит те же ключи и адреса. Для обычного кошелька BIP-39 понадобятся правильные слова, дополнительная парольная фраза, если вы её задавали, и совместимые правила получения адресов. Старый телефон для восстановления не нужен.
Сначала разберитесь, какой секрет вы сохранили
Я бы начал с проверки резервной копии, пока кошелёк ещё открывается. Наличие записи «пароль от кошелька» ничего не гарантирует. Под одним бытовым словом скрываются несколько разных механизмов, а ошибка обнаруживается обычно после потери устройства.
| Что перед вами | Для чего служит | Что даёт при восстановлении |
|---|---|---|
| Сид-фраза, или seed phrase | Кодирует исходные случайные данные в последовательность слов | Позволяет заново получить связанные с фразой ключи |
| Обычный приватный ключ | Создаёт цифровые подписи для операций, которые контролирует данный ключ | Возвращает доступ в пределах конкретного ключа, но не восстанавливает всё дерево кошелька |
| PIN аппаратного кошелька | Защищает доступ к конкретному устройству | Не заменяет резервную фразу и не нужен для её восстановления на другом устройстве |
| Локальный пароль приложения | Защищает сохранённые на устройстве секреты | Сам по себе не восстанавливает ключи после утраты локальных данных |
| Дополнительная парольная фраза BIP-39, или passphrase | Участвует в вычислении исходного секрета вместе с сид-фразой | Обязательна для доступа к кошельку, который создали с её участием |
Таблица описывает самостоятельное хранение ключей. При облачном восстановлении роль пароля может отличаться. Для доступа к биржевому аккаунту действуют правила биржи.
Проверьте слова штатной функцией проверки резервной копии, если кошелёк её поддерживает. Следуйте инструкции своей модели, а не сайту «проверки seed». Не стирайте единственный рабочий кошелёк ради эксперимента. Полноценную проверку можно провести на запасном совместимом устройстве, сравнив заранее записанный адрес при одинаковых настройках. Если задавали дополнительную парольную фразу, проверяйте доступ именно с её участием.
Сохраните название программы, стандарт копии, сети, типы счетов и нестандартные пути получения адресов. Сведения пригодятся, если новая программа покажет ноль. Материал предназначен для законной работы с собственными кошельками. Соблюдайте законы своей страны, особенно России, и правила сервисов. Не применяйте описанные механизмы для несанкционированного доступа, слежки, взлома или незаконного обхода ограничений.
Как 128 бит превращаются в 12 обычных слов
Для фразы BIP-39 из 12 слов требуется 128 бит исходной энтропии, для 24 слов требуется 256 бит. Энтропия характеризует непредсказуемость выбора. При качественном генераторе 128 случайных бит дают 2 в степени 128 возможных вариантов. Английские слова появляются позже как удобная форма записи машинных данных.
Дальше кошелёк вычисляет SHA-256 от исходных данных и берёт несколько первых бит результата как контрольную сумму. Для 12 слов добавляет 4 бита, для 24 слов добавляет 8. Полученную последовательность разбивает на группы по 11 бит. Каждая группа задаёт число от 0 до 2047, которое указывает на слово в фиксированном словаре из 2048 элементов.
Арифметика получается прозрачной. Для короткой фразы 128 + 4 = 132 бита, а 132 / 11 = 12 слов. Для длинной фразы 256 + 8 = 264 бита, а 264 / 11 = 24 слова. Стандарт допускает также фразы из 15, 18 и 21 слова. Словарь всем известен, секретом остаётся конкретная последовательность.
Контрольная сумма помогает заметить ошибку, но не исправляет фразу и пропускает часть опечаток. Равномерно случайная последовательность из 12 слов проходит проверку с вероятностью 1 из 16, из 24 слов с вероятностью 1 из 256. Сообщение «фраза допустима» не подтверждает, что кошелёк ваш. Последнее слово содержит и случайные биты, и биты контрольной суммы, поэтому называть его отдельным «проверочным словом» неверно.
Порядок слов имеет значение, повторяющиеся слова допустимы, а переводить английскую фразу на русский нельзя. Для вычислений важен точный текст, а не смысл. Слова нужны человеку, чтобы переписать секрет с меньшим риском ошибки, чем длинную строку шестнадцатеричных символов.
Совет «придумайте двенадцать слов, которые легко запомнить» я считаю опасным. Человек выбирает предсказуемые сочетания, поэтому фразу должен формировать кошелёк с криптографически стойким генератором. Правильно созданные 12 слов уже защищены от практически осуществимого полного перебора. Удлинение до 24 слов увеличивает пространство вариантов, но не помогает против фотографии листка или фишинговой формы.
От одной фразы к сотням адресов
Сид-фраза и seed различаются. Фраза состоит из слов, seed представляет собой 64 байта данных. Чтобы получить seed, BIP-39 применяет PBKDF2-HMAC-SHA512 с 2048 итерациями. Фраза поступает в функцию как пароль. Второй параметр, соль, состоит из строки mnemonic и дополнительной парольной фразы. Без дополнительного секрета остаётся только mnemonic. Текст нормализуется по правилам Unicode NFKD.
Одинаковые слова и дополнительная фраза дают одинаковые 64 байта на любом совместимом устройстве. Длина результата не означает, что короткая фраза получила 512 бит случайности. Алгоритм преобразует данные, но не добавляет независимый случайный секрет.
По схеме BIP-32 из seed получают главный приватный ключ и код цепочки, дополнительный параметр вычислений. Алгоритм использует родительский ключ, код цепочки и номер потомка, создавая дочерние ключи. Операцию повторяют на следующих уровнях. Получается иерархический детерминированный, или HD-кошелёк. Иерархический означает структуру из ветвей, детерминированный означает повторяемый результат.
Представьте пронумерованные ящики внутри шкафов. Программа находит ключ, повторяя маршрут. Для биткоин-счёта Native SegWit по BIP-84 первые два адреса получения соответствуют таким путям.
m/84'/0'/0'/0/0
m/84'/0'/0'/0/1
Буква m обозначает корень дерева. Значение 84' выбирает схему BIP-84, следующее 0' обозначает Bitcoin, ещё одно 0' указывает на первый счёт. Затем 0 выбирает ветвь адресов получения, а последний номер задаёт конкретный адрес. Нумерация начинается с нуля. Апострофы обозначают усиленное получение дочерних ключей, при котором для расчёта требуется приватный ключ родителя.
Кошельку достаточно исходного секрета и правил вычисления вместо миллиона независимых ключей. Старая резервная фраза восстанавливает даже адреса, созданные после записи копии. Из приватного ключа программа получает публичный, затем формирует адрес по правилам сети и типа счёта. Приватный ключ подписывает операцию, публичные данные позволяют проверить подпись без раскрытия секрета.
Восстановив адреса, программа проверяет данные блокчейна. В Bitcoin ищет непотраченные выходы транзакций, доступные восстановленным ключам. В Ethereum запрашивает состояние счетов и данные токенов. Ключи можно вычислить без интернета, для актуального баланса потребуется связь с сетью. Сервер производителя с персональной таблицей «двенадцать слов → ваш баланс» не нужен.
Обещание «12 слов восстановят всё в любом приложении» неверно. BIP-39 не гарантирует поддержку всех монет, типов адресов и путей. Программа может открыть другую ветвь дерева или прекратить поиск истории слишком рано. BIP-44, например, предусматривает остановку после 20 последовательных неиспользованных адресов во внешней цепочке. При необычном использовании адресов автоматический поиск способен пропустить средства.
При нулевом балансе сравните известный адрес, сеть, тип счёта и путь. Если адрес совпал, проверьте синхронизацию и отображение токена. Не вводите слова в десяток сервисов. Адресная книга и локальные настройки не обязаны возвращаться вместе с ключами. Отдельно импортированный приватный ключ тоже не становится частью исходной сид-фразы.
Есть и границы самого формата. Electrum создаёт собственные фразы, которые нельзя автоматически считать BIP-39 лишь потому, что перед вами знакомые английские слова. У Trezor встречаются резервные копии SLIP-39 из 20 слов, для которых нужна поддержка другого стандарта. В кошельке с несколькими обязательными подписями одна фраза может восстановить только одного подписанта. Для полного доступа понадобятся остальные необходимые ключи и данные о схеме подписей.
Почему «службе поддержки» так нужны ваши слова
Дополнительная парольная фраза BIP-39 меняет seed и всё дерево ключей. Название «двадцать пятое слово» условно, секрет не обязан состоять из одного слова из словаря. Опечатка, другой регистр или лишний пробел открывают другой, обычно пустой кошелёк. Алгоритм не сверяется с сервером правильных паролей, поэтому не сообщает об ошибке.
Если дополнительная фраза применялась, одних 12 или 24 слов недостаточно. Производитель не сможет сбросить потерянный секрет. Стойкая дополнительная фраза защищает при краже основной записи, но сама требует надёжной копии. Я бы включал такой режим только после продуманной проверки обоих компонентов. Смена дополнительной фразы открывает другой кошелёк, средства туда автоматически не переезжают.
Разницу между защитой устройства и защитой резервной копии хорошо показывает фишинговая рассылка от 9 сентября. Злоумышленники получили доступ к стороннему почтовому провайдеру Brevo и отправили письмо от имени Trezor примерно на 347 тысяч адресов подписчиков. Письмо пугало якобы критической уязвимостью и вело к загрузке приложения, которое просило резервную фразу кошелька. По заявлению Trezor, собственные системы и устройства компании инцидент не затронул. Число получателей письма не означает число украденных кошельков.
Мошеннику не требуется ломать защищённый чип. Получив достаточные секреты, злоумышленник вычисляет ключи на своём устройстве и подписывает переводы без PIN владельца. Письмо может прийти через настоящую инфраструктуру рассылки, но знакомый отправитель не делает запрос двенадцати слов допустимым.
Доверенный кошелёк действительно просит фразу при восстановлении, которое вы начали самостоятельно. Сотруднику поддержки, боту и сайту «синхронизации баланса» слова не нужны. Используйте процедуру ввода своей модели. Перенос аппаратной фразы в совместимое приложение технически возможен, но подвергает секрет угрозам компьютера.
Передали постороннему сид-фразу, считайте запись скомпрометированной. Создайте кошелёк с новой независимо сгенерированной фразой на доверенном устройстве и переведите доступные активы из затронутых счетов и сетей. Смена PIN, пароля или восстановление старых слов на новом устройстве ключи у злоумышленника не отзовёт.
Я предпочитаю читаемую физическую копию с защитой от кражи, воды и огня. Фотографии, переписка с собой и облачные заметки добавляют места, откуда секрет могут похитить. Как хранить сид-фразу с учётом бытовых угроз, мы разбирали отдельно. Но даже металлическая пластина бесполезна, если на ней неверный порядок слов.
Двенадцать слов работают потому, что кошелёк способен заново вычислить ключи и найти связанные с ними средства в блокчейне. Проверьте резервную копию до потери устройства, сохраните сведения о настройках и отдельно позаботьтесь о дополнительной парольной фразе, если используете такую защиту. Главный риск для владельца начинается там, где удобный механизм восстановления превращается в добровольную передачу доступа постороннему.
Вопросы и ответы о сид-фразе
Можно ли восстановить криптокошелёк без старого телефона?
Да, если сохранились сид-фраза и дополнительная парольная фраза, когда такая защита применялась. Понадобится совместимое приложение или аппаратный кошелёк с поддержкой нужной сети и правил получения адресов. Прежний телефон, номер SIM-карты и PIN старого устройства для восстановления по сид-фразе не требуются.
Что делать, если сид-фраза потеряна, но кошелёк ещё открывается?
Не удаляйте приложение и не сбрасывайте устройство. Некоторые программные кошельки позволяют повторно показать фразу после проверки пароля, аппаратные устройства обычно не раскрывают уже сохранённую фразу. Если получить резервную копию нельзя, создайте новый кошелёк, надёжно сохраните и проверьте новую фразу, затем переведите средства, пока старый кошелёк позволяет подписывать операции.
Можно ли восстановить кошелёк только по адресу или истории переводов?
Нет. Адрес и история переводов помогают найти средства в блокчейне, но не позволяют вычислить приватный ключ практически осуществимым способом при корректной криптографии. Для распоряжения средствами нужны соответствующие секреты. Обещание вернуть доступ исключительно по публичному адресу должно насторожить.
Почему после ввода правильной сид-фразы кошелёк показывает нулевой баланс?
Причиной может быть другая сеть, тип счёта, путь получения адресов или пропущенная дополнительная парольная фраза. Иногда приложение ещё не загрузило историю либо не отображает нужный токен. Сравните восстановленный адрес с известным старым адресом. Допустимая контрольная сумма подтверждает корректность формата фразы, но не принадлежность кошелька вам.
Нужно ли заново записывать сид-фразу после каждого перевода?
Нет. В HD-кошельке прежняя фраза позволяет получить и новые ключи, которые программа создала после записи резервной копии. Баланс и история операций меняются в блокчейне, а исходный секрет остаётся прежним. Исключение составляют отдельно импортированные ключи или другие кошельки со своими фразами, для которых нужны собственные резервные копии.
Можно ли открыть одну сид-фразу на двух устройствах одновременно?
Да. При одинаковой дополнительной парольной фразе и настройках совместимые кошельки получат те же ключи. Средства при этом не удваиваются, оба устройства управляют одними активами. Каждое дополнительное устройство, на котором хранятся секреты, добавляет возможность их утечки.
Почему в сид-фразе повторяется слово и нужно ли его заменить?
Повторение допустимо. Каждое слово обозначает отдельную группу битов, поэтому одинаковые группы дают одинаковые слова. Записывайте последовательность ровно так, как показал кошелёк. Самостоятельная замена слова изменит исходные данные и может сделать фразу недопустимой или привести к другому кошельку.
Нужно ли менять 12 слов на 24 ради безопасности?
Правильно сгенерированная фраза BIP-39 из 12 слов содержит 128 бит энтропии и защищена от практически осуществимого полного перебора. Фраза из 24 слов увеличивает пространство вариантов, но не спасает от фишинга, вредоносной программы или кражи записи. Просто дописать ещё 12 слов к существующей фразе нельзя. Для перехода обычно создают новый кошелёк и переводят средства.
Можно ли изменить сид-фразу, сохранив прежние адреса?
В обычной схеме BIP-39 фразу нельзя заменить как пароль от сайта, сохранив прежнее дерево ключей. Новая независимо созданная фраза ведёт к другим ключам и адресам. Если старая фраза раскрыта, создайте новый кошелёк и переведите доступные средства. Смена PIN или пароля приложения не лишит постороннего доступа по старым словам.
Просит ли настоящая поддержка кошелька сид-фразу для проверки?
Сотруднику поддержки не нужны ваши слова для диагностики баланса, обновления программы или проверки транзакции. Ввод фразы допустим в предусмотренной процедуре восстановления доверенного кошелька, которую вы начали самостоятельно. Не отправляйте слова в чат, письмо, боту или форму «проверки кошелька», даже если обращение выглядит официальным.