К материалу

Разбор · слабая генерация seed-фраз

Seed-фраза была корректной. RNG — нет.

Кошелёк принял все слова. Резервная копия восстановилась. Контрольная сумма сошлась. Но ничто из этого не доказало, что секрет трудно угадать. Coldcard, Trust Wallet и Libbitcoin выпускали генераторы с опасно малым пространством поиска. Вот доказательства.

  • Нет seed-фраз
  • Нет адреса кошелька
  • Запускается в браузере

Реестр первоисточников

Доказательства.

Источник, дата, установленный факт и границы вывода. Всё остальное — комментарии.

Первоисточники по случаям слабой генерации seed-фраз
ЗаписьОпубликованоЧто подтверждаетсяОграничение
Уведомление Coinkite ↗Раскрытие производителя Обновлено 1 августа Затронутые версии, оценки ≈40/72 бит, условия для кубиков и парольной фразы, исправленные релизы и порядок миграции. Оценки предварительные. Уведомление не оценивает количество или сумму краж.
Ledger Donjon ↗CVE-2023-31290 Генератор расширений Trust Wallet имел лишь 32 бита энтропии. Donjon сгенерировал полный набор seed‑фраз. Затронуты кошельки, созданные расширением; импортированные seed-фразы не затронуты.
Milk Sad ↗CVE-2023-39910 bx 3.0.0–3.6.0 подтверждена эксплуатация; зафиксировано 2 600+ кошельков и ≈$900K сопутствующего ущерба. Утверждения о более старых bx версиях остаются предварительными в раскрытии.
BIP39 ↗Действующая спецификация Seed-фраза кодирует 128–256 бит исходной энтропии и контрольную сумму. Это формат переноса случайности, созданной компьютером. Формат не может гарантировать, что кошелёк действительно генерировал энтропию надёжно.

Интерактивно · без ввода секретов

Посмотрите, как один плохой генератор уничтожает пространство ключей.

Выберите задокументированный случай, затем измените синтетическую скорость поиска. Модель сравнивает только размер пространства ключей — она никогда не запрашивает seed‑фразу, адрес или идентификатор устройства.

01
Загрузить случайКаждый предустановленный набор соответствует задокументированной оценке энтропии.
02
Изменить энтропиюШкала log₂: каждый дополнительный бит удваивает количество состояний.
03
Установить синтетическую скоростьТолько для сравнения масштаба — не оценка реального оборудования для перебора.
ЗАГРУЖЕННЫЙ СЛУЧАЙColdcard Mk2 / Mk3
2⁴⁰
0 битКаждый блок = 8 бит128 бит
Всего состояний1.10 × 10¹²
Среднее количество попыток5.50 × 10¹¹
Полный перебор при 1 Млрд/с18 минут 20 секунд
По сравнению с 128 бит2⁸⁸× меньше пространство ключей≈3.09 × 10²⁶ раз меньше

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

Coldcard · раскрыто 30 июля 2026

Аппаратный RNG был на месте. Генератор seed-фраз его не использовал.

Это вывод самой Coinkite. Из-за ошибки интеграции прошивки генерация кошелька попала в детерминированный fallback MicroPython вместо аппаратного RNG устройства. Слова выглядели нормально. Кошельки работали. Пространство поиска — нет.

МАРТ 2021
РЕГРЕССИЯ

Одна функция изменилась. Модель безопасности изменилась вместе с ней.

В марте 2021 года генерацию кошелька перевели с аппаратно-зависимого пути RNG на ngu.random.bytes(). В собранной прошивке этот вызов вёл к программному fallback MicroPython. Нужный код RNG присутствовал, но генерация seed-фразы до него не доходила.

Сбой Ревьюеры подтвердили наличие реализации аппаратного RNG, но не проверили, какой код фактически вызывала генерация seed-фразы.
MK2 / MK3
MK2 / MK3 · 4.0.1–4.1.9

Уровень защиты 128 бит упал примерно до 40 бит.

Такова текущая предварительная оценка Coinkite для затронутых Mk2/Mk3. Модель атаки сужает возможные состояния устройства и временной диапазон, а публичный адрес позволяет проверять варианты офлайн.

expected ≥ 2¹²⁸estimated ≈ 2⁴⁰
MK4 / Q / MK5
MK4 / Q / MK5

Новые устройства лучше, но всё равно уязвимы.

В новых моделях к состоянию подмешивался материал secure element, но при повторной инициализации PRNG сохранялась лишь его часть. Оценка Coinkite — около 72 бит. Исправленные релизы: 5.6.0 для Mk4/Mk5, 1.5.0Q для Q и Edge 6.6.0X/6.6.0QX. Обновление прошивки не делает безопасными seed-фразы, созданные раньше.

