Власть майнерам или пользователям: разработчики Биткоина обсуждают способы активации обновлений

В связи с активной разработкой Taproot и подписей Шнорра в сообществе разработчиков ведутся споры о том, какой способ внесения изменений в сеть должен стать предпочтительным для этого обновления.

В связи с активной разработкой Taproot и подписей Шнорра в сообществе разработчиков Биткоина ведутся споры о том, какой способ внесения изменений предпочтительнее для этого обновления.

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

В январе разработчики Taproot опубликовали на GitHub три BIP, принятие которых способствует внедрению обновления. Один из основных создателей технологии Питер Вюлле (Pieter Wuille) представил на GitHub находящееся в работе изменение кода в «пуле запросов на включение изменений». Это значительно приблизило развертывание обновлений, обсуждение которых началось несколько лет назад.

Само изменение кода пока не вызывает споров у разработчиков. Дискуссия сосредоточилась только вокруг того, какой способ активации обновления будет наилучшим и наконец сделает новый метод отправки BTC доступным. Поскольку Биткоин не имеет единого лидера и распространен по всему миру, подобные вопросы не могут не возникать на повестке дня.

Каким образом улучшить сеть так, чтобы обновление было обратно совместимым и позволило тем, у кого более старые версии программного обеспечения, продолжать участвовать в работе Биткоина? Каким способом лучше всего осуществлять подобные обновления?

Следует уточнить, что код Биткоина обновляется почти каждый день глобальной сетью разработчиков. Однако «консенсусные» изменения кода, затрагивающие более глубокую часть Биткоина, требуют софтфорка, который, в свою очередь, нуждается в определенной координации для беспроблемного развертывания.

«Существуют архитектуры софтфорков, которые в последнее время добились значительных успехов в реализации и будущем внедрении. Однако по разным причинам методы активации мало обсуждаются», – написал в электронном письме для разработчиков участник Bitcoin Core Мэтт Коралло (Matt Corallo).

Именно это письмо послужило причиной возобновления дебатов среди разработчиков касательно способов развертывания обновлений в сети. Всего существует два основных варианта проведения софтфорка. 

Первый – BIP 9 – уже использовался для нескольких софтфорков. Этот способ гарантирует, что майнеры подготовлены к обновлению заранее и обеспечивает плавное развертывание изменений в сети. Общее возражение против такого подхода заключается в том, что он дает майнерам слишком много власти.

В качестве альтернативы существует BIP 8, также известный как «софтфорк, активированный пользователями» (UASF). В этом случае обновление внедряется независимо от того, подтверждают ли майнеры готовность к нему. В зависимости от исполнения, этот подход может спровоцировать другие проблемы, предупреждает Коралло.

Уроки истории

Обсуждение проблемы началось еще в 2017 году, когда BIP 9 использовался для активации Segregated Witness (SegWit). Это обновление исправляет несколько важных ошибок, существовавших в протоколе, улучшает масштабирование путем увеличения эффективного размера блока, а также предоставляет больше возможностей для развертывания решений второго уровня поверх базового блокчейна.

Чтобы защитить майнеров от добычи недействительных блоков и потери денег, SegWit не активировали, пока 95% майнеров не подтвердили, что они готовы к обновлению. В тот год большинство майнинговых пулов заявили, что не поддержат SegWit если он не будет связан с увеличением параметра размера блока. Это было спорное требование, которое, по мнению многих пользователей, могло привести к централизации сети.

Эта ситуация стала примером того, что майнинговые пулы могут использовать свое право голоса не только для того, чтобы оградить себя от финансовых потерь. Многим участникам сообщества это не понравилось, поскольку майнеры попытались использовать свои возможности, чтобы протолкнуть изменения, которые не нужны всем пользователям.

По мере того, как разгорались дебаты, разработчик под ником Shaolinfry отметил, что пользователи все равно имеют возможность развернуть обновление. Идея в том, что пользователи должны решить, есть ли необходимость во внедрении обновления, и майнеры будут следовать их желаниям, а не наоборот. Данный метод также использовался для активации других изменений Биткоина. Shaolinfy формализовал эту идею в BIP 8.

