CRYPTO LADY
← Все статьи

2026-08-15 · 2053 слов · 10 мин

🔐 Уязвимость сид-фразы Coldcard (2026) — проверь кошелёк по трём вопросам

Ошибка сборки пять лет оставляла сид-фразы Coldcard с энтропией около 40 бит. Какие модели затронуты, почему обновление прошивки не спасает и три проверки, решающие всё.

Честный обзор. Часть ссылок — партнёрские: для вас цена та же, проект получает небольшую комиссию.

Ежедневный крипто-инсайт → CryptoLady в TelegramПодписаться

Опубликовано: 15-08-2026 · Источники сверены с предупреждением производителя · ~8 мин

Твоя сид-фраза Coldcard в опасности?

Фраза под угрозой, если она создана на затронутой прошивке Coldcard, ты не набирала минимум 50 своих бросков кубика и на кошельке нет отдельной сильной парольной фразы. Ошибка сборки марта 2021 года отключила аппаратный генератор случайных чисел, и младшие модели стали давать около 40 бит энтропии вместо 128. Обновление прошивки уже созданную фразу не чинит.

📈 Долгосрок держи на своём железе. Для той части, которой торгуешь: Bybit — бонус до $30,000 для новых аккаунтов


Что произошло на самом деле

Тридцатого июля 2026 года биткоин начал уходить с холодных кошельков. Не с бирж, не с приложений в телефоне, а с устройств, которые покупают именно чтобы перестать волноваться. Взлома в привычном смысле не было: никто не подбирал пароль, не присылал поддельную ссылку, не подходил к устройству. Владельцы не сделали ничего неправильно.

В марте 2021 года, при переходе на новую криптографическую библиотеку, одна строчка настроек сборки ушла не туда. Coinkite задала MICROPY_HW_ENABLE_RNG равной нулю, чтобы отключить программный генератор MicroPython — у Coldcard была своя аппаратная обёртка. Но проверка в libngu использовала #ifndef: она смотрела, объявлен ли макрос, а не включён ли он. Сборка прошла без единой жалобы, и генерация фразы тихо ушла на детерминированный запасной путь MicroPython вместо аппаратного генератора STM32.

Coinkite описывает механику в своём техническом разборе прямо:

Аппаратный генератор не отказывал и не запускал более слабый запасной путь во время работы. Это унаследованное поведение платформы, включённое ошибкой компоновки, а не намеренное решение или срез угла в генерации фразы.

libngu random.c: проверка #ifndef, которая смотрит только на факт объявления макроса Вся история в пяти строчках. libngu проверяет #ifndef — объявлен ли макрос, — а не включён ли он, поэтому сборка не падает. Источник, снято 15 августа 2026 года.

Файл mpconfigboard.h модели COLDCARD_MK4, где MICROPY_HW_ENABLE_RNG задан нулём Вторая половина ошибки: Coldcard задаёт макрос нулём с комментарием «у нас своя версия этого кода». Источник, снято 15 августа 2026 года.

Запасной генератор заполнялся из идентификатора чипа и регистров таймера — значений фиксированных, наблюдаемых или узко ограниченных. Никакой криптографической случайности. Пять лет фразы рождались слабыми, и никто этого не замечал.


Насколько плохи 40 бит

Это разница между «невозможно» и «занимает выходные». Энтропия измеряется в битах, и каждый бит удваивает пространство перебора. Стандарт BIP-39 рассчитан на 128 бит: комбинаций больше, чем атомов в горном хребте, и перебор бессмыслен, даже если посадить за него все компьютеры планеты.

Сорок бит — это порядка триллиона вариантов. Такое перебирается на обычном пользовательском железе. Не на суперкомпьютере и не силами государства, а на настольной машине.

При этом атакующему вообще не нужно знать, чей кошелёк он вскрывает. Он генерирует слабые фразы пачками, считает из них адреса, сверяет адреса с блокчейном, пустые отбрасывает, а на непустые отправляет транзакцию. Это конвейер, и он работает ровно столько, сколько на доступных адресах лежат деньги. Поэтому кражи и шли волнами, а не одним залпом.


Какие модели Coldcard затронуты

