Если резервная карточка, текстовый файл или экспорт из CoinVault повреждён, а часть слов или букв стала нечитаемой, восстановление частично стертых слов мнемонической фразы CoinVault начинается с точной фиксации сохранившихся данных. Недостающие фрагменты нельзя просто «сгенерировать заново»: если потеряны случайные биты энтропии, их придётся восстановить из памяти, резервной копии или перебрать допустимые варианты.
Ниже — практический алгоритм для 12- и 24-словных фраз, повреждённых карточек, зашифрованных копий и аппаратных кошельков. Все проверки следует выполнять локально: никогда не вводите действующую seed-фразу в онлайн-генератор, чат, Telegram, облачную форму или сервис автоматического распознавания текста.
Что именно повреждено: карточка, файл или облачная копия
Прежде чем запускать перебор, определите слой, на котором произошло стирание:
- Физическая карточка или бумага. Часть надписей стёрта, но исходная карточка сохранилась. Это наиболее благоприятный сценарий: сохранившиеся слова можно сопоставить с официальным словарём BIP39.
- Текстовый файл, CSV, скриншот или резервная копия. Файл мог быть обрезан, перезаписан нулями или частично повреждён. Работать нужно с копией диска, а не с оригиналом.
- Зашифрованный контейнер CoinVault. Пароль от архива или учётной записи может быть утрачен отдельно от мнемонической фразы. Здесь btcrecover или hashcat помогают восстановить пароль контейнера, но не восстанавливают уничтоженные байты seed-фразы.
- Экран приложения. Иногда данные не стёрты физически, а повреждены кэш, база данных или интерфейс. Сначала попробуйте штатный экспорт или восстановление резервной копии, не сбрасывая приложение.
- Аппаратный кошелёк. Частично стёртая печатная копия не влияет на устройство, но само устройство обычно не позволяет повторно показать сохранённую фразу. Полную фразу придётся восстановить и использовать для повторного импорта.
Важно различать мнемоническую фразу, её дополнительную парольную фразу, sometimes called the 25th word, и зашифрованный файл резервной копии. BIP39-контрольная сумма проверяет основную фразу, но ничего не сообщает о дополнительной парольной фразе.
Первые действия: не потерять оставшиеся данные
- Остановите любые операции с кошельком. Если есть основания считать, что фраза уже была опубликована или передана третьему лицу, сначала переведите средства на новый кошелёк, созданный на доверенном устройстве.
- Не открывайте приложение заново и не сбрасывайте его. Сброс может удалить локальный кэш, расшифрованный экспорт или временные файлы, которые ещё можно восстановить.
- Создайте две рабочие копии. Для повреждённого накопителя используйте офлайн-образ через ddrescue или аналогичный инструмент в режиме чтения. Все эксперименты проводите только на копии.
- Сфотографируйте карточку при хорошем боковом освещении. Для металлической карточки полезны макросъёмка и свет под небольшим углом: иногда стёртые символы оставляют рельеф или остаточный контраст.
- Составьте таблицу позиций. Отметьте каждое слово как полностью читаемое, частично повреждённое или полностью стёртое. Не исправляйте орфографию по памяти и не переставляйте слова.
- Зафиксируйте метаданные. Нужны число слов, язык списка, дата создания, тип кошелька, сеть, derivation path, используемая дополнительная парольная фраза и сведения о том, где хранилась резервная копия.
Если исходный носитель опломбирован, на нём остались следы liquids или файл уже много раз перезаписывался, шансы на полное восстановление снижаются. Тогда используются сохранившиеся слова, ручные кандидаты и проверка по публичным адресам.
Определите формат: BIP39, BIP32 или проприетарный CoinVault
Перед восстановлением проверьте, является ли сохранённая строка стандартной BIP39-фразой:
- она состоит из 12, 15, 18, 21 или 24 слов;
- слова входят в официальный список BIP39;
- известная длина фразы известна;
- используемый язык списка совпадает с исходным.
Словари BIP39 существуют на нескольких языках. Если фраза была создана с английским списком, нельзя подставлять русские переводы: это полностью другая последовательность энтропии. Для типичной английской фразы используется файл english.txt; для другого языка нужен соответствующий официальный список.
BIP39-фраза кодирует случайную энтропию и короткую контрольную сумму. BIP32 или аналогичный стандарт определяет, какие публичные адреса будут сгенерированы из этой энтропии. Поэтому даже полностью правильная фраза может показать другой баланс, если при проверке использован не тот путь деривации.
Универсального метода для любой версии CoinVault нет. Если слова не принадлежат официальному списку BIP39, приложение использует собственный формат, либо на экране показана зашифрованная запись, а не seed-фраза. В таком случае не форсируйте BIP39-перебор: используйте документированный формат CoinVault или обращайтесь в поддержку, не отправляя саму фразу.
Быстрый выбор метода восстановления
| Состояние фразы | Оптимальный путь | Реалистичный результат |
|---|---|---|
| Нечитаемо только последнее слово | Восстановить его по BIP39-контрольной сумме | Обычно одна однозначная комбинация |
| В словах стёрто по одной-две буквы | Сопоставить видимые буквы со словарём и проверить checksum | Часто получается один или несколько кандидатов |
| Полностью стёрто одно среднее слово, последнее сохранилось | Перебрать это слово и отфильтровать варианты по checksum | Для 12 слов — до 128 вариантов, для 24 — до 8 |
| Полностью стёрто несколько слов | Добавить ограничения из памяти, адресов или зашифрованного кошелька | Вычислительно сложнее, часто требуются ручные подсказки |
| Фраза находится в зашифрованном файле | Восстановить пароль контейнера офлайн | Зависит от стойкости пароля |
| Цел только повреждённый файл | Работать с образом и carving-инструментами | Успех не гарантирован, особенно после TRIM |
| Доступен только аппаратный кошелёк без полной фразы | Восстановить фразу и повторно импортировать её в поддерживаемый кошелёк | Требуется полная корректная последовательность |
Этап 1. Восстановление стёртых букв в известных словах
1. Перенесите видимые символы без догадок
Создайте нумерованный список. Например:
1: слово читается полностью

