Баг в Coldcard привёл к потере биткоинов на $130 млн

Команда Bitcoin Engineering & Security компании Block совместно с независимыми разработчиками Bitcoin Core связала недавнюю серию краж с аппаратных кошельков Coinkite Coldcard с конкретным дефектом прошивки, который ослаблял ключевой этап самохранения: генерацию сид-фразы. По их данным, ошибка заключалась в том, что генератор случайных чисел устройства в ряде версий не использовал аппаратный источник энтропии STM32, а переключался на детерминированный резервный алгоритм Yasmarang в MicroPython. В результате Coldcard Mk2 и Mk3 с прошивками 4.0.1–4.1.9 создавали сиды, криптографическая "случайность" которых сжималась до небольшого перебираемого набора. Модели Mk4, Q и Mk5 пострадали меньше: оценочно около 72 бит энтропии — это всё равно существенно ниже 128 бит, предусмотренных проектом. Критическая особенность уязвимости в том, что риск возникал до каких-либо действий пользователя с сид-фразой. Можно было аккуратно записать 12 или 24 слова, убрать их в сейф, держать устройство офлайн годами — и при этом владеть ключом, который злоумышленник способен восстановить перебором ограниченного пространства выходов резервного генератора. Обновление прошивки защищает только новые сиды, созданные после установки патча. Любой сид, уже сгенерированный по уязвимому пути, необходимо полностью заменить: в рекомендациях Coinkite указано создать новую сид-фразу и перевести средства. Импорт старых слов в кошелёк другого производителя проблему не решает — слабость "путешествует" вместе с самими словами восстановления. Часть владельцев оказалась уязвима задолго до того, как на кошелёк поступили депозиты: в момент генерации ключа (за месяцы или годы до пополнения) фактически фиксировалось ограниченное пространство поиска, независимо от того, насколько аккуратно затем хранились слова. Coldcard долго позиционировался как эталонный инструмент самохранения за счёт "биткоин-онли" прошивки, air-gap-подписи, двух Secure Element, открытого кода и воспроизводимых сборок. Проверка воспроизводимости подтверждает, что распространяемый бинарник соответствует опубликованному коду, но это говорит о целостности поставки, а не об отсутствии дефектов в самой логике. Уязвимый путь присутствовал в прошивках, выпускавшихся с 2021 года и остававшихся в обороте до июльского раскрытия — около пяти лет, несмотря на публичность исходников. Технические заметки Coinkite указывают, что прежние проверки подтверждали наличие правильного аппаратного генератора где-то в бинарнике, но не доказывали, что именно процедура генерации сида действительно до него доходит. Кто был защищён лучше — Владельцы, использовавшие сильную уникальную BIP39-парольную фразу (passphrase), лучше сопротивлялись атаке на восстановление сида: BIP39 выводит мастер-ключ из мнемоники и соли, содержащей passphrase. Даже при одинаковых словах разные passphrase дают разные кошельки. При этом passphrase не равна PIN-коду (PIN лишь разблокирует устройство). Несмотря на это, Coinkite всё равно рекомендовала миграцию. — Пользователи, добавившие внешнюю энтропию (не менее 50 честных, независимых, приватных бросков кубика), также не подпадают под этот конкретный сценарий, поскольку дефектный генератор устройства переставал быть единственным источником случайности. Директор по информационной безопасности Xapo Bank Эндрю Маннукас в комментарии для CryptoSlate сформулировал вывод так: "Урок этого инцидента не в том, что аппаратные кошельки плохи; урок — в концентрации. Когда безопасность ваших биткоинов сводится к одному секрету, созданному на одном устройстве в один неповторимый момент, вы наследуете все допущения, заложенные в этот момент". Он добавил, что отраслевые данные уже годы показывают: основная доля потерь связана с управлением ключами и операционными сбоями. Отдельно подчёркивается ограничение популярного совета "просто используйте multisig". Схема 2-of-3 действительно снижает риск, если ключи независимы. Но если три ключа созданы одной и той же уязвимой реализацией, они превращаются в один домен отказа. Документация Coldcard допускает создание нескольких со-подписантов на одном устройстве с разными passphrase — формально ключей больше, но зависимость от одной реализации сохраняется. Поэтому ключевой вопрос смещается с "используете ли вы multisig" на "кто и как генерировал каждый ключ, какая реализация и какой источник энтропии использовались". Параллель с Ledger и границей доверия В тексте проводится сравнение с Ledger Recover: сервис по желанию пользователя дублирует и шифрует энтропию в Secure Element, делит результат на три зашифрованных фрагмента и отправляет их разным провайдерам резервного хранения — при подписке и физическом подтверждении на устройстве. В случае Ledger спор касается вывода секретного материала за пределы устройства при оговорённых пользователем условиях. В ситуации Coinkite проблема лежала "выше по цепочке": прошивка ослабляла секрет ещё до того, как вообще начинала работать концепция "границы устройства". В обоих случаях именно софт производителя определяет реальную границу безопасности самохранения, независимо от маркетинговых формулировок о железе. Масштаб потерь и оценка атрибуции Первые массовые выводы средств затронули примерно 594 BTC из около 500 кошельков. Затем ончейн-исследователи связали с дефектом как минимум три волны, суммарно почти 1 367 BTC с более чем 4 500 адресов, примерно на $89 млн на тот момент. Сообщения, циркулировавшие 3 августа, допускали возможную четвёртую волну, которая могла приблизить общий ущерб к $114 млн. Алекс Торн из Galaxy Digital предупреждал, что одних блокчейн-паттернов недостаточно для окончательного подтверждения связи ряда адресов с уязвимой прошивкой Coldcard, поэтому атрибуция остаётся предварительной, даже если общий счёт продолжает расти. Позднее, 4 августа, Lookonchain со ссылкой на Galaxy Research оценил, что потери, связанные с Coldcard, могли достичь 2 055 BTC — около $130 млн — и затронуть более 7 700 адресов. Контекст рынка атак TRM Labs сообщала, что в первом полугодии 2026 года инфраструктурные и операционные компрометации, прежде всего кража приватных ключей и сид-фраз, обеспечили около 76% украденной стоимости в криптохаках, хотя составляли примерно 15% всех инцидентов. CertiK отдельно назвала компрометацию кошельков самой дорогой категорией атак за тот же период: более $444 млн в 33 инцидентах. Вывод прост: злоумышленники всё чаще зарабатывают на системах вокруг ключей, а не на взломе криптографии. Реакция Coinkite и вопрос ответственности Основатель Coinkite Родольфо Новак публично извинился, заявил о полной ответственности компании и предложил помощь с заявлениями в полицию, страховыми обращениями и блокчейн-расследованиями. По состоянию на 3 августа компенсации среди мер решения не фигурировали. В материале отмечается разница между биржей и производителем аппаратных кошельков: биржа иногда может покрыть потери резервами, страховкой или балансом. Производитель обычно продаёт устройство, а хранение биткоинов оставляет на пользователе, из-за чего ответственность за дефект остаётся размыта между пользователем и вендором. Что дальше для самохранения биткоина Оптимистичный сценарий предполагает, что миграция пользователей опередит появление новых волн атак, а производители внедрят проверку энтропии, аттестации источников случайности, тестирование генерации сидов и более понятные инструменты экстренной ротации ключей. Passphrase, внешняя энтропия через кубики и корректно диверсифицированный multisig станут не "продвинутыми советами", а стандартом. Негативный сценарий — обнаружение дополнительных путей слабой генерации сидов в других моделях или процедурах настройки, что способно подорвать доверие быстрее, чем производители успеют выпускать патчи. Панические миграции несут собственные риски: ошибки повторного использования адресов, поспешные переводы и новая волна мошенничества под видом "поддержки кошелька". Ключевая мысль текста сводится к тому, что самохранение убирает зависимость от биржи (невозможность заморозить вывод, ре-гипотекация, риск банкротства с клиентскими средствами), но сохраняет одну критическую опору: производителя, который превращает случайность в ключ. Один сид, родившийся на железе одной компании в один неповторимый момент, становится суверенитетом лишь тогда, когда за ним стоит вторая независимая предпосылка безопасности.