Восстановить seed-фразу: потерял 2-3 слова или перепутал порядок
Seed-фраза из 12 или 24 слов выглядит как простой список, но за ней стоит точная криптографическая математика. Если вы потеряли несколько слов или записали их в неправильном порядке, доступ к кошельку не потерян навсегда. Объясняем, как работает восстановление и каковы реальные шансы.
Каждый год к нам приходят десятки людей с одной и той же историей: seed-фраза была записана на бумаге, бумага намокла, часть слов смылась. Или фраза хранилась в заметках телефона, телефон разбился. Или человек записывал второпях и перепутал порядок двух-трёх слов. Хорошая новость в том, что большинство таких ситуаций решаемы. Плохая: не всегда и не без специализированного оборудования.
Что такое seed-фраза и почему она работает именно так
Seed-фраза, или мнемоническая фраза, придумана не как удобный способ запомнить пароль. За ней стоит стандарт BIP39, разработанный командой Bitcoin в 2013 году. Суть в следующем: ваш закрытый ключ, длинное число из 256 бит, которое математически определяет доступ ко всем вашим адресам, кодируется в набор обычных слов. Это сделано потому, что слова проще записать и сложнее перепутать с другим набором символов, чем длинную строку шестнадцатеричных знаков.
Словарь BIP39 насчитывает ровно 2048 слов. Они специально подобраны так, чтобы любые два слова различались хотя бы на 4 буквы в начале: это защита от ошибок при записи и прочтении. Стандарт определяет фразы длиной 12, 15, 18, 21 или 24 слова, но на практике 99% потребительских кошельков, MetaMask, Trust Wallet, Exodus, Phantom, используют либо 12, либо 24 слова.
Ключевой момент, который делает восстановление возможным: последнее слово в seed-фразе не случайно. Оно содержит контрольную сумму, то есть математически зависит от всех остальных слов. Программа, которая перебирает варианты, может мгновенно проверить, является ли данная комбинация слов математически корректной, даже не обращаясь к блокчейну. Только потом она проверяет, есть ли на соответствующем адресе средства. Это делает перебор очень быстрым при небольшом числе неизвестных.
Математика восстановления: сколько вариантов нужно перебрать
Потеряно одно слово
Это самый простой сценарий. Если вы не помните одно из слов, программа перебирает все 2048 вариантов из словаря BIP39 на каждой из позиций. При 12-словной фразе максимум перебора составляет 12 позиций умножить на 2048 слов, то есть около 24 тысяч попыток. Современный компьютер справляется с этим за секунды. При 24-словной фразе число попыток вдвое больше, но задача по-прежнему тривиальна. Если помните позицию пропавшего слова, всё ещё проще: нужно проверить ровно 2048 вариантов.
Потеряны два слова
Здесь пространство поиска растёт до 2048 в квадрате, то есть чуть более 4 миллионов комбинаций. Это уже не секунды, но и не годы. Хорошая видеокарта класса RTX 3090 или профессиональная A100 перебирает такие задачи за несколько часов, а в ряде случаев и быстрее, если часть ограничений известна. Например, если вы помните оба пропавших слова начинаются на определённую букву, задача сокращается многократно.
Контрольная сумма дополнительно фильтрует пространство: далеко не каждая комбинация из 2048 слов образует валидную seed-фразу. Проверка контрольной суммы отсекает примерно 97% невалидных вариантов немедленно, что ускоряет перебор в десятки раз.
Потеряны три слова
Важно понимать, что каждая дополнительная подсказка кратно сокращает время. Если вы помните, что одно из трёх пропавших слов начинается с "m" и содержит не более 5 букв, это сразу убирает большую часть кандидатов. Если примерно помните позицию хотя бы одного из слов, время сокращается ещё сильнее. Поэтому первое, что мы просим клиентов сделать: записать всё, что они помнят, даже если кажется, что это ерунда.
Перепутан порядок слов
Это особая задача. Если все слова известны, но порядок неверен, нужно перебирать перестановки. Математика здесь другая. Для 12 слов количество перестановок составляет 12 факториал, то есть около 479 миллионов. Это много, но всё ещё реально для мощного оборудования, особенно с учётом фильтрации по контрольной сумме. Для 24 слов число перестановок астрономическое и полный перебор невозможен в принципе.
Однако ситуация с перепутанным порядком крайне редко бывает полностью случайной. Обычно человек помнит, что переставил два конкретных слова, или не уверен в порядке трёх-четырёх слов, а остальные 20 стоят правильно. В таком случае задача немедленно становится решаемой: перебор ограниченного числа позиций при зафиксированных остальных.
Инструменты, которыми пользуются специалисты
Основной инструмент для восстановления seed-фраз в профессиональной среде: btcrecover. Это открытый проект, написанный на Python, который поддерживает BIP39, BIP44 и большинство деривационных путей, используемых современными кошельками, включая MetaMask, Exodus, Electrum, Ledger и другие. Он умеет работать с токенами, то есть вы указываете, какие слова точно известны и на каких позициях, какие позиции пустые, и какие слова могут стоять на этих позициях.
Для ускорения перебора на GPU специалисты используют hashcat с плагином для BIP39. Hashcat изначально был инструментом для взлома паролей, но его архитектура идеально подходит для любых задач перебора с контрольными суммами. На профессиональном кластере из нескольких A100 скорость перебора составляет сотни миллионов вариантов в секунду.
Кроме того, существуют коммерческые решения, которые мы используем в рамках закрытых соглашений с разработчиками. Они позволяют задавать лингвистические ограничения: если вы помните, что слово точно было английским и связанным с природой, алгоритм учитывает это при приоритизации перебора.
Знаете часть слов. Не знаете, с чего начать.
Опишите ситуацию нашему специалисту. Первичная оценка задачи бесплатна и занимает 15 минут.
Что нужно сделать прямо сейчас
Шаг первый: зафиксируйте всё, что помните
Откройте чистый документ и запишите всё, что вы помните о своей seed-фразе. Слова, которые помните точно, с указанием предполагаемой позиции. Слова, в которых не уверены. Любые ассоциации: "там было слово на букву А, связанное с растением". Слова, которые точно не входили в вашу фразу. Это критически важно: чем точнее вы опишете, что знаете и что не знаете, тем быстрее и дешевле будет восстановление.
Шаг второй: не пытайтесь самостоятельно что-то "попробовать"
Многие кошельки блокируют ввод после нескольких неудачных попыток, хотя это встречается реже на уровне seed-фразы, чем на уровне PIN. Большая проблема в другом: если вы запустите btcrecover сами, не имея опыта, вы, вероятнее всего, настроите его неверно и получите "не найдено" даже при существующем решении. Мы видели такие случаи: человек несколько недель перебирал варианты самостоятельно, потом приходил к нам, и мы находили ответ за два дня, просто правильно настроив параметры.
Шаг третий: не делитесь seed-фразой с незнакомыми людьми
Это звучит очевидно, но именно здесь кроется главная ловушка. В Telegram и на форумах существуют десятки мошенников, которые предлагают "восстановить seed-фразу за 10% от суммы" и просят прислать всё что вы помните, включая частичную фразу. Даже частичная информация может быть использована для кражи: если мошенник уже видел, что у вас на кошельке значительная сумма, он попытается использовать ваши подсказки в своих целях. Работайте только с организациями, готовыми подписать NDA до начала любых переговоров о содержании фразы.
Какова реальная стоимость восстановления
Честный ответ: стоимость зависит от сложности задачи. Одно пропавшее слово, остальные известны точно: это стандартная задача, которая решается за несколько часов. Два-три пропавших слова потребуют работы специализированного оборудования в течение нескольких дней. Полностью перепутанный порядок слов при 24-словной фразе без каких-либо дополнительных ограничений: честнее всего сказать, что такая задача находится за пределами того, что решаемо сегодня в разумные сроки.
В KarCrypto мы начинаем с бесплатной оценки задачи. Вы описываете ситуацию, не раскрывая саму фразу. Мы оцениваем математическую сложность, называем реалистичные сроки и стоимость. На крупных суммах работаем по модели "оплата за результат": фиксированный аванс на оборудование и процент от восстановленного. Если восстановить не получилось, сверх аванса вы не платите ничего. Это единственная честная модель для задач такого рода, потому что ни один специалист в мире не даст вам стопроцентную гарантию при трёх пропавших словах.
Когда время играет роль
Seed-фраза не "протухает": если вы потеряли слова год назад, задача ничуть не сложнее, чем если бы это случилось вчера. Криптографические ключи не меняются сами по себе. Активы на кошельке никуда не исчезают, пока к ним не обратился кто-то, знающий закрытый ключ. Но есть одно важное исключение: если вы публично упоминали адрес кошелька или если на вас было совершено нападение и есть основания полагать, что злоумышленник мог получить часть фразы, время имеет значение. В таких случаях нужно действовать быстро.
Кроме того, фраза от кошелька, который активно использовался и был скомпрометирован, требует иного подхода: сначала нужно убедиться, что к кошельку не было получено несанкционированного доступа, прежде чем тратить ресурсы на восстановление. Это тоже часть первичной диагностики.
Что делать, если кошелёк был аппаратным
Ledger и Trezor используют тот же стандарт BIP39, что и программные кошельки. Если вы потеряли seed-фразу от Ledger, но помните большую её часть, алгоритм восстановления идентичен. Единственное отличие: аппаратные кошельки требуют особого внимания к деривационному пути, то есть к тому, по какой формуле из seed-фразы получаются конкретные адреса. Разные кошельки используют разные пути. Если указать неверный путь, программа не найдёт адрес с балансом, даже если seed-фраза восстановлена верно. Поэтому важно знать, какой именно кошелёк и какую сеть вы использовали.
Если вы не помните точно, был ли кошелёк на Ethereum, Bitcoin или другой сети, это тоже решаемо: профессиональные инструменты умеют проверять несколько деривационных путей и сетей одновременно.
Часто задаваемые вопросы
Да, это вполне реально. Список BIP39 содержит 2048 слов, поэтому программа просто перебирает все варианты на каждой позиции и проверяет контрольную сумму. Один пропущенный слот восстанавливается за минуты с помощью btcrecover или аналогичного инструмента. Успех зависит от того, правильно ли вы помните остальные 11 или 23 слова и их порядок.
При двух потерянных словах комбинаций около 4 миллионов: GPU перебирает это за несколько часов. При трёх словах около 8 миллиардов вариантов, что уже требует профессионального оборудования и занимает от нескольких дней до нескольких недель. Каждая дополнительная подсказка о содержании или позиции пропавших слов кратно сокращает время перебора.
Если все слова известны, но порядок неверен, задача зависит от того, сколько именно слов стоят не на своих местах. Если вы подозреваете, что перепутали 2-4 конкретных слова, пространство поиска невелико и задача решаема быстро. Если порядок всей 12-словной фразы полностью неизвестен, это уже 479 миллионов перестановок: сложно, но возможно. Полностью случайный порядок 24 слов практически не поддаётся перебору.
Инструменты вроде btcrecover технически доступны, однако их правильная настройка требует понимания Python, форматов токен-файлов и деривационных путей конкретного кошелька. Ошибка в параметрах приводит к тому, что программа не найдёт решение, даже если оно существует. Кроме того, работа с частичной seed-фразой на подключённом к интернету компьютере несёт риск утечки данных. Профессиональный подход снижает оба риска.
Стоимость зависит от количества утерянных слов, типа кошелька и суммы активов. Одно пропавшее слово: стандартная задача с фиксированной стоимостью. Два-три слова: оплата за результат, то есть фиксированный аванс на оборудование и процент от восстановленного. Если восстановить не удалось, сверх аванса вы не платите. Первичная оценка задачи бесплатна и занимает около 15 минут.