2: ab???n? — длина известна, три буквы стёрты
3: слово полностью стёрто
4: ability — читается полностью
Если стёрты не отдельные буквы, а непрерывный фрагмент, отметьте его как ?. Если неизвестна даже длина слова, этот метод требует сначала определить возможные длины по расположению элементов карточки.
2. Получите официальный словарь офлайн
Загрузите список BIP39 заранее с официального репозитория bitcoin/bips или с проверенного зеркала. Сверьте контрольную сумму файла с несколькими независимыми источниками и только затем отключите интернет. Не используйте словари из рекламных сайтов, Telegram-каналов или неизвестных утилит.
3. Отфильтруйте кандидатов по видимым буквям
Каждое частично повреждённое слово можно преобразовать в шаблон: известные буквы сохраняются, а каждая отсутствующая заменяется на ?. Затем программа перебирает только слова из официального списка, совпадающие с этим шаблоном.
Ниже — минимальный офлайн-скрипт на Python. В pattern замените пример на свою последовательность:
Noneозначает полностью стёртое слово;?означает одну нечитаемую букву;- строки без
?должны точно совпадать со словом из словаря.
from itertools import product
from pathlib import Path
from mnemonic import Mnemonic
words = Path('english.txt').read_text(encoding='utf-8').split()
wordset = set(words)
assert len(words) == 2048 and len(wordset) == 2048
def expand(token):
if token is None:
return words
if '?' not in token:
return [token] if token in wordset else []
positions = [i for i, char in enumerate(token) if char == '?']
result = []
for replacement in product('abcdefghijklmnopqrstuvwxyz', repeat=len(positions)):
candidate = list(token)
for index, letter in zip(positions, replacement):
candidate[index] = letter
candidate = ''.join(candidate)
if candidate in wordset:
result.append(candidate)
return result
pattern = ['abandon', None, 'ability']
lists = [expand(token) for token in pattern]
total = 1
for candidates in lists:
total *= len(candidates)
if total > 5000000:
raise SystemExit('Слишком много комбинаций: добавьте ограничения по буквам')
checker = Mnemonic('english')
with open('valid_candidates.txt', 'w', encoding='utf-8') as output:
for phrase in product(*lists):
text = ' '.join(phrase)
if checker.check(text):
output.write(text + chr(10))

