
Bitcoin користувачі знову розглядають основне припущення щодо самоконтролю після розкриття проблеми з «низькою ентропією», пов’язаної з прошивкою апаратного гаманця Coldcard. За повідомленнями та аналізом, поширеними в криптоспільноті, публічно зафіксовані крадіжки, пов’язані з цією вадою, почалися близько 30 липня, що спонукало інвесторів та довготривалих власників апаратних гаманців уважно переглянути, як генеруються їх seed-фрази.
Хоча пристрої Coldcard давно цінуються за офлайн-безпеку та контроль користувача, цей випадок підкреслює незручну правду: якщо випадковість, використовувана для створення посіву гаманця, може бути передбачена або ефективно зменшена, нападники можуть підібрати приватні ключі методом перебору. Ця ситуація також відновила дискусію в екосистемі щодо того, що насправді означає «перевірити» безпечну ентропію — і яку частину слід передавати апаратному забезпеченню, а яку виконувати користувачеві.
Основні висновки
- Прошивка Coldcard, починаючи з версії 4.0.1 (випущеної у березні 2021 року), описується як використання Yasmarang PRNG від MicroPython замість правильного використання апаратного RNG STM32 пристрою.
- Coinkite оцінив, що вплинуті моделі Coldcard генерували ключі з приблизно 40 бітами ентропії (Mk2/Mk3) або близько 70 біт (Mk4/Mk5/Q), що недостатньо для надійного 12-слівного BIP-39 ключа.
- Зловмисники, як повідомляється, підібрали приватні ключі після того, як проблема стала відомою, причому згадка про охоплення Cointelegraph вказує на втрачену вартість понад $100 мільйонів у BTC.
- Користувачі, які створили seed-фрази за допомогою достатньої фізичної ентропії (наприклад, кубиків),, як вважається, зменшують залежність від скомпрометованого шляху випадковості.
- Інструменти спільноти, такі як моніторинг пасток, використовувалися для оцінки, які типи гаманців нападники ефективно опорожнюють.
Що змінилося в генерації випадковості Coldcard
Центральна технічна теза полягає в тому, що апаратні гаманці Coldcard містили те, що виглядало як функціональні STM32 «генератори справжніх випадкових чисел» (TRNG), розроблені для створення непередбачуваних seed-фраз. Однак після того, як творець Coldcard NVK розпочав переписування прошивки з метою переходу від моделі вільного програмного забезпечення з ліцензією GPL до моделі лише для читання, аналітики стверджують, що було введено серйозну вразливість.
З версії прошивки 4.0.1, випущеної у березні 2021 року, пристрій, як повідомляється, перейшов на PRNG Yasmarang від MicroPython замість правильного використання апаратного RNG STM32. Генерація випадкових чисел описується як із самого початку складна для комп’ютерних систем, і для створення безпечного посіву зазвичай передбачається включення достатньої кількості зовнішньої фізичної непередбачуваності, щоб зробити вихідні дані неможливими для вгадування.
У екосистемі Yasmarang PRNG широко характеризували як передзапрограмований запасний варіант. Джерело статті посилалося на інженерний аналіз від Block, який пояснює «передбачуваний запасний RNG» та механізм підходу «32-бітного повторного ініціалізації». Пізніше Coinkite сперечалася з цією характеристикою у пості на X, заперечуючи висновок про те, що пристрій просто жорстко підключений до очевидно слабкого методу.
Навіть з урахуванням цього спору, більш широке наслідок залишається: коли генерація посіву гаманця не є справді непередбачуваною, приватні ключі можуть стати пошуковими. Джерело статті згадує припущення на X щодо того, чи було намірно вставлено тильний хід, а також цитує думку журналіста з Bitcoin про те, що цей баг міг виникнути через практики розробки та спроби приховати помилки за допомогою випадкових змін.
Рівні ентропії, безпека сімени та чому перебір мав значення
Оцінки Coinkite, наведені у вихідному матеріалі, конкретно вказують на масштаб проблеми. Було оцінено, що пристрої Mk2 і Mk3 генерували seed-фрази з приблизно 40 бітами ентропії, тоді як Mk4, Mk5 і Q досягали приблизно 70 біт. Як зазначається у джерелі, обидва ці показники значно нижчі за рівень 128 біт, який загалом вважається достатнім для безпечної 12-слівної seed-фрази.
Ця недостача має значення, бо вона змінює модель загрози. Замість того щоб вимагати від нападників перебору астрономічних просторів ключів, зниження ефективної ентропії може робити виявлення ключів значно більш практичним. Додатково джерело зазначає, що після виявлення цього недоліку нападники змогли перебрати приватні ключі та вкрасти кошти, що підтверджується охопленням Cointelegraph, де описувалися крадіжки на суму понад 100 мільйонів доларів США в BTC.
Ймовірність того, що конкретний гаманець був знайдений і очищений, вказується як залежна від додаткових змінних — наприклад, чи було додано додаткове «запалювання кубиків», чи використовувався BIP-39 пароль та нестандартний шлях походження. Ці деталі підкреслюють ключеву невизначеність для читачів: вплив експлойту може бути неоднаковим для всіх користувачів і всіх конфігурацій гаманців.
Використання фізичної ентропії для зменшення залежності від апаратного забезпечення
За межами негайного скандалу, пов’язаного з прошивкою Coldcard, цей випадок підкреслив постійний принцип спільноти: «Не довіряй, перевіряй». У вихідному матеріалі стверджується, що користувачі, які уникнули залежності від непрозорого апаратного генерування для найбільш критичного кроку — створення сіда — мали більше шансів уникнути впливу проблеми з низькою ентропією.
Практична перевага полягає в тому, що кидання кубиків надає процес, який користувачі можуть спостерігати та перевіряти самостійно. Навпаки, перевірка якості TRNG вимагала б детального огляду електроніки та прошивки — роботи, яку більшість користувачів не можуть реалізувати.
Важливо, що вихідний матеріал вказує, що безпечне самоконтролювання все ще не вимагає відмови від можливості перевірки. Якщо seed-фраза генерується з фізичної ентропії, залежність користувача від скомпрометованого апаратного шляху зменшується. Також у ньому описуються способи перевірки, чи збігаються отримані артефакти між пристроями — наприклад, імпорт тієї ж seed-фрази на інший пристрій для перевірки отриманих xpub та адрес отримання.
Для виявлення інших класів компрометації в вихідному матеріалі також згадується перевірка підписів: витік nonce через повітряний розрив можна виявити, порівнюючи, чи генерують два пристрої однаковий підпис при наданні ідентичного непідписаного транзакційного запиту, з посиланням на RFC 6979 щодо детермінованої поведінки підпису.
Хоча ці перевірки не можуть замінити справжню непередбачуваність на момент створення ентропії, вони створюють додаткові перешкоди для атакувачів і можуть допомогти користувачам виявити незвичність у процесі обробки та підписання транзакцій.
Як спільнота генерує ентропію, не довіряючи одному пристрою
Після того як експлойт став відомим, джерело повідомляє, що методи та пропозиції щодо генерації ентропії безпосередньо з фізичних вхідних даних швидко поширилися серед спільноти. Один з поширених підходів, описаний у статті, передбачає перевірку перетворення кидків кубиків у seed-фразу шляхом перевірки здатності пристрою правильно перетворювати грані кубиків у seed-фразу BIP-39 за допомогою хешування. У статті зазначається, що використання понад 100 кидків кубиків може бути достатнім для генерації ентропії для 24-слівної seed-фрази.
Інші варіанти включають паперові системи. Джерело посилається на таблицю, опубліковану Bitbox, яка використовує метод пошуку для зіставлення комбінацій результатів кидання кубиків — плюс підкидання монети — безпосередньо зі словами BIP-39 без використання електроніки. Також згадуються більш просунуті робочі листи, включаючи підхід codex32 для зменшення зміщення кубиків, який використовує екстрактор фон Неймана, щоб навіть зміщені кубики могли генерувати безпечний посівний матеріал, який можна обчислити вручну.
Для користувачів, які шукають зручність, вихідний матеріал зазначає альтернативи, що зменшують ймовірність помилок, такі як друк і вирізання фрагментів слів BIP-39, їх перемішування та вибір випадкових слів — методи, які спрощують такі продукти, як Seedsticks або Entropia. Також згадуються спеціалізовані пристрої, призначені для перевіреної розподіленої генерації ентропії між пристроями, а також приклади фізичних генераторів ентропії, розроблених спільнотою та опублікованих на X.
В сукупності ці ідеї зміщують акцент з питання «який холодний гаманець найбільш надійний» на питання «як генерується випадковість у той момент, коли безпека залежить від неї». На практиці інцидент із Coldcard надихнув багатьох користувачів ставитися до створення seed менше як до чорної скриньки, а більше як до процесу, який можна відтворити й логічно проаналізувати.
У майбутньому читачам слід стежити за більш чітким технічним консенсусом щодо того, як вплинутий шлях прошивки призводив до виводів з низькою ентропією у різних моделях, а також за продовженням аналітичних інструментів — таких як відстеження медових пасток, згаданих у джерелі — для уточнення оцінок щодо того, які поведінки гаманця залишаються найбільш стійкими. Доти, найбезпечніший практичний висновок простий: де це можливо, робіть генерацію сем’ї як незалежно перевіряємою, як і решта вашого процесу самоконтролю.
Цю статтю спочатку опубліковано як Bitcoin-користувачі переглядають самоконтроль після зростання занепокоєнь щодо ризиків на Crypto Breaking News – вашій надійній джерелі новин про криптовалюту, новин про bitcoin та оновлень блокчейну.

