Bitcoinnews

114 миллионов украдены из-за багов Coldcard: почему никто не замечал пять лет

Уязвимость в firmware кошелька Coldcard привела к краже $114 млн биткоина. Код был открыт для проверки, но сообщество полагалось на репутацию вместо верификации.

Из кошельков, созданных на Coldcard, украдено почти 114 миллионов долларов биткоина. Атакующие воспользовались багом, из-за которого генератор ключей производил случайные числа с недостаточной энтропией. Первая волна атак за 25 минут опустошила примерно 500 кошельков. Но самое странное: уязвимость попала в код в марте 2021 года и находилась в открытом исходном коде пять лет. Никто её не заметил.

Открытый код — но никто не смотрел

Исходный код Coldcard всегда был доступен для проверки. Девиз биткоин-сообщества звучит как «не верь, проверяй», но за пять лет фактически никто так и не заглянул в нужное место. История получается ещё более показательна. В 2020 году прошивка распространялась под лицензией GPL. Когда конкурент объявил о своём устройстве, построенном на коде GPL, генеральный директор Coinkite Родольфо Новак (NVK) публично пожалел о выборе GPL и вскоре Coldcard перешёл на лицензию с Commons Clause, которая перестала быть открытой в традиционном смысле.

После смены лицензии последовал полный переход. Коммит в марте 2021, где убрали последний GPL-код, — это именно тот коммит, который сломал генерацию ключей. Легально обновить кодовую базу можно было по разным причинам, но хронология показательна: ограничение конкуренции предшествовало спешной замене проверенного криптографического кода, а замена содержала баг.

Те, кто проверял, получили угрозы

Ещё более серьёзная проблема — что происходило с людьми, которые всё же решили смотреть. В августе 2020 года исследователи из Shift Crypto и Nunchuk обнаружили дыру в многоподписной верификации Coldcard. Coinkite признал баг и выпустил исправление, но NVK на подкасте Citadel Dispatch назвал раскрытие уязвимости «PR-терроризмом» и усомнился, считается ли исследователь без CVE профессионалом. В 2023, когда проект WalletScrutiny сообщил о проблемах с воспроизведением старых сборок, ответ обвинил проект в некомпетентности или злом умыслом и намекнул на судебное преследование.

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

Репутация вместо проверки

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

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

Ведущий BTC Sessions Бен Перрин недавно с необычной честностью признал этот механизм: он закрывал глаза на поведение, предполагая, что высокомерие идёт в комплекте с способностью создавать и защищать. Большая часть индустрии сделала тот же расчёт. Кризис доверия, который теперь прокатывается по сектору самохранения, — это счёт, пришедший к оплате.

Что дальше

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

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

Читать на bitcoinnews