Пакет python-mnemonic и словарь должны быть заранее загружены из проверенных источников. Скрипт выводит только фразы с корректной BIP39-контрольной суммой, но не определяет, какая из нескольких фраз принадлежит вам. Для окончательного выбора нужен публичный адрес или зашифрованный файл кошелька.
Этап 2. Использование контрольной суммы для полностью стёртых слов
Контрольная сумма особенно полезна, когда стёрто целое слово. Ниже указано количество checksum-valid вариантов при стандартной BIP39-фразе, если остальные слова читаются точно:
| Число слов | Стерто только последнее | Стерто одно более раннее, последнее сохранено | Стерто одно более раннее и последнее |
|---:|---:|---:|---:|
| 12 | 1 | 128 | 16 384 |
| 18 | 1 | 32 | 1 024 |
| 24 | 1 | 8 | 64 |
Числа показывают, почему 24-словная фраза часто восстанавливается легче: её контрольная сумма содержит восемь проверочных бит, а у 12-словной — только четыре.
Если полностью стёрто сразу несколько слов, таблица уже не даёт небольшого набора. Здесь помогают:
- дополнительные буквы, уцелевшие на карточке;
- порядок и нумерация слотов;
- запомнившиеся тематические пары;
- адреса, ранее полученные от этого кошелька;
- xpub или fingerprint, сохранённые в журнале транзакций;
- зашифрованный файл кошелька как локальный проверочный оракул.
Тематические ассоциации слабее официального словаря: слова BIP39 не обязаны образовывать осмысленную фразу. Поэтому догадки следует считать дополнительными фильтрами, а не доказательством.
Этап 3. Восстановление из повреждённого цифрового файла
Если мнемоническая фраза находилась в .txt, .csv, изображении, базе данных или экспорте CoinVault, сначала определите, сохранился ли сам контейнер.
Текстовый файл или база данных
- Работайте с побайтовой копией диска или раздела.
- Проверьте свободные блоки, журналы файлов, временные файлы и предыдущие версии документа.
- Инструменты TestDisk и PhotoRec могут извлечь фрагменты, но часто потеряют имена и исходную структуру.
- Если сектор был перезаписан нулями или обрезан через TRIM, поиск сигнатуры seed-фразы может ничего не дать.
- Не запускайте chkdsk, fsck или средство «восстановления» на единственном оригинале: они способны изменить оставшиеся блоки.
Зашифрованный архив или резервная копия CoinVault
Здесь необходимо разделить две задачи:
- открыть контейнер и получить сохранённую фразу;
- восстановить стёртые слова внутри уже открытой фразы.
btcrecover подходит для проверки паролей кошельков и поддерживает BIP39-поиск в актуальных сборках. Синтаксис зависит от версии, поэтому сначала изучите локальную справку командой python btcrecover.py --help. Фразу и список кандидатов держите в файлах на изолированной машине, а не в истории командной строки.
hashcat применяют к локально извлечённому хешу пароля только для известного типа файла. Сначала определите формат через hashcat -h и соответствующий инструмент 2john; загружать исходный архив, приватный ключ или seed-фразу в онлайн-сервисы нельзя. Скрипты на Python или Pywallet также должны запускаться локально, из проверенного исходного кода и только с данными собственного кошелька.
Если фраза была зашифрована проприетарным форматом CoinVault, универсальный hashcat-режим может не подходить. В таком случае применяйте штатный восстановитель или формат, документированный разработчиком.
Облачная резервная копия CoinVault
Сначала попробуйте восстановить последнюю официальную копию из аккаунта или локального экспорта. Если пароль от учётной записи утрачен, восстановление пароля и восстановление seed-фразы — разные процедуры. Если данные были удалены на стороне сервиса, локальный офлайн-перебор физически удалённого файла не поможет.
При обращении в поддержку сообщайте тип устройства, версию приложения, дату и нечувствительные метаданные, но не отправляйте полную фразу, приватный ключ, код восстановления или пароль.
Если проблема связана с аппаратным кошельком
Современные устройства обычно не показывают сохранённую seed-фразу повторно: это ограничение снижает риск утечки. Если карточка стёрта, но устройство работает, продолжать пользоваться им можно только после того, как подтверждена доступность всех средств и создана безопасная копия фразы.
Если устройство утеряно или сломано:

