Уязвимость, скрытая во внутренней прошивке Coldcard более пяти лет, только что стоила владельцам примерно 594 биткоина — около 38 миллионов долларов. Кража, напрямую связанная с уязвимостью сидов Coinkite в основе аппаратного кошелька Mk3, развернулась менее чем за 30 минут. Сейчас миллионы долларов могут по-прежнему находиться в кошельках, тихо подверженных той же слабости.
Summary
Ключевые выводы
- Злоумышленник вывел примерно 594 BTC (~38 миллионов долларов) примерно с 500 одноподписных кошельков в период с 01:31 по 01:56 UTC 31 июля 2026 года, эксплуатируя сломанный генератор случайных чисел в прошивке Coldcard.
- Coinkite предупредила всех пользователей, которые сгенерировали сид на Mk3 с прошивкой 4.0.1 или новее (начиная с марта 2021 года), что их средства могут быть под угрозой.
- Ошибка также затрагивает устройства Mk4 и Mk5 до прошивки 5.6.0 и устройства Q до версии 1.5.0Q, снижая энтропию сида со 128 бит примерно до 72 бит.
- TAPSIGNER, OPENDIME и SATSCARD, как подтверждено, не затронуты из-за других кодовых баз.
- Пользователи, которые добавили как минимум 50 независимых бросков кубика при создании сида, считаются защищёнными; всем остальным следует немедленно мигрировать на новый сид на исправленной прошивке.
Как тихая ошибка в прошивке превратилась в кражу на 38 миллионов долларов
Атака была методичной и быстрой. По данным CoinDesk, 1 324 отдельных порции биткоина были перемещены в 500 транзакциях в пределах трёх блоков, после чего 562 BTC были консолидированы на одном адресе, с которого средства с тех пор не двигались. Каждый опустошённый кошелёк был одноподписным, каждый содержал более 0,15 BTC, и многие бездействовали годами — их монеты датировались периодом с 2021 по 2026 год, почти точно совпадая с временными рамками уязвимости.
Корневая причина восходит к коммиту от 1 марта 2021 года, вошедшему в прошивку 4.0.0. Согласно отчёту, опубликованному инженерной и службой безопасности Bitcoin-команды Block, параметр сборки указывал устройству пропускать собственный аппаратный генератор случайных чисел. Проверка во вспомогательной библиотеке затем тестировала только наличие этого параметра, а не то, был ли он фактически включён. Генерация ключей незаметно переходила к базовому программному заменителю, инициализируемому серийным номером чипа и регистрами часов — ни один из этих параметров не является секретом.
Серийный номер — это фиксированные заводские метаданные. Значения часов — это состояние таймера, которое злоумышленник может сузить или измерить, используя собственное устройство. То, что было задумано как «невозможный для угадывания» сид, по сути, стало угадываемым. Block заявила, что опубликовала свои выводы без полной подтверждённой эксплуатируемости, потому что эксплуатация уже шла в момент раскрытия.
Масштаб проблемы выходит за рамки сидов кошельков
Подверженность не ограничивается только сид-фразами. Block отметила, что тот же сломанный генератор создавал приватные ключи бумажных кошельков Coldcard — где вывод становится ключом напрямую, без дальнейшего вывода — а также маски для разделения сидов, ключи клонирования устройств и передачи Key Teleport. Иными словами, поверхность атаки шире, чем просто уже опустошённые кошельки.
Какие устройства затронуты — а какие нет
Coinkite подтвердила, что проблема присутствует во всех версиях прошивки Mk3, начиная с 4.0.1. Влияние на Mk4, Mk5 и Q описывается как менее серьёзное, но всё же значимое: сиды, сгенерированные на этих устройствах до выхода исправленных прошивок, имеют примерно 72 бита энтропии вместо ожидаемых 128 бит. Это снижение существенно — энтропия в 72 бита теоретически не является несломаемой при длённой целенаправленной атаке.
Три продуктовые линейки явно выделены: TAPSIGNER, OPENDIME и SATSCARD не затронуты, так как используют полностью другие кодовые базы. Ранний анализ Coinkite также показал, что Mk4, Q и Mk5 не затронуты тем же образом, что и Mk3, хотя требование по версии прошивки по-прежнему действует перед генерацией любого нового заменяющего сида на этих устройствах.
Критически важно, что подверженность зависит от версии прошивки, работавшей в момент первоначального создания кошелька, а не от даты покупки устройства.
Что пользователям следует сделать прямо сейчас
Компания опубликовала подробные пошаговые рекомендации по снижению рисков. Дальнейшие действия зависят от того, какое устройство у пользователя и что он делал при создании сида.
Если вы добавляли броски кубика при настройке
Пользователи, которые вводили результаты бросков кубика при создании сида, могли невольно защитить себя. На затронутой прошивке Coldcard хешировала энтропию, сгенерированную устройством, вместе с каждым введённым броском. Важны пороговые значения:
- От 50 до 98 независимых, приватных бросков: один только ввод с кубика дал как минимум 128 бит энтропии — сид считается защищённым от этой проблемы с ГСЧ.
- 99 и более независимых, приватных бросков: ввод с кубика дал примерно 256 бит энтропии.
- Менее 50 бросков или есть сомнения: немедленно следуйте рекомендациям по миграции.
Это относится только к итоговым словам сида, показанным после добавления бросков кубика. Если есть какие-либо сомнения относительно количества бросков, их приватности или того, какой набор слов использовался, единственно безопасный путь — миграция.
Если вы использовали BIP-39-парольную фразу
Сильная, уникальная парольная фраза BIP-39 добавляет независимый барьер безопасности поверх скомпрометированного сида. Защита реальна, но условна: короткая, распространённая, шаблонная или повторно используемая парольная фраза может быть угадана и не должна считаться достаточной защитой. Coinkite прямо указывает, что даже пользователи с сильными парольными фразами должны мигрировать на заново сгенерированный сид как можно скорее и не должны вводить парольную фразу на каких-либо сайтах или ненадёжных устройствах.
Для пользователей, у которых единственный вариант — Mk3
Coinkite предоставила временный путь. Пользователи могут создать защищённый парольной фразой кошелёк на Mk3 и перевести в него средства с исходного кошелька, рассматривая это как временную меру. В руководстве компании пошагово описан процесс: ввод длинной, случайной, уникальной парольной фразы непосредственно на устройстве (никогда не на компьютере или телефоне), отдельное резервное копирование парольной фразы от сид-слов, проверка отпечатка кошелька (XFP) перед любой транзакцией и отправка небольшой тестовой суммы перед переводом остальной части средств.
Существует и продвинутый резервный вариант: на пустом Mk3 с прошивкой 4.1.9 пользователи могут перейти в Import Existing > Dice Rolls и ввести как минимум 99 независимых бросков честного шестигранного кубика. Этот путь хеширует последовательность бросков напрямую, не используя сломанный генератор устройства. Coinkite подчёркивает, что это продвинутая процедура — миграция с использованием одного устройства требует безопасного чередования между старым и новым сидом, а последовательность бросков кубика должна рассматриваться как секретный ключевой материал: её нельзя фотографировать, сохранять в цифровом виде или вводить на подключённом к сети компьютере.
Для пользователей Mk4, Mk5 и Q
Перед генерацией любого нового сида на этих моделях пользователи сначала должны обновить прошивку: Mk4 и Mk5 — до версии 5.6.0 или новее, а Q — до версии 1.5.0Q или новее. Только после подтверждения установки исправленной прошивки следует генерировать новый сид. Процесс включает запись и проверку резервной копии до внесения любых средств, проверку адреса для получения на самом устройстве, отправку небольшой тестовой транзакции и сохранение старой резервной копии до полного подтверждения завершения миграции.
Почему это больше, чем одна кража
Кража на 38 миллионов долларов сама по себе тревожна, но более широкие последствия ещё серьёзнее. Аппаратные кошельки для холодного хранения существуют именно потому, что должны быть последней линией обороны — изолированными от сети, офлайн и криптографически надёжными. Уязвимость, которая снижает энтропию сида со 128 до 72 бит, тихо обходя аппаратный генератор случайных чисел, угрожает не только одной линейке продуктов. Она подрывает базовое предположение о том, что офлайн-генерация ключей по своей природе безопаснее программных альтернатив.
Block раскрыла свои выводы Coinkite, команда которой их признала. Обе компании описывают свои анализы как предварительные. То, что обе организации решили опубликовать данные до завершения полного тестирования — именно потому, что эксплуатация уже шла — отражает осознанное решение отдать приоритет предупреждению пользователей над традиционными сроками ответственного раскрытия. Coinkite подтвердила, что расследование продолжается, и заявила, что последуют дополнительные подробности. Для затронутых пользователей окно для спокойной, аккуратной миграции открыто сейчас, но оно может оставаться открытым не бесконечно.
FAQ
Какие устройства Coinkite затронуты уязвимостью энтропии сида?
Затронуты устройства Mk3 с прошивкой версии 4.0.1 или новее, а также устройства Mk4 и Mk5 с прошивкой до версии 5.6.0 и устройства Q с прошивкой до версии 1.5.0Q. Наиболее серьёзно пострадал Mk3. TAPSIGNER, OPENDIME и SATSCARD не затронуты.
Как пользователи могут защитить свои средства, если они использовали затронутое устройство?
Пользователям следует перевести средства на новый сид, сгенерированный на устройстве с исправленной прошивкой. Перед этим на Mk4, Mk5 или Q необходимо сначала обновиться до требуемой версии прошивки. В качестве временной меры применение сильной, уникальной парольной фразы BIP-39 добавляет независимый уровень защиты. Пользователи, которые добавили как минимум 50 независимых бросков кубика при первоначальном создании сида, считаются защищёнными от этой конкретной проблемы с ГСЧ.
Все ли холодные кошельки Coinkite затронуты уязвимостью?
Нет. TAPSIGNER, OPENDIME и SATSCARD не затронуты, поскольку используют другие кодовые базы, отличные от устройств серии Mk.
Какой рекомендуемый подход для пользователей, у которых есть доступ только к устройству Mk3?
Продвинутые пользователи могут создать сид только на основе бросков кубика на Mk3 с прошивкой 4.1.9, выбрав Import Existing > Dice Rolls и введя как минимум 99 независимых бросков кубика. Это полностью обходит неисправный ГСЧ. Для менее продвинутых пользователей рекомендуется как временный шаг применить сильную, уникальную парольную фразу BIP-39 и перевести средства в кошелёк, защищённый этой парольной фразой, прежде чем мигрировать на новый сид на исправленном устройстве.
{«@context»:»https://schema.org»,»@type»:»FAQPage»,»mainEntity»:[{«@type»:»Question»,»name»:»Какие устройства Coinkite затронуты уязвимостью энтропии сида?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»Затронуты устройства Mk3 с прошивкой версии 4.0.1 или новее, а также устройства Mk4 и Mk5 с прошивкой до версии 5.6.0 и устройства Q с прошивкой до версии 1.5.0Q. Наиболее серьёзно пострадал Mk3. TAPSIGNER, OPENDIME и SATSCARD не затронуты.»}},{«@type»:»Question»,»name»:»Как пользователи могут защитить свои средства, если они использовали затронутое устройство?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»Пользователям следует перевести средства на новый сид, сгенерированный на устройстве с исправленной прошивкой. Перед этим на Mk4, Mk5 или Q необходимо сначала обновиться до требуемой версии прошивки. В качестве временной меры применение сильной, уникальной парольной фразы BIP-39 добавляет независимый уровень защиты. Пользователи, которые добавили как минимум 50 независимых бросков кубика при первоначальном создании сида, считаются защищёнными от этой конкретной проблемы с ГСЧ.»}},{«@type»:»Question»,»name»:»Все ли холодные кошельки Coinkite затронуты уязвимостью?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»Нет. TAPSIGNER, OPENDIME и SATSCARD не затронуты, поскольку используют другие кодовые базы, отличные от устройств серии Mk.»}},{«@type»:»Question»,»name»:»Какой рекомендуемый подход для пользователей, у которых есть доступ только к устройству Mk3?»,»acceptedAnswer»:{«@type»:»Answer»,»text»:»Продвинутые пользователи могут создать сид только на основе бросков кубика на Mk3 с прошивкой 4.1.9, выбрав Import Existing > Dice Rolls и введя как минимум 99 независимых бросков кубика. Это полностью обходит неисправный ГСЧ. Для менее продвинутых пользователей рекомендуется как временный шаг применить сильную, уникальную парольную фразу BIP-39 и перевести средства в кошелёк, защищённый этой парольной фразой, прежде чем мигрировать на новый сид на исправленном устройстве.»}}]}
Статья подготовлена при содействии искусственного интеллекта и проверена редакционной командой.