МодельПрошивка на момент создания фразыОценка энтропииСтатус
Mk1все версии до v3.0.6ожидаемые 128 битпроблемы не касается
Mk2 / Mk3до v3.2.2ожидаемые 128 битиспользовали аппаратный генератор напрямую
Mk2 / Mk34.0.1 – 4.1.9~40 битсамое срочное — переносить
Mk4 / Mk5до стандартной 5.6.0 / Edge 6.6.0X~72 битапереносить
Qдо стандартной 1.5.0Q / Edge 6.6.0QX~72 битапереносить
TAPSIGNER · OPENDIME · SATSCARDвседругая кодовая база, не затронуты

Технический разбор Coinkite с оценками около 40 бит для Mk2 и Mk3 и около 72 бит для Mk4, Q и Mk5 Формулировка самой Coinkite по обеим оценкам — вместе с её же оговоркой, что они предварительные. Снято 15 августа 2026 года.

Оценки энтропии — из технического разбора Coinkite, сама компания называет их предварительными. Матрица исправленных версий — со страницы статуса безопасности COLDCARD, сверено 13 августа 2026 года.

Актуальные исправленные версии COLDCARD: 5.6.0 для Mk5/Mk4, 1.5.0Q для Q, 4.2.0 для Mk3 и Mk2, 6.6.0X и 6.6.0QX для Edge Исправленные версии — прямо от производителя, включая 4.2.0 для Mk2 и Mk3, которую таблица выше оставляет за скобками. Обратите внимание на строку под карточками: исправленная прошивка чинит будущую генерацию, уже созданные фразы всё равно требуют миграции — кроме случая с независимыми бросками кубика. Источник, снято 15 августа 2026 года.

Таблица пространства перебора у Block: не более 2^32 для Mk4, Q и Mk5 при успешном reseed Таблица Block. Важна строка «Mk4/Q/Mk5, successful reseed»: ≤2^32, если атакующий знает таймеры, против 72 бит у производителя. Снято 15 августа 2026 года.

Оговорка, которую стоит знать. Цифра 72 бита для старших моделей — это оценка самой Coinkite. Независимый разбор Block пришёл к более жёсткому выводу: энтропия защищённого элемента на Mk4 доходит только до 32-битного reseed, что даёт «не более 2^32 надёжно различимых потоков вывода». Block отдельно оговаривает, что более мягкий потолок в 73 бита «не является 73-битной криптостойкостью». Если у тебя старшая модель, планируй перенос, а не расчёт на удобную цифру.


Три вопроса, которые решают всё

Я прошла оба предупреждения и разбор Block построчно перед тем, как писать это, и практическая проверка сводится к трём пунктам:

1. Когда создана фраза. Если она сгенерирована на Coldcard с марта 2021 года до выхода исправленной версии для твоей модели — она попадает в затронутое окно. Фразы, созданные до версии 4.0.1, шли через аппаратный генератор.

2. Набирала ли ты свои броски кубика. Вот настоящий запасной выход. На затронутой прошивке Coldcard хешировала сгенерированную устройством фразу вместе с каждым броском, введённым через пункт Add Dice Rolls. Предупреждение безопасности точно называет порог:

От 50 до 98 независимых приватных бросков: один только ввод с кубика дал минимум 128 бит энтропии.

Предупреждение Coldcard с порогами по броскам кубика: 50–98, 99 и больше, меньше 50 Точные пороги из предупреждения — по этому блоку и стоит себя сверять. Снято 15 августа 2026 года.

Если броски были честными, приватными и нигде не записанными, случайность пришла от тебя, а не от сломанного генератора, и фраза не считается под угрозой от этой конкретной проблемы.

3. Есть ли сильная парольная фраза BIP-39. Длинная уникальная парольная фраза — второй замок, который сниженная энтропия сама по себе не открывает: атакующему придётся угадать ещё и её. Короткие, распространённые, шаблонные или переиспользованные не считаются. И важно: парольная фраза снижает риск, но не чинит сид — Coinkite всё равно советует таким пользователям переносить средства.

Одно «да» на первый пункт и два «нет» после него означают перенос.


Почему обновления прошивки недостаточно

Патч защищает будущее, а не прошлое. Именно на этом месте люди теряют деньги, потому что обновление ощущается как починка.

Фраза создаётся один раз. Её слабость записана в самих словах — в тех двенадцати или двадцати четырёх, что лежат у тебя на бумаге. Новая прошивка меняет то, как будет сделана следующая фраза, и не дотягивается до уже существующей. Страница статуса формулирует это без смягчений: обновление не равно миграции.