Огромное количество пользователей поддержали UASF в социальных сетях и начали запускать программное обеспечение. Это возымело желаемый эффект. До того, как был активирован UASF, майнеры стали демонстрировать свою поддержку SegWit. Тогда многие разработчики начали понимать, что UASF, возможно, наилучший способ внесения изменений в код. В то время разработчик Blockstream Расти Рассел (Rusty Russell) даже извинился за участие в создании BIP 9.

«Я не ожидал, что этот метод будет использоваться в качестве способа шантажа. Это существенно меняет модель риска. Теперь BIP-8 – наилучший метод для модернизации сети, в рамках которого майнеры могут только ускорить процесс, а не стагнировать его», – написал он в блоге на Medium.

Хорошая память

Помня события тех дней, некоторые разработчики опасаются снова использовать BIP 9 для развертывания обновлений Taproot и подписей Шнорра или других будущих изменений.

«Я думаю, что BIP 9 доказал свою непригодность», – сказал разработчик Bitcoin Core Люк Дашир (Luke Dashjr) в ответ на вопрос Коралло. Он также добавил технические причины для своего возражения. Отметим, что во время дебатов о масштабировании сети Дашир был одним из самых громких сторонников UASF.

Разработчик Lightning Labs Алекс Босуорт (Alex Bosworth) выразил аналогичное мнение, отчасти основываясь на недавней драме, развернувшейся вокруг Bitcoin Cash. Группа майнинговых пулов предложила, чтобы некоторое количество BCH из каждого нового блока направлялись в фонд развития экосистемы. Босуорт считает это еще одним примером того, как майнинговые пулы пытаются тянуть одеяло на себя.

«Я знаю, что распространенное мнение о развертывании софтфорков – это попытка реализовать обновление в традиционной, дружественной майнерам манере. Но значительная часть, а именно треть нашего нынешнего хэшрейта, только что объединилась в картель с целью узаконивания кражи монет. Поэтому медленное развертывание UASF кажется мне наиболее подходящим вариантом», – заявил Босуорт.

Синтез

Однако некоторые призывающие к осторожности разработчики обеспокоены тем, что рассмотрение UASF как единственного метода активации может открыть возможность внедрения изменений, которые способны навредить Биткоину.

Например, одна из причин, по которой разработчикам изначально нравился BIP 9, заключается в том, что 95% порог может обеспечить своего рода страховку. Если проблема обнаружится тогда, когда майнинговые пулы будут обновлять свое ПО, то они могут остановить изменение. Труднее остановить активацию UASF после того, как процесс будет запущен.

Вот почему Коралло повторно предложил старую идею, представляющую собой синтез BIP 8 и BIP 9. Так, софтфорк будет начинаться с BIP 9. Затем, если он потерпит неудачу в течение года из-за «необоснованных возражений», пользователи могут начать дебаты. После этого, если сообщество подтвердит необходимость, они могут попробовать активировать обновление по методу BIP 8 в течение еще одного года.

Некоторые разработчики утверждают, что этот период времени слишком велик для изменений без «необоснованных возражений», но Коралло призывает к терпению. Выяснение того, являются ли возражения действительно «необоснованными», может занять некоторое время.

«В случае неудачи процесс BIP 9, по сути, предоставляет хорошую возможность для изучения уровня готовности сообщества и желания внедрять определенные изменения. Разработка Биткоина – это не гонка. Ожидание в течение 42 месяцев гарантирует, что мы не создадим прецедент, о котором пожалеем, поскольку Биткоин продолжает расти», – сказал он.

Полный текст заявления Коралло опубликован здесь, как и ответы разработчиков. И хотя Расти Рассел, похоже, был против BIP 9 в 2017 году, теперь он сказал, что согласен с этим гибридным подходом. Однако Рассел предлагает более короткий срок, чем Коралло:

«Поскольку попытка майнеров заблокировать изменения не сработала, и мы не сильно пострадали от задержки, я не против активации по методу BIP 9. Возможно, срок в один год для BIP 9 слишком велик, и шести месяцев будет достаточно. Таким образом, пользователи могут организовать UASF в случае сбоя активации BIP 9».

Сейчас разработчики тщательно изучают предложенный код Taproot и подписей Шнорра, чтобы решить любые возможные проблемы с обновлением. Поэтому еще есть время обсудить варианты активации. Но сообщество неизбежно должно будет принять какое-то решение, прежде чем изменения будут добавлены в сеть.

Источник: bits.media

Partagez votre amour

Laisser un commentaire