Ошибка в генераторе случайных чисел COLDCARD позволила угадать ключи от 500 кошельков
31.07.2026 | CoinKyt Company

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 остаются на двух известных адресах. Команда «КоинКит» продолжает отслеживать движение средств.