BIP — сокращение от Bitcoin Improvement Proposal. Это документ о техническом решении, процедуре или важных сведениях, связанных с Bitcoin. Его можно изучить, оспорить и при необходимости применить; публикация автоматически не меняет ни программы, ни правила сети.
Анна готовит платёж на компьютере, но хочет подписать его аппаратным кошельком другого производителя. Обе программы должны понимать передаваемые данные. Именно такую проблему решает BIP 174: он описывает PSBT, общий формат передачи незавершённой транзакции и сведений, необходимых для подписи. Разработчики могут опираться на один документ вместо того, чтобы независимо придумывать несовместимые форматы. Это одна из практических причин существования BIP. [8]
Разные номера означают разную работу. BIP39 описывает создание слов восстановления и их преобразование в seed — исходные данные для получения ключей кошелька. BIP 141 описывает SegWit, изменение правил обработки транзакций, вступившее в силу после активации в сети. BIP 174 помогает передавать транзакции на подпись без изменения правил допустимости блоков. А BIP 50 документирует причины и устранение инцидента марта 2013 года, когда сеть временно разделилась. Не каждый BIP предлагает новое правило Bitcoin. [6] [7] [8] [9]
Описать решение, запрограммировать его и начать использовать — разные шаги. Описание называют спецификацией, программный код — реализацией. Кошелёк может экспериментировать с черновиком, а у другого документа пока может не быть ни одной используемой программы. Для изменений правил допустимости блоков нужна ещё и активация — момент, с которого соответствующее ПО начинает их применять. Публикация текста не обновляет автоматически ваш узел, то есть компьютер, проверяющий правила сети. [7] [10]
Номер прежде всего помогает найти нужный документ и обсуждать одно и то же предложение. Большее число не означает лучшую идею или рекомендуемое обновление. Даже пронумерованный документ может остаться незавершённым или быть отложен. Если сервис рекламирует поддержку BIP, нужно ещё выяснить, о какой функции речь и действительно ли конкретная версия программы её предоставляет. [2]
Авторы сначала изучают предыдущие работы и обсуждают идею в Bitcoin Development Mailing List — открытой почтовой дискуссии разработчиков. Замечания могут выявить проблему до написания длинного текста. Достаточно проработанное предложение затем подают в общее хранилище bitcoin/bips на GitHub как pull request, то есть запрос на включение. Авторы не выбирают номер сами: редактор назначает его после проверки темы, формата и готовности документа. [1]
BIP Editors заботятся о публикуемых документах: проверяют предшествующую дискуссию, понятность, формат и лицензию, назначают номера и поддерживают записи. Это не даёт им права решать, какое ПО вам использовать или какие правила должен принимать ваш узел. Наличие в хранилище не гарантирует безопасности и согласия сообщества. Реальное использование зависит от отдельных проектов и участников сети. [1]
Если новость сообщает, что BIP одобрен, откройте документ и выясните, что произошло. Ему только присвоили номер, авторы завершили работу или уже есть поддержка, которой пользуются? Для кошелька ищите подтверждение в документации и выпусках ПО; для изменения правил сети проверьте также условия и ход активации. Это помогает отличить интересное предложение от уже доступной функции. [10] [2]
Действующий порядок описывает BIP 3, Updated BIP Process, со статусом Deployed. Он заменил BIP 2 и упростил типы и статусы документов. Поэтому в старых статьях могут встречаться Standards Track или Final — названия, не совпадающие с нынешним делением. Ориентируйтесь на актуальный файл и его историю. Хранилище публикует и сохраняет предложения, а не проводит голосование о будущем Bitcoin. [1] [5]
Specification описывает технические правила, по которым можно создавать совместимые программы. До завершения нужны также работающая эталонная реализация — программа, показывающая, как воплотить предложенное решение, — и тестовые векторы — примеры входных данных с ожидаемыми результатами. Informational содержит сведения, анализ или рекомендации. Process определяет порядок работы, например публикации самих BIP. Именно к последней группе относится BIP 3; он не задаёт новый формат транзакции Bitcoin. [1]
Draft — работа, которая ещё продолжается. Complete означает, что авторы завершили запланированное и рекомендуют принятие. Deployed указывает на подтверждённое активное использование; для Process это может быть требуемый rough consensus — широкое согласие после обсуждения и разрешения содержательных возражений, а не простой подсчёт голосов. Closed обозначает исторический документ, который уже активно не разрабатывают, не продвигают и не используют. Он остаётся в архиве. Даже Deployed не означает поддержки каждым кошельком. [1]
В заголовке указаны авторы, тип, статус, дата присвоения номера, лицензия и ссылки на обсуждения. Requires перечисляет необходимые другие BIP, Replaces — предложения, которые документ намерен заменить, а Proposed-Replacement — возможного преемника. После перехода в статус Complete дальнейшие изменения фиксируют в Changelog, журнале изменений, с датой и номером версии. Поле Version в заголовке указывает текущую версию документа. Несовместимое с прежним решением изменение обычно должно получить новый BIP, чтобы тот же номер незаметно не стал означать нечто другое. [1]
Для полной картины прочитайте эту статью вместе с Soft Fork, Правила консенсуса, Bitcoin Core, Bitcoin, Hard Fork, BIP 39. На эту статью также ссылаются Soft Fork, Война за размер блока, Bitcoin Core, Обучение Биткоину.