
594 BTC за 25 минут: как одна строка в сборке прошивки Coldcard опустошила сотни холодных кошельков
Автор: EIDEX Team
Ночь на 31 июля 2026 года войдёт в историю отрасли как момент, когда аппаратный кошелёк подвёл сотни владельцев одновременно — то самое устройство, которое покупают именно ради защиты от подобных сценариев. За 25 минут примерно с 500 адресов ушло 594,48 BTC, около $38 млн по курсу на момент операции. Ни взлома устройства, ни фишингового письма, ни украденного бэкапа: мошенники просто вычислили приватные ключи на своём железе.
Хронология: как разворачивались события
Публично тревогу первым поднял Кевин Лоак, сооснователь Wizardsardine — команды, стоящей за кошельком Liana. В 17:35 UTC он попросил подписчиков с Coldcard проверить балансы, оговорившись, что надеется на ложную тревогу. Через полтора часа тон сменился на прямое предупреждение: это не учения.
Подтверждения посыпались быстро. Ветеран сообщества grubles описал один случай, Джеймсон Лопп сообщил о частичных списаниях — с ряда кошельков ушли не все выходы, а только часть. Версия о единичном неосторожном владельце рассыпалась на глазах: среди пострадавших оказались публичные и весьма опытные держатели. К ночи стало очевидно, что мошенники работали по заранее подготовленному списку целей.
Анатомия свипа: 1324 UTXO и четыре блока подряд
Атака выглядела не как ручная работа, а как заранее собранный конвейер. Мошенники вывели 1324 UTXO — неизрасходованных выхода транзакций — примерно с 500 адресов, уложившись в окно 01:31–01:56 UTC и в несколько последовательных блоков, с 960188 по 960191.
Каждая транзакция опустошала ровно один адрес жертвы: характерный признак скрипта, который идёт по готовому списку ключей. Распределение потерь выглядит так:
- медиана — 0,41 BTC (порядка $26 500);
- 110 адресов потеряли больше одной монеты;
- максимум с одного адреса — 29,9 BTC, почти $2 млн;
- минимум — 0,15 BTC, кошельки с меньшим балансом не трогали вовсе;
- 419 адресов содержали единственный выход, у отдельных накопилось до 105 и 200 UTXO;
- комиссии обошлись атакующим примерно в 0,044 BTC.
Нижняя граница в 0,15 BTC говорит о фильтрации целей по минимальному балансу — подписывать транзакцию ради пыли невыгодно. По типам адресов: 490 из 500 — native segwit, ещё по пять legacy и nested segwit. Аналитики Chainalysis добавили деталь, которая объясняет логику операции: мошенники шли сверху вниз по размеру баланса и за первые десять минут забрали более $30 млн. 562 BTC были сведены на один консолидирующий адрес, ещё 32 — на промежуточный.
Первая версия: виноваты сами пользователи
Расследование стартовало с поста на Reddit. Автор рассказал, что купил Coldcard в 2021 году, сид-фразу из 24 слов устройство сгенерировало само, средства были отправлены и много лет лежали без движения. В январе прошлого года он приобрёл второй Coldcard и заново ввёл старую фразу — убедиться, что слова записаны верно. Фразу он никому не передавал и вводил только на самом устройстве.
Первая реакция производителя была предсказуемой. NVK, основатель и CEO Coinkite, в 18:10 написал, что паниковать не стоит: кто-то загрузил в устройство скомпрометированную фразу либо допустил её утечку. Аналитики Atlas21 выдвинули созвучную гипотезу — проблема не в железе, а в слабых сид-фразах, которые владельцы импортировали в устройство сами.
Реакция сообщества была резкой: в крипте перекладывание вины на пользователя — стандартный первый ход производителя, и доверия он не добавляет. Через сутки эта версия перестала работать окончательно, а вместе с ней рухнуло и предположение, что мошенники получили доступ к фразам по вине самих владельцев.
Настоящая причина: макрос, который проверяли не на то
Технический разбор опубликовала команда Bitcoin Engineering and Security компании Block. В прошивке Coldcard существовали две реализации функции генерации случайных чисел с одинаковой сигнатурой: аппаратная обёртка над встроенным генератором, написанная в Coinkite, и программная, унаследованная от MicroPython.
Производственная конфигурация Coldcard выставляет макрос MICROPY_HW_ENABLE_RNG в ноль — именно потому, что компания использует собственную аппаратную обёртку вместо штатной. Но библиотека libngu при сборке проверяла не значение макроса, а сам факт его существования. Макрос существовал, проверка проходила, и сборка привязывалась к программному генератору MicroPython — алгоритму Yasmarang, который инициализировался уникальным идентификатором чипа и значениями таймеров, а после инициализации свежую энтропию не собирал вовсе.
Иными словами, устройство, продававшееся как эталон изолированной генерации ключей, пять лет молча обходило собственный аппаратный источник случайности. Ошибка появилась в прошивке 4.0.0 в марте 2021 года. Мошенники не подбирали фразу вслепую — они воспроизвели логику генератора и получили компактное пространство перебора.
Отдельная деталь: в Coinkite предполагают, что уязвимость в открытом коде атакующий нашёл с помощью ИИ. При этом собственный ИИ-аудит того же кода, проведённый компанией за несколько недель до инцидента, не выявил ничего.
Что такое энтропия и почему 40 бит — это приговор
Сид-фраза BIP-39 из 24 слов выглядит внушительно, но её стойкость определяется не длиной, а количеством по-настоящему случайных бит на входе. Стандартный ориентир — 128 бит: перебрать такое пространство невозможно ни при каких доступных сегодня мощностях.
Именно этот разрыв превратил ошибку сборки в готовый инструмент: мошенники получили задачу, решаемую арендованными вычислительными мощностями за разумные деньги. По оценке Coinkite, на Mk3 эффективное пространство поиска сжалось примерно до 40 бит. Block в своём отчёте единственной цифры не даёт: там введены условные потолки ниже 2^40,7 и 2^73,3, причём авторы отдельно предупреждают, что второе значение не эквивалентно 73-битной криптостойкости. Бенчмарк перебора Block не публиковала.
40, 72 и 128 бит: масштаб разницы
Если представить энтропию как кодовый замок:
- 40 бит — около триллиона комбинаций. Обычный десктоп проходит такой диапазон за часы;
- 72 бита — недостижимо для энтузиаста с домашней фермой, но в пределах возможностей хорошо финансируемого противника со специализированным железом;
- 128 бит — время перебора превышает возраст Вселенной даже при миллиардах попыток в секунду.
Именно поэтому 594 BTC ушли не в результате взлома криптографии, а в результате обычного вычислительного перебора. Ключи не украли — их посчитали. Сам биткоин как протокол при этом скомпрометирован не был: подписи валидны, консенсус отработал штатно.
Какие устройства и прошивки под ударом
- Mk2 и Mk3, прошивки 4.0.1–4.1.9 включительно — наиболее пострадавшая группа, около 40 бит эффективной энтропии;
- Mk4 и Mk5 — сиды, созданные до стандартной версии 5.6.0 или Edge 6.6.0X;
- Q — сиды до стандартной версии 1.5.0Q или Edge 6.6.0QX;
- на Mk4, Mk5 и Q дополнительная энтропия поступала от защищённых элементов SE1 и SE2, поэтому оценка мягче — около 72 бит, но и это ниже безопасного порога;
- TAPSIGNER, OPENDIME и SATSCARD построены на другой кодовой базе и не затронуты.
Судя по составу пострадавших адресов, мошенники сканировали в первую очередь именно диапазон Mk3 — там перебор был дешевле всего. Исправления вышли 31 июля: Mk2/Mk3 — 4.2.0 и выше, Mk4/Mk5 — 5.6.0 и выше, Q — 1.5.0Q и выше, Edge-ветки — 6.6.0X и 6.6.0QX.
Нюанс, который важнее самого патча: обновление прошивки не чинит уже созданный сид. Риск определяется тем, какая версия стояла в момент генерации, а не тем, когда куплено устройство и что установлено сейчас. Слабый ключ остаётся слабым навсегда — заменить можно только сам ключ.
Кто уцелел: кубики, passphrase и мультиподпись
Не все владельцы затронутых устройств оказались в зоне риска, и это важно.
Кубики. На уязвимых прошивках Coldcard хешировала сгенерированный устройством сид вместе с каждым броском, введённым через Add Dice Rolls. От 50 до 98 честных независимых бросков дают минимум 128 бит энтропии сами по себе, 99 и больше — порядка 256 бит. Если броски были честными, независимыми и нигде не фиксировались, Coinkite не считает такой сид скомпрометированным. Меньше 50 бросков или «не помню» — действовать по инструкции миграции.
Passphrase BIP-39. Дополнительная парольная фраза, которая нигде на устройстве не хранится, выводит кошелёк за пределы перебираемого пространства.
Мультиподпись. Среди 1324 украденных выходов нет ни одного мультисиг-адреса — до таких кошельков мошенники не добрались в принципе. Все пострадавшие были одноключевыми. Это самый практичный вывод инцидента: мультиподпись, желательно на устройствах разных производителей, страхует не только от кражи железа, но и от ошибки одного вендора.
Масштаб растёт: от 594 до 1367 BTC
Первоначальная оценка оказалась лишь видимой частью айсберга, и мошенники на первой волне не остановились.
- 31 июля — Galaxy Research насчитала 1082,65 BTC с 1196 адресов — почти вдвое больше первичной цифры;
- 1 августа — зафиксирована вторая волна: 1158,66 BTC, около $75,1 млн, с 2673 адресов;
- 2 августа — третья волна, суммарный счёт вырос до 1367 BTC, примерно $89 млн, с 4585 адресов.
Galaxy оговаривается: анализ построен на ончейн-данных, поэтому доказать, что каждый опустошённый адрес создавался именно из слабого сида, компания не может. Но совпадение по времени, шаблон сканирования и способ консолидации средств не оставляют пространства для альтернативных версий.
Крипта, мошенники и охота на панику
Второй удар по владельцам Coldcard прилетел не из блокчейна, а из привычного набора мошеннических схем. Как только новость разошлась, мошенники запустили волну фишинга: поддельные «чекеры сидов», клоны блога Coinkite, «служба поддержки» в личных сообщениях, боты, предлагающие проверить, попадает ли ваша фраза в уязвимый диапазон.
Логика мошенников проста и работает годами: инцидент создаёт формально легитимный повод срочно ввести сид-фразу куда-то ещё. В крипте паника конвертируется в чужую прибыль лучше любой рекламы.
Ни один настоящий инструмент проверки никогда не попросит сид-фразу. Ни один. Установить факт риска можно только по версии прошивки на устройстве и по тому, использовались ли кубики и passphrase, — эти данные не нужно передавать никому.
Скам вокруг инцидента: как отличить настоящее предупреждение
Большинство мошеннических схем вокруг таких событий строятся на трёх приёмах: срочность, авторитет производителя и обещание помощи. Признаки, по которым распознаётся скам:
- запрос сид-фразы, приватного ключа или файла бэкапа в любой формулировке — гарантированный скам, без исключений;
- ссылка на «обновление прошивки» не с домена производителя;
- таймер и давление: «мигрируйте за два часа, иначе средства уйдут»;
- предложение «застраховать» или «вернуть» украденное за предоплату;
- личные сообщения от «сотрудников» в мессенджерах — официальные каналы не пишут первыми.
Отдельная категория — «возвратчики средств». Мошенники находят жертв по публичным обсуждениям и предлагают услуги по возврату, требуя аванс. Ни одна легитимная фирма по расследованию инцидентов так не работает. Схема с «возвратом» встречается не только в связке с криптовалютой, но здесь она особенно живуча — просто потому, что вернуть средства обычными путями действительно почти невозможно.
Слабая энтропия: инцидент далеко не первый
Класс уязвимости старый и повторяющийся:
- Randstorm — кошельки, созданные в браузере на BitcoinJS в 2011–2015 годах, использовали предсказуемый источник случайности;
- Milk Sad (CVE-2023-39910) — Libbitcoin Explorer генерировал сиды из 32-битного зерна Mersenne Twister, потери исчислялись миллионами;
- уязвимость расширения Trust Wallet 2022 года — та же природа: библиотека, дающая недостаточно случайности.
Общий знаменатель — не криптография, а инженерия сборки и молчаливые умолчания. Алгоритмы работают корректно; ломается то, что подаётся им на вход. В крипте этот класс ошибок воспроизводится примерно раз в два года, и каждый раз мошенники приходят за результатом первыми.
Что делать владельцу Coldcard прямо сейчас
- Определите, на какой прошивке создавался сид — не текущую версию, а ту, что стояла в момент генерации.
- Вспомните, использовали ли вы кубики и сколько было бросков, а также passphrase BIP-39.
- Если сид попадает в уязвимый диапазон, обновите устройство до исправленной версии.
- Сгенерируйте новый сид на обновлённом устройстве, запишите и проверьте резервную копию.
- Подтвердите новый адрес получения непосредственно на экране устройства и сверьте отпечаток кошелька.
- Отправьте небольшую тестовую транзакцию и только после неё переводите основную сумму.
- Если Mk3 — единственное доступное устройство, Coinkite рекомендует временно задать стойкую уникальную passphrase BIP-39, тщательно проверив fingerprint и адрес.
- Рассмотрите переход на мультиподпись с устройствами разных вендоров.
Пока мошенники продолжают сканировать блокчейн в поисках оставшихся уязвимых адресов, скорость миграции значит больше, чем её изящество.
Какие выводы стоит сделать рынку
Инцидент неудобен именно тем, что не укладывается в привычную рамку. Здесь не было ни рагпула, ни поддельного токена, ни социальной инженерии — то есть ничего из того, что принято называть словом «скам». Была ошибка в одной строке конфигурации сборки, пять лет никем не замеченная, и мошенники, прочитавшие открытый код внимательнее самого производителя.
Практических выводов три. Первый: «холодный» не равно «безопасный» — аппаратный кошелёк убирает один класс рисков, но добавляет доверие к прошивке конкретного вендора. Второй: внешняя энтропия и passphrase оказались не паранойей, а единственным, что спасло часть владельцев. Третий: мультиподпись на устройствах разных производителей — единственная схема, полностью пережившая этот инцидент.
Курс биткоина на новость почти не отреагировал, оставшись около $64 000. Для рынка в целом $89 млн — статистическая погрешность. Для 4585 адресов — полная потеря. Эта асимметрия и делает подобные истории регулярными: цена ошибки ложится не на отрасль, а на конкретных людей, самостоятельно владеющих криптовалютой.
Какие модели и прошивки Coldcard уязвимы?
Mk2 и Mk3 с прошивками 4.0.1–4.1.9 — наиболее пострадавшая группа, около 40 бит эффективной энтропии. Mk4 и Mk5 — сиды, созданные до стандартной версии 5.6.0 или Edge 6.6.0X, Q — до 1.5.0Q или Edge 6.6.0QX, там оценка около 72 бит. TAPSIGNER, OPENDIME и SATSCARD построены на другой кодовой базе и не затронуты.
Спасёт ли обновление прошивки уже созданный сид?
Нет. Риск определяется тем, какая версия стояла в момент генерации сида, а не тем, что установлено сейчас. Слабый ключ остаётся слабым навсегда — нужно сгенерировать новый сид на исправленной прошивке и перевести на него средства.
Кто не пострадал?
Владельцы, добавлявшие броски кубиков через Add Dice Rolls (от 50 до 98 честных независимых бросков дают минимум 128 бит сами по себе), владельцы с passphrase BIP-39 и все мультисиг-кошельки: среди 1324 украденных выходов нет ни одного мультисиг-адреса.
Взломали ли сам биткоин?
Нет. Подписи были валидны, консенсус отработал штатно. Ключи не украли, а вычислили перебором: эффективное пространство поиска сжалось примерно до 40 бит вместо стандартных 128.
Сколько всего украдено?
Первая волна — 594,48 BTC, около $38 млн, примерно с 500 адресов за 25 минут. К 2 августа Galaxy Research насчитала 1367 BTC, примерно $89 млн, с 4585 адресов.
Как отличить настоящее предупреждение от мошенников?
Ни один настоящий инструмент проверки не попросит сид-фразу. Признаки скама: запрос сида, приватного ключа или файла бэкапа; ссылка на «обновление прошивки» не с домена производителя; таймеры и давление; предложение «застраховать» или «вернуть» украденное за предоплату; личные сообщения от «сотрудников» в мессенджерах.
CTO криптобиржи EIDEX. Отвечает за архитектуру платформы, торговое ядро и безопасность; пишет о крипторынке, регулировании и блокчейн-технологиях.


