Помилка в Coldcard призвела до викрадення біткоїнів на $130 млн

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