- Восстановите полную BIP39-фразу из сохранившихся слов и резервных копий.
- Подготовьте поддерживаемый кошелёк на чистом устройстве.
- Импортируйте фразу и восстановите тот же derivation path.
- Сравните публичные адреса с историей старого кошелька.
- Только после этого переносите средства.
Для Bitcoin могут применяться пути m/44'/0'/0'/0/0, m/49'/0'/0'/0/0 или m/84'/0'/0'/0/0, а для Ethereum часто используется m/44'/60'/0'/0/0. Это лишь распространённые варианты: доверяйте фактическому пути CoinVault, а не общим примерам.
Как проверить кандидата и выбрать правильную фразу
BIP39 checksum подтверждает структуру, но не владельца кошелька. Правильный кандидат подтверждается публичными данными.
1. Деривируйте адреса офлайн
Используйте проверенный инструмент деривации на изолированной машине. Для каждого кандидата вычислите первые адреса получения и изменения. Сравните их с адресами, которые отображались в CoinVault или фигурируют в истории транзакций.
2. Проверьте несколько адресов
Один совпавший адрес — сильный сигнал, но желательно проверить несколько адресов receive и change. Для Ethereum сверьте checksum-формат адреса и сеть mainnet или testnet. Bitcoin-адрес должен совпадать не только по символам, но и по типу: legacy, nested SegWit или native SegWit.
3. Используйте зашифрованный кошелёк как оракул
Если сохранился файл wallet.dat или другой локальный кошелёк, btcrecover может проверить, какой кандидат формирует ожидаемые адреса или открывает кошелёк. Это выполняется локально и не требует отправки средств.
4. Не импортируйте фразу в облачный кошелёк для проверки
Если одновременно проверяются десятки или тысячи вариантов, загрузка их в сетевое приложение создаёт ненужный риск. Сначала используйте офлайн-деривацию, а после однозначного подтверждения восстанавливайте кошелёк на чистом устройстве.
Если ни один кандидат не даёт известных адресов, проверьте дополнительную парольную фразу, derivation path, тип сети и возможность того, что сохранившиеся слова принадлежат другой фразе. Не выбирайте вариант наугад: неверная seed-фраза может открыть пустой кошелёк.
Что делать после успешного восстановления
- Восстановите кошелёк на проверенном устройстве и проверьте адреса ещё раз.
- Если фраза когда-либо была загружена в онлайн-сервис, считайте её скомпрометированной: создайте новую фразу, перенесите средства и обновите адреса в контрактах и сервисах.
- Для Ethereum проверьте разрешения токенов и отзовите ненужные approvals, если закрытый ключ мог быть раскрыт.
- Сделайте несколько резервных копий на разных носителях: офлайн-файл, физическая карточка и зашифрованная копия в другом месте.
- Храните дополнительную парольную фразу отдельно от seed-фразы, например в надёжном менеджере паролей.
- Запишите версию кошелька, сеть, derivation path, дату создания и тип резервной копии.
- Проведите контрольное восстановление: восстановите фразу на отдельном устройстве и сравните первые адреса, не переводя на них крупную сумму.
Дополнительные сценарии для 12/24 слов, зашифрованных кошельков и аппаратных устройств разобраны в общем руководстве Восстановление криптокошельков.
Частые вопросы
Поможет ли контрольная сумма восстановить стёртое слово?
Она отфильтровывает неверные комбинации и иногда позволяет получить единственный вариант, особенно если стёрто последнее слово. Но checksum не хранит резервную копию энтропии и не гарантирует правильность владельца.
Почему 24 слова восстанавливаются легче, чем 12?
У 24-словной BIP39-фразы восемь проверочных бит, а у 12-словной — четыре. При полностью стёртом последнем слове стандартная checksum позволяет однозначно восстановить его; при стёртом более раннем слове остаётся небольшое число checksum-valid кандидатов.
Можно ли отправить стёртые слова ChatGPT или онлайн-сервису?
Нет. Любая загруженная фраза потенциально раскрывает полный контроль над активами. Локальный офлайн-инструмент безопаснее и не требует доверять политике хранения данных стороннего сервиса.
Что делать, если CoinVault использует нестандартные слова?
Не подменяйте их словами BIP39. Проверьте документацию конкретной версии, формат экспорта и возможность штатного восстановления. Проприетарный формат требует собственного парсера или поддержки разработчика.
Итог
Наиболее надёжный путь к восстановлению стертых слов мнемонической фразы CoinVault выглядит так: сохранить оставшиеся данные, определить точный формат, получить официальный словарь BIP39, отфильтровать кандидатов по видимым буквам и checksum, а затем подтвердить правильность по публичным адресам или локальному зашифрованному кошельку. Чем больше исходных слов и букв сохранилось, тем меньше вариантов и выше шанс полного восстановления; если стёрты большие блоки данных, checksum не заменит настоящую резервную копию.
