BIP, EIP и другие Improvement Proposals

    BIP, EIP и другие Improvement Proposals
    0

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

    Идея возникла ещё в 2011 году, когда Amir Taaki опубликовал первый BIP (Bitcoin Improvement Proposal). В нём он подробно изложил как нужно оформлять BIP и работать с ним – от черновика до реализации.

    Технически, все предложения по улучшению очень похожи на RFC (Request for Comments), что использовались ещё в 70-х, когда велась разработка ARPANET (то, что позже превратилось в Интернет). Сам Amir Taaki указал, что свой документ BIP он во многом построил на примере PEP-0001 (Python).

    Принцип оформления

    С момента первого BIP, как родоначальника Improvement Proposals, почти ничего не изменилось.

    Типы BIP

    Consensus – обновления, сконструированные с надёжной обратной совместимостью, чтобы узлы могли проголосовать за обновление без прерывания процесса валидации. Даже если какая-то часть узлов откажется принимать BIP, они смогут дальше поддерживать работу сети, майнить блоки и т.д.

    Если консенсусное обновление критическое, и требует обязательного перехода клиентов узлов на новую версию – это приведёт к хардфорку. После такого апгрейда сеть буквально раздваивается (как Bitcoin и Bitcoin Cash).

    Standards – все улучшения, что затрагивают экосистему вокруг сети, но не её исходный код. Например – мнемонические фразы для хранения приватных ключей. Они успешно работают, обеспечивают мульти-аккаунты, но сеть Биткоина о них даже «не знает».

    Process – здесь принимаются решения о дальнейшем развитии сети. Дискуссионные апдейты.

    Informational – объяснения и гайды по текущей версии. Просто информационные материалы.

    Черновик

    Изначально автор идеи должен создать топики на форумах и поднять вопрос в сообществе, чтобы просто узнать мнение большинства. Если вокруг мысли появятся желающие её поддержать и развить, только тогда рекомендуется приступать к описанию BIP. Для этого нужно связаться с ведущими разработчиками и попросить у них помощи в оформлении, чтобы избежать ошибок. Так появится черновик (Draft).

    На GitHub /bitcoin, например, есть BIP Editor – Luke Dashjr. Этот человек отвечает за публикацию черновиков на всеобщее обозрение.

    Кстати, автор не придумывает номер BIP самостоятельно, а должен присвоить ему любое текстовое название. Редактор (Editor) будет отвечать за присвоение номера, когда будет публиковать BIP.

    С момента черновика статусы могут меняться по такой схеме:

    bip-предложения-схема-стандарт

    Содержимое

    Каждый успешный BIP состоит из следующих элементов:

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

    Abstract – небольшое вводное описание на 200 слов.

    Copyright/Public Domain – все права должны быть переданы сообществу, и решения распространяться под открытой лицензией.

    Specification – техническое детальное описание предложения.

    Motivation – объяснение, чем плохо текущее положение дел, и как BIP поможет это исправить.

    Rationale – объяснение, почему именно такая реализация будет наилучшей с технической точки зрения. Сюда могут входить и альтернативные способы реализации, чтобы сообщество могло дискутировать вокруг этого. В итоге должны быть сформированы доказательства, что разработчики согласны с этим дизайном, и отказались от альтернатив.

    Backwards Compatibility – подробное описание всех обратных несовместимостей, которые могут возникнуть в результате обновления. Предложения по их решению обязательны.

    Reference Implementation – эталонная реализация. Должна быть описана, если BIP приближается к выходу, перед тем как перейдёт на финальную стадию.

    Формат оформления текста – mediawiki или markdown.

    А теперь рассмотрим самые популярные предложения по улучшению, и как они повлияли на свои сети.

    BIP (Bitcoin Improvement Proposals)

    BIP32

    Стандарт для иерархически детерминированных (HD) кошельков. Из одного приватного мастер ключа можно получить любое количество приватных ключей «наследников». Это упрощает бэкап кошельков, и позволяет оперировать множеством Биткоин адресов из одной хэш-строки.

    BIP39

    Описывает принцип, по которому можно использовать набор слов из специального словаря, чтобы получить мастер ключ как в BIP32, но в виде удобно читаемой фразы (зерна, сида). Делает пользование кошельками ещё более доступным для новичков.

    BIP44

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

    Например, это путь деривации для Ethereum: m’/44’/60’/0’/0. А это для EOS: m’/44’/2018’/0’/0.

    BIP141

    Большое обновление SegWit. Добавлены адреса типа «bc1». Засчёт выноса части необязательных данных из транзакций удалось снизить расходы на комиссии (и место в каждом блоке) на 30-40%.

    BIP341

    Большое обновление Taproot (сюда также входят BIP340 и BIP342). Добавлены адреса типа «bc1p». Возможно применение смарт-контрактов и скриптов на блокчейне Bitcoin. Обновления направлены на оптимизацию платежей с мульти-подписью, повышение конфиденциальности сторон, уменьшение подробностей транзакции в открытой сети.

    EIP (Ethereum Improvement Proposals)

    Очень похожи на BIP, но типы EIP делятся по другому принципу: Core, Networking, Interface, ERC, Meta, Informational.

    EIP-5

    Газ, используемый смарт-контрактами при взаимодействии с EVM возвращается, и расходуется только тот объем, что действительно понадобился для записи в память.

    EIP-20

    Знаменитый стандарт токенов ERC-20.

    EIP-137

    Система доменных имён (Ethereum Name Service, или ENS). Превращает сложные адреса вида 0xb8c2C29ee19D8307cb7255e1Cd9CbDE883A267d5 в легко запоминаемые. Например – nick.eth.

    EIP-721

    Стандарт для невзаимозаменяемых токенов – ERC-721 (NFT). Они могут содержать в себе предметы, договоры, документы и даже долговые обязательства.

    EIP-1559

    Реструктуризация принципов расхода газа. Теперь существует «Base Fee» и «Priority fee». Комиссия становится более предсказуемой, и базовая теперь на благо всем сжигается, а не достаётся майнерам. Если вы торопитесь, то можно добавить сверху приоритетную комиссию, но она составит минимум, по сравнению с тем, сколько приходилось переплачивать раньше в моменты ажиотажа.

    Improvement Proposals в других блокчейнах

    Многие сети наследуют этот принцип. Достаточно зайти на GitHub выбранной сети, и вы найдёте список предложений (как утверждённых, так и черновиков).

    от Кошелёк