Потеря пароля от Cosmos-кошелька — неприятная, но не всегда безнадёжная ситуация. Если у вас сохранился зашифрованный файл ключа, можно попытаться восстановить пароль локально. Инструмент btcrecover изначально создавался для Bitcoin, однако поддерживает формат Ethereum keystore, который часто совместим с Cosmos SDK keyring. Эта статья описывает полный процесс: от подготовки окружения до проверки найденного пароля. Материал предназначен только для законного восстановления собственных кошельков.
1. Когда btcrecover применим к Cosmos
Cosmos SDK и клиенты вроде gaiad или gaiacli часто хранят локальные ключи в зашифрованном JSON-файле. Такой файл обычно лежит в keyring-file и содержит параметры шифрования: cipher aes-128-ctr, kdf bcrypt, mac keccak256. Это очень похоже на Ethereum keystore, поэтому btcrecover может проверить пароль через режим Ethereum-кошелька.
Важно понимать ограничения:
- Если у вас есть seed-фраза, btcrecover не нужен: кошелёк восстанавливается из мнемоники.
- Если сохранился только адрес или публичный ключ, восстановить пароль невозможно.
- Для Keplr, Leap и других браузерных кошельков нужен экспорт зашифрованного vault или резервная копия расширения. Просто найти файл в браузере бывает сложно.
- Нестандартный формат keyring может потребовать ручного извлечения полей crypto.
2. Юридические и безопасностные границы
Используйте описанный метод только для собственных кошельков или при наличии письменного разрешения владельца. Восстановление чужих паролей незаконно.
Базовые правила безопасности:
- Работайте на офлайн-машине. Отключите сеть и используйте чистую операционную систему.
- Не загружайте файлы ключей, seed-фразы и словари паролей в облака и онлайн-сервисы.
- Сделайте резервные копии исходных файлов. Не изменяйте оригиналы.
- После восстановления сразу перенесите средства на новый кошелёк с новой seed-фразой.
3. Подготовка окружения
Для работы понадобятся Python 3, pip и git. Рекомендуется использовать отдельную папку и виртуальное окружение.
Пример команд:
git clone https://github.com/btcrecover/btcrecover.git
cd btcrecover

pip install -r requirements.txt
python btcrecover.py --help
Если btcrecover не запускается, проверьте версию Python и установленные зависимости. Для bcrypt и AES могут потребоваться дополнительные библиотеки, но официальный requirements.txt обычно содержит всё необходимое.
Создайте отдельную рабочую папку, например cosmos_recovery, и скопируйте туда файл ключа. Дальнейшие действия выполняйте только с копией.
4. Поиск и идентификация файла ключа Cosmos
Типичные расположения файлов Cosmos SDK:
~/.gaia/keyring-file/~/.gaiad/keys/~/.gaiacli/keys/~/.cosmos/keyring-file/
Файл может называться по адресу или имени ключа, например cosmos1...info. Откройте его текстовым редактором. Внутри должны быть поля cipher, ciphertext, cipherparams, iv, kdf, kdfparams, salt, cost, dklen, mac.
В Cosmos SDK эти поля часто находятся внутри объекта value.crypto. btcrecover же в режиме Ethereum keystore ожидает объект crypto на верхнем уровне. Поэтому файл нужно аккуратно преобразовать.
5. Преобразование в формат Ethereum keystore
Самый простой способ — извлечь вложенный объект crypto с помощью jq:
jq '.value.crypto' key.info > cosmos_keystore.json
Если jq не установлен, можно вручную скопировать содержимое value.crypto в новый JSON-файл. Главное — не менять значения ciphertext, salt, iv, mac и других параметров.
Проверьте, что в cosmos_keystore.json есть:
cipher: обычноaes-128-ctr

ciphertext: зашифрованный приватный ключcipherparams.iv: вектор инициализацииkdf: обычноbcryptkdfparams.salt,kdfparams.cost,kdfparams.dklenmac: контрольная сумма для проверки пароля
Если структура сильно отличается, режим Ethereum keystore может не сработать. В таком случае потребуется custom-скрипт или другая версия btcrecover.
6. Базовый запуск btcrecover
Подготовьте файл passwords.txt — по одному вероятному паролю на строку. Затем выполните команду:
python btcrecover.py --ethereum-keystore cosmos_keystore.json --passwordlist passwords.txt --threads 8
Где --threads 8 означает использование восьми потоков CPU. Укажите число, близкое к количеству ядер вашего процессора. Если btcrecover сообщает о неподдерживаемом формате, проверьте доступные опции через python btcrecover.py --help и убедитесь, что используется актуальная версия инструмента.
7. Стратегии перебора пароля
Успех восстановления зависит от энтропии исходного пароля и качества словаря.
Практичные подходы:
- Словарь: добавьте старые пароли, их варианты с заглавными буквами, цифрами и символами.
- Личные данные: имена, даты, клички, названия проектов, номера, годы.
- Токены: используйте
--tokenlist tokens.txt, чтобы комбинировать фрагменты. Например:Cosmos,atom,gaia,wallet,2021,!,_. - Опечатки: btcrecover умеет учитывать typos. Начните с
--typos 1или--typos 2, затем добавляйте--typos-case,--max-typosи другие опции. - Bcrypt cost: при cost 12 перебор идёт медленно. GPU не поддерживается, поэтому важны мощный CPU и разумное ограничение вариантов.
- Автосохранение: добавьте
--autosave progress.txt, чтобы продолжить с места остановки.
Для сложного случайного пароля полный brute force может быть нереалистичен. В таком случае btcrecover эффективен только при наличии хороших гипотез.
8. Пример пошагового сценария

- Скопируйте
.info-файл Cosmos в офлайн-папку. - Извлеките crypto:
jq '.value.crypto' key.info > cosmos_keystore.json. - Создайте
passwords.txtс 50–100 наиболее вероятными паролями. - Запустите:
python btcrecover.py --ethereum-keystore cosmos_keystore.json --passwordlist passwords.txt --threads 8 --autosave progress.txt. - Если пароль не найден, расширьте словарь, добавьте tokenlist и опции typos.
- При успехе btcrecover выведет найденный пароль. Сначала проверьте его на копии файла, не на оригинале.
9. Проверка пароля и доступ к средствам
После того как пароль найден, проверьте его через CLI Cosmos или через интерфейс кошелька. Например, можно попробовать открыть ключ командой gaiad keys show <name> --keyring-backend file и ввести найденный пароль.
Если доступ получен:
- Немедленно экспортируйте мнемонику или приватный ключ в офлайн-хранилище.
- Создайте новый кошелёк с новой seed-фразой.
- Переведите все активы на новый адрес.
- Удалите временные файлы, словари, логи и копии keyring.
10. Если btcrecover не помог
Проверьте следующие моменты:
- Файл не повреждён и содержит полный объект crypto.
- Формат действительно совместим с Ethereum keystore.
- Используется актуальная версия btcrecover.
- Словарь и токены достаточно реалистичны.
- Пароль не был слишком длинным и случайным.
Для нестандартных форматов может понадобиться собственный валидатор: он должен вычислять bcrypt, AES-128-CTR и MAC, а затем сравнивать результат. Используйте только проверенные open-source решения. Не доверяйте онлайн-сервисам, которые обещают взлом кошелька за деньги.
Заключение
btcrecover может помочь восстановить пароль от Cosmos-кошелька, если keyring использует Ethereum-совместимый формат и у вас есть зашифрованный файл ключа. Метод требует офлайн-среды, резервных копий и реалистичных гипотез о пароле. После восстановления доступа обязательно перенесите средства на новый кошелёк и больше не используйте старый пароль.