Страница статуса безопасности COLDCARD: исправление чинит будущую генерацию и не восстанавливает уже созданную фразу Производитель пишет это на своей же странице статуса: исправление чинит будущую генерацию и не восстанавливает уже созданную фразу. Снято 15 августа 2026 года.

Руководство COLDCARD по миграции сид-фразы: если фраза создана на затронутой прошивке, обновления устройства недостаточно Руководство Coinkite по миграции начинается с того же предупреждения и добавляет ещё одно, которое стоит повторить: никогда не вводите слова сид-фразы, парольную фразу, броски кубика или пароль от бэкапа ни на каком сайте и не отправляйте их в поддержку. Источник, снято 15 августа 2026 года.

Порядок, при котором миграция не превращается в отдельную катастрофу:

  1. Поставить исправленную версию для своей модели и убедиться в номере на экране.
  2. Создать на обновлённом Coldcard полностью новую фразу.
  3. Записать резервную копию и сверить её, а вместе с ней отпечаток кошелька.
  4. Проверить адрес получения на экране устройства, а не в программе.
  5. Отправить одну маленькую пробную сумму и дождаться её прихода.
  6. Только после этого переносить остаток.
  7. Хранить старую копию, пока вся сумма не придёт и не подтвердится.

Формулировку самой Coinkite стоит повторить: спешка на переносе кошелька способна создать более непосредственный риск, чем та проблема, от которой ты убегаешь.


А что с мультиподписью

Сама по себе мультиподпись не спасает, и об этом широко пишут неверно. Интуиция понятная: нужно несколько ключей, значит один слабый погоды не сделает. Но если все ключи набора созданы на затронутой прошивке Coldcard, все они одинаково угадываемы, и кворум падает целиком.

Block пишет об этом без оговорок:

Даже если Coldcard используется в схеме с мультиподписью, при условии что схема составлена исключительно из уязвимых устройств, воздействие уязвимости сохраняется. Для защиты от этой проблемы необходим кворум безопасных устройств.

Мультиподпись помогает здесь только тогда, когда достаточная часть её ключей сделана на устройствах вне этой истории. Если ты собрала схему 2 из 3 на трёх Coldcard, купленных вместе в 2022 году, у тебя одна проблема, а не три защиты.


Неудобный вывод про открытый код

Прошивка Coldcard открыта с 2018 года. Читать её мог кто угодно. Воспроизводимые сборки появились в том самом релизном поезде, который вёз ошибку. И дыра пролежала там пять лет.

Собственное резюме Coinkite необычно откровенно:

Исходный код COLDCARD всегда был открытым и общедоступным, поэтому мы вынуждены предположить, что кто-то использовал искусственный интеллект для проверки прежних версий нашей прошивки и наткнулся на эту проблему. Несколько недель назад мы сами прогнали одну из лучших доступных моделей по нашему коду в поисках проблем безопасности, и она не нашла ни этой ошибки, ни чего-либо серьёзного.

Открытость помогает. Открытость не равна аудиту. Мы десять лет считали пометку «открытый код» гарантией, и вот как разрыв между этими вещами выглядит на практике. Проверки подтверждали, что правильный аппаратный генератор присутствует в бинарнике, но никто не сверил, к какой реализации на самом деле приходит путь генерации фразы.

Это переворачивает вопрос, который мне задают чаще всего. «Какой аппаратный кошелёк лучше» — слабый вопрос. Сильный звучит так: откуда взялась случайность в моей фразе и могу ли я проверить это сама? Собственные броски кубика — единственный ответ, который не зависит от доверия к чьей-то сборочной цепочке. Ровно поэтому те, кто ими пользовался, вышли из этой истории нетронутыми.


Чего это не означает

Это не значит, что холодное хранение не работает. Сломался один генератор случайных чисел, в одной линейке устройств, из-за одной строчки настроек сборки. Идея держать ключи у себя цела.

Разумное разделение не поменялось: долгосрок — на своём железе, с фразой, за энтропию которой ты можешь отвечать, а та часть, которой ты активно торгуешь, живёт на площадке с резервами и страховым фондом. Это разные задачи, и инструменты им нужны разные.

Если хочется пройти механику от начала до конца, я записала полный разбор на YouTube. А если ты пересматриваешь свою схему целиком, сравнение аппаратных кошельков 2026 показывает, что ещё есть на столе, а чек-лист безопасности Bybit закрывает биржевую сторону.

