Одна из главных ценностей крипторынка — децентрализация. Как можно улучшить то, что и так — краеугольный камень? Разберемся на примере сети самой консервативной криптовалюты.

Что такое BIP

Биткоин — это очень консервативная монета, но это не значит, что после запуска первой криптовалюты в ее сеть совсем не вносились никакие изменения. Вносились, но по особой процедуре, в основе которой лежит Bitcoin Improvement Proposal («Предложение по улучшению Биткоина»), или сокращенно BIP.

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

BIP инициирует сложную дискуссию внутри сообщества о том, следует одобрить предложение и интегрировать его в протокол — или нет. Поэтому BIP должно содержать краткую техническую спецификацию предлагаемой новой функции и обоснование ее необходимости.

По сути, BIP — это формализация процесса принятия изменений и обновлений в Биткоине. Она нужна в связи с тем, что Биткоин — децентрализованная криптовалюта, в блокчейн которой нельзя так просто взять и внести изменения. Нужно, чтобы все участники сети согласились действовать по измененным правилам. Собственно, для стандартизации процедуры внесения таких изменений BIP и было придумано.

За BIP стоит сообщество независимых разработчиков, которые являются редакторами BIP. Через них проходят все предложения, инициированные в рамках процедуры.

Идея BIP в принципе не нова. Многие проекты развиваются подобным образом. Собственно, сам интернет многим обязан так называемым «рабочим предложениям» (Request for Comments, RFC) — документам, благодаря которым были введены и формализованы многие стандарты, такие как, например, IP, UDP, TCP, DNS, URL.

Три типа BIP

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

Стандартное BIP

Стандартное BIP (Standards Track BIP) описывает любое изменение, которое затрагивает большинство или все реализации Биткоина, такие как, например, изменение сетевого протокола, изменение правил валидации транзакций, или любое нововведение, влияющее на совместимость использующих Биткоин приложений. Стандартные BIP, в свою очередь, подразделяются на четыре уровня:

  1. Консенсусный.

  2. Уровень одноранговых служб (Peer Services Layer).

  3. API/RPC.

  4. Уровень приложений. 

Информационное BIP

Информационное BIP (Informational BIP) касается концептуальных проблем Биткоина, предоставляя общие рекомендации либо информацию для сообщества Биткоина, но не предлагая при этом вводить новую функцию.

Информационные BIP не всегда представляют собой результат консенсуса или рекомендации сообщества, поэтому пользователи и разработчики могут игнорировать подобные BIP. Цель информационных BIP, собственно, информационная, то есть — сообщить что-то, что авторы полагают важным.

Процессуальное BIP

Процессуальный BIP (Process BIP) описывает внедрение нового процесса, связанного с сетью, или предлагает правки. Процессуальные BIP в принципе похожи на стандартные BIP, но применяются к областям, не касающимся самого протокола Биткоина. Они могут предлагать какую-либо новую реализацию, но не для кодовой базы блокчейна.

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

Жизненный цикл BIP

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

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

После получения обратной связи от сообщества автор должен представить черновик BIP редакторам путем рассылки на почту разработчикам. Лист для рассылки содержится на странице Github, посвященной BIP. Это дает возможность доработать черновик, сделать его качественным и учесть дополнительные замечания от экспертов-разработчиков. Черновик должен быть оформлен в соответствии с правилами BIP, иначе будет возвращен без рассмотрения.

Авторы BIP несут ответственность за сбор отзывов сообщества как по первоначальной идее, так и по самому BIP. В целом, лучше, чтобы одно BIP содержало одно ключевое предложение или новую идею, так как более сфокусированные BIP, как правило, оказываются более успешными.

После рассмотрения черновика редакторы BIP присваивают номер, тип (стандартный, информационный или процессуальный) и изменяют статус. Авторы не могут самостоятельно назначать номера BIP, а должны четко следовать требованиям из BIP-2. Если редактор BIP одобряет предложение, он назначает номер, указывает статус и добавляет в репозиторий BIP на Github. По репозитарию уже можно отслеживать дальнейшее развитие этого BIP.

Как BIP вводится в действие

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

Для процессуальных BIP нужно, чтобы консенсус был достигнут среди адресатов рассылки предложения разработчикам. Консенсус считается достигнутым, если BIP было открыто для обсуждения в списке рассылки по разработке в течение как минимум одного месяца, — и чтобы никто не озвучил никаких обоснованных возражений. Некоторые возражения, даже если были озвучены, могут быть проигнорированы/отклонены общим аргументированным согласием.

Для стандартного BIP все сложнее, так как там реальное принятие может выражено по-разному. Для предложения изменений протокола нужно, например, чтобы оно было одобрено 95% майнеров. BIP по API/RPC и приложениям должны быть реализованы по крайней мере двумя независимыми и совместимыми программными приложениями.

И если по соблюдению необходимых критериев станет видно, что BIP по факту реализовано, ему присваивается статус Final. Посмотреть на то, какие BIP получили такой статус можно в разделе статуса.

Примеры известных и успешных BIP

Понятно, что особый интерес представляют первые BIP, с которых все началось. Напомним, BIP под номером один и два посвящены тому, как вообще устроена логика внесения предложений в рамках BIP. Собственно, почти все, что написано выше — написано на основе этих документов.

Следует отметить, что актуальным BIP, которое отвечает за внесение всех остальных предложений, является сейчас BIP-2, заменившее BIP-1.

BIP-8 и BIP-9 — это реализованные предложения, позволяющие проводить софтфорки, то есть обратно совместимые изменения в протоколе Биткоина. BIP-8 и BIP-9 предоставляют механизмы для анонсирования и активации софтфорков.

Из других важных BIP стоит отметить BIP-141 и BIP-148, которыми предложили и реализовали обновление Segregated Witness, позволившее увеличить пропускную способность сети первой криптовалюты.

Другое важное обновление — Taproot — было введено целой серией BIP: 340, 341 и 342. Первоначальное предложение идеи Taproot было сделано в январе 2018 года разработчиком программного обеспечения Грегом Максвеллом (Greg Maxwell). После этого целая команда биткоин-разработчиков работала над реализацией. И только почти через четыре года после первоначального предложения, в ноябре 2021го, Taproot было окончательно интегрировано.

Вывод

Можно сказать, что BIP — это стандартизованный способ, благодаря которому можно внести изменения в протокол Биткоина. Вносить изменения в децентрализованный проект, особенно таких масштабов как Биткоин, чрезвычайно сложно. В такой ситуации просто необходима понятная процедура, которая не будет угрожать децентрализации.

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