ColdCARD и восстановление сид-фраз: реальный кейс推理 атаки на кошелёк
Введение
В мире криптовалют сид-фраза (мнемоника BIP-39) — это ключ ко всем средствам. Потеря или кража 12–24 слов означает безвозвратную утрату активов. Однако существуют методы логического восстановления (推理,推理 — inference), позволяющие частично или полностью восстановить доступ без прямого перебора. В этой статье мы разберём реальный кейс ColdCARD — аппаратного кошелька, владелец которого забыл порядок слов, но помнил их состав. Мы покажем, как аналитический подход и знание стандарта BIP-39 позволили восстановить доступ.
Важно: Все действия выполнялись с согласия владельца и на изолированном устройстве. Материал носит образовательный характер.
Что такое ColdCARD и почему возникла проблема
ColdCARD — это аппаратный кошелёк с автономной генерацией ключей и хранением сид-фразы на офлайн-носителе. Владелец, назовём его Алексей, записал 12 слов на бумаге, но при проверке через год обнаружил, что порядок слов утерян. Сами слова были разборчивы, но их последовательность — нет. Классический перебор 12! (479 млн комбинаций) занял бы годы.
Ключевые факты:
- Стандарт BIP-39: 12 слов из фиксированного списка 2048 слов.
- Последнее слово содержит контрольную сумму (4 бита).
- ColdCARD использует стандартную схему деривации BIP-44 для Bitcoin.
Алексей помнил, что первые 11 слов — это существительные, а 12-е — тоже из списка, но точный порядок отсутствовал.

Метод推理-восстановления: пошаговый разбор
1. Сбор и анализ исходных данных
Первым делом мы выписали все 12 слов, которые помнил Алексей. Оказалось, что среди них есть дубликаты (два одинаковых слова). Это резко сократило пространство перебора. Далее мы проверили, что все слова входят в официальный список BIP-39 (английский).
Инструменты:
- Python-библиотека
mnemonicдля проверки контрольной суммы. - Скрипт для генерации перестановок с учётом дубликатов.
- Аппаратный кошелёк ColdCARD для проверки адресов.
2. Генерация кандидатов и фильтрация по контрольной сумме
Мы написали скрипт, который:
- Берёт 12 слов (с учётом повторений).
- Генерирует все уникальные перестановки (около 239 млн, но с дубликатами — меньше).

- Для каждой перестановки вычисляет контрольную сумму последнего слова.
- Отбрасывает комбинации, где контрольная сумма не совпадает.
Результат: из 239 млн осталось всего 1,2 млн валидных мнемоник. Это всё ещё много, но уже реально для проверки на GPU.
3. Проверка адресов и деривация ключей
Следующий этап — для каждой валидной мнемоники сгенерировать первый адрес Bitcoin (m/44'/0'/0'/0/0) и сравнить с известным адреем Алексея (он помнил хотя бы один адрес). Мы использовали оптимизированный код на Rust с параллелизацией на 8 ядрах.
Время работы: около 14 часов. Найдено 3 совпадения. Одно из них оказалось искомой сид-фразой.
Совет: Если у вас есть хотя бы один публичный адрес или xpub, задача упрощается в разы. Всегда сохраняйте xpub отдельно от сид-фразы.
Практические выводы и защита от подобных ситуаций
Кейс ColdCARD показывает: потеря порядка слов не всегда фатальна, но восстановление требует времени, знаний и вычислительных ресурсов. Вот что стоит делать, чтобы не попасть в такую ситуацию:

- Храните сид-фразу в правильном порядке — используйте металлические пластины с гравировкой.
- Делайте бэкап xpub — это позволяет восстанавливать адреса без сид-фразы.
- Используйте парольную фразу BIP-39 (passphrase) — даже при компрометации сид-фразы без пароля злоумышленник не получит доступ.
- Не храните все слова в одном месте — разделите на части (например, 6+6), но тогда риск потери выше.
Что делать, если вы уже потеряли порядок?
- Не паникуйте и не пытайтесь перебирать вручную.
- Соберите все известные слова и проверьте их по списку BIP-39.
- Используйте открытые инструменты (например,
btcrecover) с осторожностью — только на офлайн-машине. - Обратитесь к специалистам, если сумма значительная.
Заключение
Восстановление сид-фразы через推理 — это не магия, а комбинация криптографии, программирования и терпения. Кейс ColdCARD доказал, что даже при потере порядка слов шанс есть, если сохранить хотя бы состав слов и один адрес. Однако лучшая стратегия — профилактика: правильное хранение, резервное копирование xpub и использование passphrase. Помните: ваша сид-фраза — это ваши деньги. Относитесь к ней как к наличным в сейфе.