
30 июля 2026 года за менее чем полчаса злоумышленник опустошил около 500 Bitcoin-кошельков и вывел примерно 594 BTC — около $38 млн. Все эти кошельки были созданы на устройствах COLDCARD — одних из самых уважаемых аппаратных кошельков в индустрии. Причина кражи: ошибка в генераторе случайных чисел, из-за которой секретные ключи кошельков оказались значительно более предсказуемыми, чем должны были быть.
Введение
COLDCARD — аппаратный кошелёк: физическое устройство, предназначенное для максимально безопасного хранения криптовалюты. В отличие от программных кошельков, установленных на телефоне или компьютере, аппаратный кошелёк хранит секретные ключи в изолированном чипе и никогда не передаёт их наружу. Это считается золотым стандартом безопасности в крипте.
Фундамент безопасности любого кошелька — seed-фраза. Это набор из 12 или 24 слов, который генерируется при создании кошелька и из которого математически вычисляются все адреса и секретные ключи. Кто знает seed-фразу — тот владеет кошельком. Поэтому seed-фраза должна быть по-настоящему случайной: из сотен триллионов триллионов возможных комбинаций.
Ключевое слово здесь — «по-настоящему случайной». И именно здесь была допущена ошибка.
Почему seed-фразы оказались предсказуемыми
Чтобы создать случайную seed-фразу, устройство использует генератор случайных чисел — RNG (Random Number Generator). В аппаратных кошельках должен использоваться аппаратный RNG: специальный чип, который генерирует числа на основе физических процессов — теплового шума, квантовых эффектов. Такие числа по-настоящему непредсказуемы.
В прошивках COLDCARD начиная с ветки v4 для моделей Mk2 и Mk3 произошла ошибка интеграции: вместо аппаратного генератора использовался программный генератор Yasmarang. Программный генератор не является источником настоящей случайности — он производит числа по математическому алгоритму, и его результат полностью определяется начальным состоянием (так называемым «сидом» генератора).
Начальное состояние Yasmarang формировалось из двух источников: идентификатора микроконтроллера (уникального, но фиксированного числа) и значений таймеров. Это не является криптографически надёжным источником случайности. Для Mk2/Mk3 v4 установлено: если известны UID устройства, состояние таймеров в момент создания кошелька и последовательность вызовов генератора — процесс генерации seed-фразы становится детерминированным. То есть предсказуемым и воспроизводимым.
Для более новых моделей — Mk4, Mk5 и Q до определённых версий прошивки — ситуация менее критична, но также затронута: реальная энтропия составляла около 72 бит вместо ожидаемых 128. Это всё ещё значительно снижает пространство возможных вариантов.
Coinkite, производитель COLDCARD, официально подтвердил уязвимость и предупредил о затронутых версиях прошивки.
Ход инцидента
1️⃣ Перебор возможных seed-фраз. Зная об ошибке в генераторе, злоумышленник смог офлайн перебирать возможные начальные состояния Yasmarang и генерировать из них кандидаты seed-фраз. Это не перебор всех возможных комбинаций (их слишком много) — а перебор значительно суженного пространства реально возможных вариантов.
2️⃣ Проверка по публичным адресам. Для каждой кандидатной seed-фразы можно вычислить соответствующий Bitcoin-адрес — это публичная операция, не требующая доступа к самому устройству. Адрес злоумышленник сверял с существующими адресами в блокчейне Bitcoin. Если совпадение найдено — seed-фраза угадана, а значит, кошелёк полностью скомпрометирован.
3️⃣ Вывод средств за 30 минут. Найдя совпадения для примерно 500 кошельков, злоумышленник провёл 500 транзакций и вывел с них около 594 BTC. Всё это заняло менее 30 минут.
Детали расследования: движение средств
Все 594 BTC были собраны на адресе bc1qnk4zh9qcnap2mycp56qjrgza3cc8ylrh8fecp0. Затем 562 BTC были переведены на второй адрес.
На момент расследования средства находятся на двух адресах без движения:
— bc1qnk4zh9qcnap2mycp56qjrgza3cc8ylrh8fecp0 — ~32,45 BTC
— bc1qq85v2c926eg6pgxhwp6q7lf6cnsz80qs3fcu9r — ~562,02 BTC
То, что практически весь объём — около $38 млн — остаётся нетронутым на двух известных адресах, нетипично для атак такого масштаба и создаёт возможность для взаимодействия с биржами и правоохранительными органами.
Что делать владельцам COLDCARD
Coinkite официально предупреждает о следующих затронутых версиях:
— Mk3 с прошивкой 4.0.1 и новее — наиболее высокий риск
— Mk4 и Mk5 до версии 5.6.0
— Q до версии 1.5.0Q
Если ваш кошелёк был создан на затронутой версии прошивки — средства на нём могут быть под угрозой. Необходимо:
— Создать новую seed-фразу на устройстве с актуальной прошивкой
— Перевести все средства на новый кошелёк
Использование актуальной прошивки само по себе не защищает уже созданные на старых версиях кошельки — нужно именно создать новый кошелёк заново.
Заключение
Этот инцидент — один из редких случаев, когда уязвимость находится не в смарт-контракте, не в мосте и не в ключах сотрудников — а в самом фундаменте безопасности: в генераторе случайных чисел устройства, которому люди доверяли хранение значительных средств.
Аппаратный кошелёк считается максимально безопасным способом хранения криптовалюты именно потому, что seed-фраза никогда не покидает устройство. Но если сама seed-фраза была создана недостаточно случайной — физическая изоляция устройства не помогает: ключ можно вычислить снаружи, не прикасаясь к нему.
~594 BTC остаются на двух известных адресах. Команда «КоинКит» продолжает отслеживать движение средств.


