Ещё в 2016 году разработка биткоина стала примером для всех разработчиков открытого ПО благодаря Gitian — «компьютера в компьютере», который позволяет проверять двоичные (бинарные) файлы более надежным и прозрачным способом. Но с интеграцией Guix, которая поддерживает детерминированные сборки Bitcoin Core, работа над протоколом станет еще более надежной, пишет Влад Костеа из Bitcoin Magazine.
Хотя это довольно сложный процесс, который преимущественно касается разработчиков, он решает вопрос доверия к компонентам биткоина, который важен для всего биткоин-сообщества.
Как всем известно из уроков информатики, компьютеры получают инструкции в «единицах» и «нулях», но люди пишут эти инструкции на языках программирования, который является логичным и понятным для них. После того, как код написан, инструкции должны быть скомпилированы в понятный для компьютеров язык. При обмене бинарными сборкам разработчики существует определенная степень доверия (если не включать дополнительные шаги для проверки, которые отнимают много времени).
Как децентрализованный протокол, биткоин требует особого внимания и осторожности. Если случится стороннее изменение (например, злонамеренный взлом) в сборках, которыми обмениваются разработчики, тогда новая версия клиента может содержать ошибки, которые потенциально могут привести к огромным убыткам. Если нет надлежащего процесса проверки, то потенциальная ошибка может легко стать единой точкой отказа.
Gitian и Guix
Идея о том, что все разработчики будут запускать один и тот же код и сравнивать одни и те же бинарники, нереальна, поскольку различия — даже небольшие различия — в таких переменных, как архитектура системы, операционная система и даже время компиляции, могут давать разные результаты. В попытке найти решение этой проблемы разработчик под псевдонимом Dev Random создал Gitian.
Как пишет журналист Bitcoin Magazine Аарон ван Вирдум, Gitian — это «компьютер в компьютере», который предоставляет виртуальное пространство, в котором бинарники могут быть скомпилированы без переменных. Независимо от того, какое устройство или операционная система используется в процессе, результаты всегда гарантировано будут такими же.
Однако эта процедура недостаточна для нужд разработчиков Bitcoin Core, поскольку она слишком сильно зависит от операционной системы Ubuntu. Эта зависимость сама по себе может стать точкой отказа, а процесс проверки требует большей степени прозрачности и контроля.
Как сказал в комментарии для Bitcoin Magazine разработчик из Chaincode Labs Карл Донг: «Среда сильно зависит от Ubuntu и в какой-то степени слепо доверяет ей. Фактически, метод, по которому создается среда, заключался в загрузке неконтролируемых непрозрачных бинарников (иными словами, «доверенных бинарников») из Ubuntu, открывая риски третьих сторон. Потенциально злоумышленник может повредить все исполняемые файлы Bitcoin Core посредством вторжения в инфраструктуру Ubuntu».
Донг отвечает за внедрение Guix, бинарной системы верификации, которая делает разработку более надежной и полностью заменяет Gitian.
«Guix позволяет нам создавать среду таким образом, чтобы мы полагались на очень ограниченный набор доверенных бинарников, - сказал он. - Большая часть среды создается путем сборки из крошечного бинарного сида, и этот процесс сборки более проверяем».
Эта минимизации доверия направлена на устранение сторонних рисков. Донг считает, что это будет более простой и менее ориентированный на платформу подход к работе с Bitcoin Core. Он признает, что взял многое из Gitian. Тем не менее, тут нет места для обоих, и Guix станет заменой.
«Моя работа по интеграции Guix в Bitcoin Core, безусловно, была вдохновлена Gitian, но они не очень хорошо дополняют друг друга, - сказал Донг. - Я ожидаю, что как только поддержка кросс-компиляции для целей OS X и Windows закончится, Gitian уйдет в отставку».
Guix и обычный пользователь биткоина
Если Guix — это инструмент, созданный разработчиками и для разработчиков, то почему это должно как-то беспокоить обычного пользователя? Что ж, это инструмент устраняет вопрос доверие к данным, загружаеамых для клиента Bitcoin Core. Злоумышленники могут при отсутствии надлежащей системы проверки украсть ваши биткоины. По словам Донга, «Guix позволяет пользователям проверять, что загружаемый ими клиент Bitcoin Core точно соответствует коду, который пишут разработчики Bitcoin Core».
Несмотря на четкую ориентацию на потребности разработчиков, Guix может понадобиться пользователям, которые с осторожностью относяться к программному обеспечению, которое они запускают.
На момент публикации Guix доступен только для сборок Ubuntu. Однако, по «по оптимистичным оценкам» Донга, версии для Windows и Mac OS будут выпущены к концу 2019 года. В истинно консервативном духе биткоина, «когда всё будет готово и тщательно проверено».
Источник: CoinSpot.io