📈 Открыть счёт на Bybit — бонус до $30,000 · 🔐 Сравнение аппаратных кошельков


Автор — Мария Клименок · CRYPTO LADY. В статье есть партнёрская ссылка на Bybit: цена для тебя та же, мне небольшая комиссия. Coldcard, Coinkite и Block партнёрами не являются, партнёрских ссылок на них здесь нет. Оценки энтропии — предварительные оценки производителя, они могут измениться по ходу расследования; формальный технический отчёт на 13 августа 2026 года опубликован не был. Статья образовательная и не является финансовой рекомендацией или рекомендацией по безопасности — сверь своё устройство с предупреждением производителя, прежде чем что-то делать.

Ведёшь кампанию и хочешь такой разбор своего продукта? Форматы и цены · Telegram

Maria Klimenok

Автор

Maria Klimenok

Основатель CRYPTO LADY

Восемь лет инвестирую, семь — делаю контент о крипте. Мультиязычная крипто-медиасеть (RU · EN · ES): обозреваю крипто-продукты, тестирую их на реальных деньгах и показываю проверяемые результаты — без хайпа.

Частые вопросы

Моя сид-фраза Coldcard затронута?+

Затронута, если фраза создана на Mk2 или Mk3 с прошивкой 4.0.1–4.1.9 либо на Mk4, Mk5 или Q до исправленных версий, И при создании ты не набирала минимум 50 своих бросков кубика, И кошелёк не закрыт сильной уникальной парольной фразой BIP-39. Если верно всё три — считай сид скомпрометированным и переноси средства. Фразы, созданные до версии 4.0.1, использовали аппаратный генератор и к проблеме отношения не имеют.

Обновление прошивки чинит уже созданную сид-фразу?+

Нет. Это самая недопонятая часть истории. Патч исправляет генерацию будущих фраз и не может изменить ту, что уже существует: слабость записана в самих словах, а не в устройстве. Обновиться и выдохнуть — худший из возможных ответов. Нужно создать новую фразу на исправленной прошивке и перенести средства.

Какие модели Coldcard затронуты и насколько сильно?+

Coinkite оценивает эффективное пространство перебора примерно в 40 бит на Mk2 и Mk3 и около 72 бит на Mk4, Mk5 и Q при норме 128. Независимый разбор Block по старшим моделям менее оптимистичен: вклад защищённого элемента упирается в 32-битный reseed. Переносить средства нужно со всех линеек, младшие просто срочнее.

Мультиподпись защищает от уязвимости Coldcard?+

Сама по себе нет. Если все ключи набора созданы на затронутой прошивке Coldcard, набор наследует слабость целиком. Block пишет прямо: нужен кворум устройств, не затронутых проблемой. Мультиподпись помогает только когда достаточная часть её ключей сделана вне этой истории.

Из-за чего возникла ошибка с энтропией?+

Из-за ошибки сборки и компоновки, попавшей в прошивку в марте 2021 года. Coinkite задала MICROPY_HW_ENABLE_RNG равной нулю, чтобы отключить программный генератор MicroPython, но проверка в libngu смотрела только на то, объявлен ли макрос, а не включён ли он. Сборка прошла успешно, и генерация фразы молча ушла на детерминированный программный запасной путь вместо аппаратного генератора STM32.

Как безопасно перенести средства?+

Установить исправленную версию для своей модели, создать на обновлённом устройстве полностью новую фразу, записать и сверить резервную копию и отпечаток кошелька, проверить адрес получения на экране устройства, отправить одну маленькую пробную сумму, убедиться что она пришла, и только потом переносить остаток. Старую копию хранить до полного подтверждения переноса. Спешка на миграции обходится дороже самой ошибки.

Стоит ли вообще пользоваться холодным хранением после такого?+

Стоит. Сломался один генератор случайных чисел в одной линейке устройств, а идея держать ключи у себя не сломалась. Урок в том, что правильный вопрос звучит не «какой кошелёк лучше», а «откуда взялась случайность в моей фразе и могу ли я это проверить». Открытый код не поймал ошибку за пять лет, поэтому открытость и аудит стоит считать разными вещами.

Хотите такой же обзор вашего проекта?

YouTube-обзор + Telegram + вечнозелёная статья в блоге — рынки EN · ES · RU-CIS. Живая аудитория, проверяемые результаты.

Читать дальше