Open Source против source-available: чему провал Coldcard учит о стимулах в биткоин-софте

Закрытый против открытого исходного кода — спор, разделяющий биткоин- и более широкую криптоиндустрию уже более десяти лет. Сторонники биткоина давно доказывают, что финансовая инфраструктура мира должна строиться публично. Прозрачность и проверяемость, говорят они, не подлежат обсуждению, когда на кону реальные деньги. Однако прикладной и легаси-слои финансов часто с этим не согласны.
Тем не менее недавний взлом Coldcard — популярного аппаратного кошелька для самостоятельного хранения, где пользователи потеряли биткоинов более чем на $100 млн (свыше 1500 BTC), — поставил под сомнение то, что «Open Source» на самом деле означает. Он показал, что, вероятно, большинство людей, даже многие убеждённые биткоинеры, плохо разбираются в философии разработки Open Source и в том, когда она даёт сбой.
Принципы и терминология
Язык вокруг Open Source может быть непростым. Free and Open Source Software (FOSS) и Free/Libre and Open Source Software (FLOSS) обозначают ПО, отвечающее формальным определениям свободы пользователя.
Фонд свободного ПО (FSF) определяет свободное ПО через четыре существенные свободы:
- Свобода 0: свобода запускать программу как угодно, для любой цели.
- Свобода 1: свобода изучать, как работает программа, и менять её, чтобы она выполняла ваши вычисления как вам нужно (доступ к исходному коду — предпосылка для этого).
- Свобода 2: свобода распространять копии, чтобы вы могли помогать другим.
- Свобода 3: свобода распространять другим копии ваших изменённых версий (доступ к исходному коду — предпосылка для этого).
FSF подчёркивает, что «free» относится к свободе, а не к цене, в известной цитате, часто звучащей от сторонников FOSS: «"free" как в "free speech" (свобода слова), а не как в "free beer" (бесплатное пиво)».
Определение Open Source от Open Source Initiative добавляет десять практических критериев. К ним относятся свободное распространение без роялти, доступность исходного кода в предпочтительной для модификации форме, право создавать и распространять производные работы и отсутствие дискриминации лиц, групп или сфер деятельности — включая коммерческое использование. Лицензия должна отвечать всем десяти критериям, чтобы квалифицироваться как Open Source по стандарту OSI.
«Source available» или «source viewable» — это другое. Код может быть публично читаемым, тогда как лицензия ограничивает право его продавать. Прошивка Coldcard, например, выпущена под условиями MIT плюс Commons Clause. Эта оговорка специально убирает право «продавать» ПО — определённое как предоставление его третьим сторонам за плату или иное вознаграждение в продукте или услуге, ценность которых целиком или в значительной степени происходит из самого этого ПО. Иными словами, прошивку Coldcard нельзя было использовать коммерчески.
Собственный FAQ Commons Clause прямо заявляет об этой разнице: «Это "Open Source"? Нет». В нём отмечается, что применение оговорки означает, что ПО отвечает многим элементам Определения Open Source, но не всем, и поэтому его не следует называть Open Source.
Эти различия важны. Публикация исходного кода создаёт возможность инспекции. Именно предоставление полного набора прав, определённых Определением свободного ПО или Определением Open Source, делает ПО FOSS или FLOSS. Но обладание «знаком одобрения», возможностью размахивать флагом FOSS или FLOSS, — не суть. Коммерческая свобода в FOSS раскрывает сторонние стимулы тестировать и проверять код, которых иначе могло бы не быть, доказывают критики.
Четыре свободы образуют философское ядро Open Source. На практике они опираются на экономическое допущение: что достаточно мотивированных людей действительно изучат код. Когда это допущение не выполняется, система порождает классическую «трагедию общин» — ситуацию, когда общий ресурс чрезмерно используется или запускается, потому что отдельные пользователи действуют в собственных краткосрочных интересах, а не в долгосрочных интересах группы.
У каждого есть стимул брать больше (или вкладывать меньше), чем устойчиво, и ресурс в результате деградирует. Это происходит, когда есть рассогласование между краткосрочным интересом индивида и долгосрочным интересом группы. Иногда согласованность есть; иногда нет.
Один биткоин-разработчик выразил проблему прямо: «Использование моков и заглушек Open Source-кода в тестах безответственно и близоруко. Open Source-код считается безопасным, потому что кто угодно может его проверить. Если вы не готовы сделать минимум — протестировать функции, от которых реально зависите, — то вы ведёте себя как пиявка».
В результате Open Source сам по себе не создаёт безопасность. Он создаёт возможность верификации. Произойдёт ли эта верификация — зависит от стимулов, навыков и внимания. Считается, что исторический FOSS со временем «закаляется», по мере того как уязвимости обнаруживаются, раскрываются и патчатся, создавая прочные основания, на которых строят другие. Ядро Linux — прекрасный пример такого закалённого FOSS; оно питает подавляющее большинство серверов мира, облачную инфраструктуру, устройства Android и встраиваемые системы, что делает его одним из самых широко развёрнутых ПО в истории.
Open Source на примере Bitcoin Core
Bitcoin Core, эталонная реализация биткоина, — ещё один показательный крупномасштабный пример чистого Open Source, работающего «в дикой природе». ПО, стоящее за большей частью связанной с биткоином инфраструктуры, выпущено под лицензией MIT. Его процесс разработки по замыслу широко публичен.
Кто угодно может открыть pull request. Ревью кода — основной фильтр и рекомендуемая точка входа для новых контрибьюторов. Ревьюеры используют формальную лексику: Concept ACK (признание и согласие с целью), Approach ACK (согласие с целью и методом), ACK с конкретным хешем коммита (протестировано и одобрено к слиянию) или NACK (несогласие, которое должно сопровождаться техническим обоснованием).
Мейнтейнеры взвешивают консенсус среди контрибьюторов и технические достоинства изменения перед слиянием. Изменения, критичные для консенсуса, сталкиваются с ещё более высокой планкой и обычно требуют Bitcoin Improvement Proposal и обширных многолетних обсуждений в рассылке bitcoin-dev и в IRC.
Нет привилегированной касты «разработчиков Bitcoin Core». Доверие зарабатывается через продемонстрированную компетентность со временем. Мейнтейнеры существуют по практическим причинам — аудит и слияние кода, управление релизами и базовая модерация, — но производимая работа есть чистый Open Source-код, который кто угодно может инспектировать, собрать, форкнуть или запустить. Разработчиков, чьи «коммиты» вливаются в Bitcoin Core, широко называют контрибьюторами Bitcoin Core.
Calle, давний Open Source-разработчик биткоина, недавно резюмировал реальность: «Люди, которые думают, что Core — некое непрозрачное учреждение, действующее в тени, либо слишком ленивы, либо слишком глупы, чтобы пойти и посмотреть самим. Буквально всё, что они делают, публично, любой может вставить слово, а результат их работы — чистый Open Source-код».
Финансирование этой работы приходит в основном через некоммерческие и грантовые структуры вроде Brink, OpenSats, Spiral и других, а не через традиционную продуктовую дорожную карту компании. Техническое обсуждение и споры проходят публично в рассылке bitcoin-dev и в IRC-канале #bitcoin-core-dev на Libera Chat, где предложения разбираются до и в ходе процесса pull request. Тикеты и pull request на GitHub часто несут истории комментариев, тянущиеся на десятилетие. Результат — культура разработки, оптимизированная под корректность и проверяемость, а не под скорость или коммерческую скорость выпуска фич.
Экономика Open Source
Большинство пользователей Open Source или source-available ПО никогда не читают код сами. Они полагаются на допущение, что его изучают другие. В случае Coldcard критический изъян энтропии оставался в публично доступной прошивке примерно пять лет, прежде чем был проэксплуатирован и таким образом обнаружен.
Баг попал в кодовую базу во время крупного переписывания 2021 года, которое также убрало оставшийся GPL-производный код от Trezor — первого аппаратного кошелька, а теперь второго по величине в индустрии самостоятельного хранения. Библиотека в центре сбоя энтропии, заменившая trezor-crypto, называется libngu и имела минимальное внешнее внимание — лишь 7 «звёзд» и менее 20 форков за более чем 5 лет использования в продакшене. Сравните это с 512 «звёздами» библиотеки trezor-crypto наряду с 212 форками или 793 форками и 1,8 тыс. «звёзд» более современной trezor-firmware. Одна лишь доступность исходного кода не породила того ревью, которое имело значение, потому что другим коммерческим, хорошо финансируемым компаниям было ограничено её использование — или так, по крайней мере, доказывали бы критики.
Ставки в биткоине выше, чем в большинстве программных областей. Критический изъян можно напрямую конвертировать в ликвидные средства на открытом рынке. Хотя первая половина украденных у Coldcard средств всё ещё держится на горстке адресов и хакера когда-нибудь могут поймать, последовавшие за ним подражатели были осторожнее, и некоторые украли больше биткоинов и успешно их отмыли, по данным Galaxy Research. Устойчивость биткоина к цензуре и его неизменяемая переводимость создают и мощный стимул для атакующих, и «дарвиновский» фильтр; в долгосроке склонны выживать лишь те проекты, которые непрерывно привлекают компетентное ревью, и те пользователи и компании, которые принимают серьёзные меры предосторожности.
Выбор лицензии формирует эти стимулы, по мнению сторонников FOSS, годами критиковавших лицензионные решения Coinkite. Чистые Open Source-лицензии максимизируют пул потенциальных ревьюеров и форков. Ограниченные «source available» лицензии могут снизить коммерческое «безбилетничество», но также сужают круг людей, у которых есть и юридическое право, и экономический мотив вкладывать глубокое внимание. Увы, бремя ревью кода при ограничительной лицензии возвращается к самой компании, ставя её в некотором смысле ближе к закрытому коду, чем к открытому.
Как ИИ меняет разработку открытого и закрытого кода
Искусственный интеллект теперь тоже меняет баланс между FOSS и закрытым кодом.
После инцидента с Coldcard волонтёрская инициатива, известная как Bitcoin Red Team — под руководством разработчиков, включая Calle и Роба Гамильтона из AnchorWatch, и при поддержке OpenSats, — использовала передовые ИИ-модели для сканирования сотен Open Source-репозиториев биткоина. За один интенсивный период команда подала тысячи находок, включая десятки, классифицированных как критические или высокой серьёзности, по сотням проектов. Ответственные раскрытия были сделаны мейнтейнерам до более широкой публикации. Упражнение показало, что систематическое ревью с помощью ИИ может выявлять проблемы в масштабе и со скоростью, ранее непрактичными для чисто человеческих команд.
На этом фронте стоит отметить, что Red Team нашла китайские модели с открытыми весами куда более надёжными, чем закрытые американские модели, которые, даже с кибер-разрешениями и первоклассным доступом, отказывались отвечать на запросы Red Team, — тренд, о котором американские разработчики сожалеют.
В то же время поток сгенерированного ИИ кода создал новое давление типа «отказ в обслуживании» на мейнтейнеров FOSS. Проверка ИИ-вывода часто занимает больше времени, чем его генерация. Некоторые Open Source-проекты за пределами биткоина ограничили трекеры задач или ввели строгие правила против ИИ-контрибуций просто ради того, чтобы оставаться работоспособными.
Источник: Bitcoin Magazine
Новости в мире криптовалют
Случайная цитата о деньгах
"Нарушая свой долг, тем самым нарушают свои права."














* для поиска по базе прокси просто вводите название страны, например: Россия, США, Таиланд