expected ≥ 2¹²⁸estimated ≈ 2⁷²
30 ИЮЛЯ 2026
ЧАСТЬ, КОТОРУЮ ОБНОВЛЕНИЕ НЕ ИСПРАВИТ

Баг исправили. Старые seed-фразы — нет.

Прошивка исправит следующую seed-фразу, но не перепишет ту, которая уже управляет средствами. Coinkite рекомендует создать полностью новую seed-фразу на исправленной прошивке и перенести деньги.

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

Это был не первый случай

Кошельки уже создавали секреты, которые можно было перебрать.

Не «теоретический риск». Не «ошибка пользователя». Рабочие кошельки создавали валидные фразы из пространства, доступного перебору. А затем двигались реальные деньги.

2026

КЕЙС 01 · COLDCARD · УВЕДОМЛЕНИЕ ПРОИЗВОДИТЕЛЯ

Аппаратный RNG был на месте. Генератор seed-фраз его не задействовал.

  • На выходе: валидные seed‑фразы BIP39
  • Текущая оценка: ≈40 бит в затронутых Mk2/Mk3; ≈72 бит в более новых моделях
  • Установленный риск: риск подтверждён; источник не оценивает количество или сумму краж
  • Почему риск сохраняется: обновление прошивки не исправляет старую seed-фразу
  • Меры: исправленная прошивка, новая seed‑фраза, проверенная миграция
Технический отчёт производителя
2023

CASE 02 · TRUST WALLET · CVE-2023-31290

Каждая возможная seed‑фраза помещалась в один 32‑битный файл.

  • Причина: Mersenne Twister в пути WebAssembly
  • Пространство: примерно четыре миллиарда возможных входов генератора
  • Фактическое подтверждение: Ledger Donjon сгенерировал полный набор seed‑фраз
  • Охват: кошельки, созданные расширением; не импортированные seed-фразы
Раскрытие Ledger Donjon
2023

CASE 03 · MILK SAD · CVE-2023-39910

Двадцать четыре слова. Тридцать два бита системного времени.

  • Затронуты: bx seed в Libbitcoin Explorer 3.0.0–3.6.0
  • Причина: Mersenne Twister инициализирован 32‑битами системного времени
  • Ущерб: Наблюдено более 2 600 кошельков; ≈$900K в связанном ущербе
  • Почему риск сохраняется: импорт seed‑фразы в аппаратный кошелёк не усиливает её
Техническое раскрытие Milk Sad

КОЛИЧЕСТВО СЛОВ САМО ПО СЕБЕ НИЧЕГО НЕ ДОКАЗЫВАЕТ

Даже 24 слова могут содержать лишь 32 бита неопределённости.

BIP39 преобразует энтропию в читаемые слова и добавляет контрольную сумму. Он не проверяет источник энтропии. Если подать ему одно из 2³² предсказуемых состояний, он вернёт полностью валидную 24‑словную seed‑фразу. Контрольная сумма пройдет. У атакующего останется лишь 2³² вариантов.

Единственный полезный вопрос

Вы знаете, откуда взялась ваша seed-фраза?

Важно не где seed-фраза хранится сейчас, а где она создана, какой версией и из какого источника случайности. Восемь фактов. Без сканирования seed-фразы. Без ложного сертификата.

ПАСПОРТ ГЕНЕРАЦИИ / 8 ФАКТОВВопрос 1 из 8
0%
01 · ИСТОЧНИК ГЕНЕРАЦИИГде была впервые сгенерирована seed-фраза?

Кошелёк, хранящий её сейчас, может не быть тем, что её создал.

02 · ВЕРСИЯ ПРИ СОЗДАНИИМожете подтвердить версию, на которой была создана seed-фраза?

Последующее обновление не меняет уже созданные ключи.

03 · ИСТОЧНИК ЭНТРОПИИЧем подтверждён источник случайности?

Количество слов и верная контрольная сумма не доказывают непредсказуемость.

04 · ЧЕЛОВЕЧЕСКИЙ ВЫБОРВыбирал ли человек, переупорядочивал или заменял какие‑либо слова seed‑фразы?

Люди создают шаблоны — даже когда результат кажется случайным.

05 · ИЗОЛЯЦИЯ РЕЗЕРВНОЙ КОПИИКасалась ли seed‑фраза когда‑либо сетевого или оснащённого камерой устройства?

Надёжная генерация не компенсирует скопированный секрет.

06 · ПОДТВЕРЖДЕНИЕ ВОССТАНОВЛЕНИЯКак проверялась резервная копия?

Опечатка может создать другой валидный кошелёк вместо явной ошибки.

07 · ДИСЦИПЛИНА ПАРОЛЬНОЙ ФРАЗЫЕсли вы используете парольную фразу BIP39, понимаете ли вы последствия ошибки?

Любая опечатка открывает другой валидный кошелёк; потеря парольной фразы означает потерю доступа.

08 · ГОТОВНОСТЬ К МИГРАЦИИМожете ли вы заменить затронутую seed-фразу без импровизации?

Поспешный перенос может привести к потере быстрее, чем сама уязвимость.

Что мы делаем с вашими ответами

Ничего. Аудит выполняется в этой вкладке браузера. Запрос не отправляется, ничего не сохраняется, и мы никогда не видим результат. Число лишь ранжирует выбранные вами пробелы; оно не измеряет энтропию существующей seed-фразы.

Если путь генерации был затронут

Обновление программы — не устранение риска. Устранение риска — перенос средств.

Следуйте точному официальному уведомлению. Порядок важен: сначала проверка, затем малая тестовая сумма, только потом перенос. Паника превращает одну скомпрометированную seed-фразу в два потерянных кошелька.

01

ПРЕЖДЕ ЧЕМ ТРОНУТЬ СРЕДСТВА

Докажите, какой генератор создал seed-фразу.

  • Запишите генератор, модель, версию и дату создания.
  • Отличайте созданные seed-фразы от импортированных.
  • Полностью прочитайте актуальное официальное уведомление.
  • Не вставляйте seed-фразу в веб‑сайт или «сканер».
02

СОЗДАТЬ ЗАМЕНУ

Новая seed-фраза. Исправленный код. Проверенная резервная копия.

  • Проверить исправленный релиз и его подлинность.
  • Сгенерировать полностью новую seed-фразу — не редактировать старые слова.
  • Создать резервную копию перед получением средств.
  • Перезапустите устройство или выполните восстановление; сравните fingerprint кошелька и адрес.
Обновление меняет код. Только новая seed-фраза меняет секрет.
03

НЕ СОЗДАВАЙТЕ ВТОРОГО ИНЦИДЕНТА

Сначала малая сумма. Проверка. Затем остальное.

  1. Проверить адрес получения на надёжном дисплее.
  2. Отправить и подтвердить небольшую тестовую сумму.
  3. Ещё раз проверьте адрес назначения в новом кошельке.
  4. Перевести оставшийся баланс.
  5. Сохранять старую резервную копию до подтверждения миграции.

Игнорируйте внезапные предложения помощи с восстановлением. Для помощи им не нужна ваша seed-фраза.

БЕЗОПАСНОСТЬ ЖЕРТВЫ / RECOVERY SCAM ПРОЧИТАЙТЕ ДО ОПЛАТЫ

Просьба от PhishDestroy

Если у вас уже украли деньги — не покупайте вторую ложь.

Вам предлагают подобрать ключи к кошельку, «взломать мошенника в ответ» или гарантированно вернуть деньги за аванс? Считайте, что началась вторая атака. Это может быть та же группа или люди, купившие список жертв. Ответственный специалист не гарантирует результат, который не контролирует.

ПРАВИЛО НУЛЕВОГО ДОВЕРИЯ

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

01 / СТОП

Положите трубку. Завершите переписку.

Давление, секретность, чувство вины, «я за тебя договорился», запрет говорить с близкими, удалённый доступ, новые налоги, комиссии за gas или «активацию», просьба занять деньги — стоп-сигналы. Прекратите контакт. Поспите перед любым решением.

02 / РАССКАЖИТЕ БЛИЗКОМУ

Покажите доверенному человеку всю переписку.

Скам, убедительный изнутри, со стороны бывает очевиден. Покажите сообщения целиком, а не пересказ, близкому человеку, который не участвует в ситуации. Независимый взгляд ничего не стоит.

03 / СОХРАНИТЕ + СООБЩИТЕ

Заморозка — ещё не возврат. Соберите доказательства.

Сохраните хеши транзакций, адреса кошельков, URL, имена пользователей, телефоны, сообщения, голосовые записи, чеки и метки времени. Подайте заявление в местные правоохранительные органы и сообщите в Chainabuse. Даже если биржа заморозила активы, для законного возврата обычно нужны официальное дело, подтверждение права на активы и ваше участие.

Чужой кошелёк — не цель для «возврата».

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

Звёзды на GitHub не делают «брутфорсер кошельков» безопасным.

Не скачивайте «mega-brute» и другие программы, обещающие перебирать миллионы ключей и находить биткоины. Готовый бинарник может красть файлы кошельков, пароли и seed-фразы, включить компьютер в ботнет или майнить на вашей видеокарте в пользу злоумышленника. Проверка в VirusTotal может обнаружить известные угрозы, но чистый результат не доказывает безопасность. Если вы не умеете самостоятельно проверить код и изолировать запуск, не запускайте его. Попытка получить доступ к чужому кошельку также может повлечь серьёзные правовые последствия.

PhishDestroy не возвращает деньги, не консультирует по возврату, не ведёт частные recovery-кейсы и не рекомендует платных «специалистов». Наша работа — выявлять фишинг и скам, сохранять доказательства и добиваться отключения их инфраструктуры через регистраторов, хостинги и защитные сервисы. Возврат средств — вопрос для правоохранительных органов, бирж и других организаций, которые вправе замораживать или возвращать активы; мы в этом процессе не участвуем. Заявление не гарантирует возврат, но может связать адреса, сохранить доказательства и предупредить следующую жертву. Молчание этого не сделает.

Для законного заявления не нужны ваша seed-фраза или приватный ключ. Никогда не отправляйте их полиции, бирже, расследователю, PhishDestroy, ИИ или любому, кто называет себя вашей поддержкой.

Граница доказательств

Что мы знаем. И чего не знаем.

МОЖЕМ

Сопоставить ответы с условиями уведомления Coldcard, не собирая секреты.

МОЖЕМ

Показать пробелы в происхождении, резервировании, восстановлении и готовности к миграции.

НЕ МОЖЕМ

Измерить энтропию существующей seed-фразы по её словам или публичному адресу.

НЕ МОЖЕМ

Доказать, что кошелёк не скомпрометирован, восстанавливаем и безопасен для хранения средств.

Без магии

Факты — без кошелёчного фольклора.

Каждый ответ ниже основан на спецификации или раскрытых материалах инцидента.

Доказывает ли валидная фраза из 12 или 24 слов, что она случайна?

Нет. BIP39 задаёт формат и контрольную сумму. Слабый генератор может создать валидную фразу из малого предсказуемого множества состояний.

Исправляет ли обновление прошивки старую слабую seed-фразу?

Нет. Обновление исправляет только будущую генерацию. Для инцидента Coldcard 2026 года Coinkite предписывает создать новую seed-фразу на исправленной прошивке и перенести средства, если не применимо исключение для независимо добавленных бросков кубика.

Являются ли 24 слова автоматически безопаснее 12?

Только если базовая энтропия надёжна. Двадцать четыре слова могут кодировать 256 бит, но преобразование 32‑битного состояния генератора в 24 слова не создаёт 256 бит непредсказуемости.

Можно ли импортировать слабую seed-фразу в аппаратный кошелёк и исправить её?

Нет. Та же seed-фраза создаёт те же ключи. Новое устройство может защитить дальнейшее использование, но не добавит энтропии уже существующему ключевому материалу.

Стоит ли вводить seed-фразу в проверку энтропии?

Никогда. По одним словам обычно нельзя подтвердить качество исходного генератора, а ввод на сайте раскрывает корневой секрет кошелька.

Может ли этот аудит доказать безопасность кошелька?

Нет. Аудит фиксирует известные факты о генерации, но не видит исходную энтропию и не сертифицирует кошелёк. Неизвестная версия или применимое уведомление важнее результата.

Читать оригиналы

Не верьте нам на слово.

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

  1. 01
    Coinkite — Coldcard Security Advisory

    Затронутые модели и ветки релизов, исключение для кубиков, исправленные версии и инструкция по миграции. Опубликовано 30 июля 2026 года; обновлено 1 августа 2026 года.

  2. 02
    Coinkite — Technical Deep Dive into the Entropy Issue

    Коренная причина, текущие оценки 40‑бит/72‑бит, сбой сборки и детали исправления.

  3. 03
    Block Engineering — предсказуемый откат RNG

    Независимый анализ пути исполнения в исходном коде, оговорки и границы пространства поиска. Block подчёркивает: это был ранний анализ, а не полная эмпирическая проверка.

  4. 04
    Ledger Donjon — раскрытие расширения Trust Wallet

    32‑битная энтропия в пути генерации WebAssembly и перебор всех возможных seed‑фраз.

  5. 05
    Milk Sad — техническое раскрытие CVE-2023-39910

    32-битный Mersenne Twister Libbitcoin Explorer, инициализированный системным временем; более 2 600 обнаруженных кошельков и около $900K связанного ущерба.

  6. 06
    Bitcoin BIPs — спецификация BIP39

    Связи энтропии, контрольной суммы и длины seed‑фразы; спецификация указывает, что seed‑фраза переносит сгенерированную компьютером случайность.

  7. 07
    Документация Coldcard — Master Seed

    Текущие инструкции по генерации, кубикам и резервированию. При реагировании на инцидент 2026 года официальное уведомление важнее общей документации.

  8. 08
    FAQ Milk Sad — существующие слабые кошельки

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

Границы доказательств. Мы не связаны ни с одной из упомянутых компаний. Мы не утверждаем, что средства украли с каждого затронутого кошелька. Публичный адрес сам по себе не раскрывает seed-фразу — он лишь позволяет атакующему проверять варианты из сокращённого пространства поиска. По мере расследования Coldcard факты могут уточняться. Исправления отправляйте через ответственное раскрытие.