Автор: Brandon Black
Перевод: AididiaoJP, Foresight News
В маленьком мирке крипто-твиттера последний год не утихают споры вокруг предложения софтфорка «сокращения данных» (BIP110), выдвинутого @dathon_ohm.
Основная логика этого предложения такова: некоторые транзакции в биткоине содержат данные, встроенные в скрипт блокировки или разблокировки, которые, помимо своего значения для самого скрипта биткоина, могут быть интерпретированы другим программным обеспечением как дополнительная информация. Сторонники считают это нарушением принципов сети.
Они полагают, что сокращение числа таких транзакций является достаточным основанием для оправдания этого, возможно, самого «конфискационного» софтфорка в истории биткоина — его развертывание происходит гораздо быстрее, чем два последних софтфорка, а порог активации значительно ниже.
Биткоин по своей сути — это открытый, устойчивый к цензуре распределенный реестр. Любой может записать в него данные, если готов заплатить достаточную комиссию и убедить создателей шаблонов блоков и майнеров включить свою транзакцию. Фундаментальная ценность биткоина, отличающая его от всех других систем учета, заключается именно в этой открытости. Без нее реестр биткоина был бы не лучше табло для подсчета очков в боулинге. Именно из-за открытого доступа мы знаем, что биткоином будут пользоваться люди, которые нам не нравятся.
Это похоже на принцип свободы слова: если она защищает только ту речь, которая нам нравится, то она бессмысленна. То же самое с открытым доступом к биткоину — если разрешены только транзакции, которые мы с вами одобряем, он теряет смысл. Поэтому нам нет необходимости цензурировать то, как другие формируют свои записи в реестре, точно так же, как мы не хотим, чтобы другие цензурировали наши записи.
Сторонники BIP110 могут сказать: «Конечно, но это касается только немонетарных записей! А как насчет чисто денежных транзакций?» В реальности такого четкого разделения не существует. Каждая транзакция в биткоине — это создание записи в реестре путем удовлетворения условия какого-либо скрипта блокировки — расходуется входной UTXO, создается новый выходной UTXO.
Размер скрипта транзакции, большой он или маленький, абсолютно не важен для оператора узла или обычного пользователя. Во-первых, меня вообще не волнуют детали чужих транзакций, это так же не мое дело, как то, что кто-то заказывает в кофейне. Во-вторых, сами узлы биткоина такого разделения не проводят. Транзакции бывают только действительными или недействительными, а стоимость их проверки может быть разной (например, проверка крупной мультиподписной транзакции обходится дорого, а некоторые Ordinals или OP_RETURN — относительно дешево).
Некоторые будут утверждать, что биткоин станет лучшим денежным активом, если будет подобен золоту и не сможет использоваться «другими способами». Представьте, если бы золото нельзя было использовать для ювелирных изделий или в промышленности, оно было бы, возможно, чисто денежным активом. Но именно те физические свойства, которые делают золото отличными деньгами, также делают его популярным в ювелирном деле и промышленности.
То же самое с биткоином: именно потому, что он позволяет любому заплатить и записать данные, мы не можем контролировать, как другие будут интерпретировать эти данные. Как бы мы ни ограничивали структуру скриптов, всегда найдутся люди, которые с помощью ПО вне биткоина смогут интерпретировать эти записи по-другому. Поэтому, как и с золотом, мы должны смириться с неизбежностью «других применений». На рынке золота это может привести к искажениям цены из-за колебаний немонетарного спроса; в биткоине это может вызвать рост комиссий при всплесках спроса на блок-пространство.
Однако у биткоина есть два преимущества перед золотом. Во-первых, создание транзакций, которые могут быть альтернативно интерпретированы, не оказывает прямого влияния на рынок самого биткоина как актива — в отличие от золота, объем биткоина, используемого для этих «дополнительных целей», на самом деле очень мал. Во-вторых, протокол биткоина изначально был спроектирован таким образом, чтобы минимизировать нагрузку на сеть верификации от таких «дополнительных интерпретаций». Он ограничивает размер блока и количество подписей (sigops) в транзакции, что как раз составляет основную часть затрат на верификацию для узлов.
Эти ограничения, установленные на раннем этапе, как раз и предназначены для предотвращения злоупотреблений реестром с высокой частотой и объемом. Именно эти ограничения стимулировали инновации второго уровня, такие как Lightning Network, Ark, Spark, Cashu. Даже всплеск спроса на блок-пространство из-за «немонетарных» данных способствует использованию этих более эффективных решений масштабирования, которые могут записывать меньше информации в основной блокчейн.
Раз уж мы разобрались с заявленными (и явно несостоятельными) причинами для BIP110, давайте посмотрим, что же он на самом деле предлагает изменить.
BIP110 ограничивает размер скриптов блокировки, количество альтернативных скриптов, доступных в Taproot, делает аннекс (annex) Taproot недействительным, удаляет все обновляемые версии witness и Tapscript, удаляет все обновляемые опкоды в Tapscript и отключает OP_IF и OP_NOTIF в Tapscript. Эти ограничения применяются только к UTXO, созданным в течение примерно 52 414 блоков (около года) после активации.
Кроме того, BIP110 снижает порог готовности майнеров до 55% (обычно для софтфорков требуется более 90%) и устанавливает механизм принудительной активации для узлов: если к блоку 961632 не будет достаточно сигналов, узлы, реализующие это правило, будут считать несигнализирующие блоки недействительными, тем самым принудительно фиксируя изменения к блоку 963648 и активируя их в блоке 965664.
Это будут самые радикальные ограничения для скриптов биткоина с 2010 года, когда Сатоши отключил несколько опкодов из-за серьезной уязвимости (CVE-2010-5137). Эти изменения пытаются протолкнуть с беспрецедентно низким порогом, в крайне сжатые сроки (менее 9 месяцев от присвоения номера BIP до активации) и с минимальным код-ревью — и все под предлогом, что кто-то интерпретирует записи в реестре способом, не одобряемым сторонниками.
Что еще более иронично, те, кто использует «оспариваемые» данные, уже обновили ПО и готовы: даже если BIP110 активируется, они смогут продолжать встраивать аналогичные данные. Многие из нас предсказывали это заранее, потому что на открытом публичном реестре просто невозможно ограничить, как люди с помощью внешнего ПО будут интерпретировать записи.
Подводя итог, BIP110 пытается сделать невозможное — ограничить то, как пользователи открытого реестра могут его использовать — в то время как проблема, которую он якобы решает, уже давно эффективно решена существующими ограничениями протокола биткоина. Он также пытается протолкнуть это безответственно быстро, с поспешным код-ревью и без учета консенсуса в экосистеме. К счастью, биткоин — не такая хрупкая система, и подобные безрассудные попытки изменений не увенчаются успехом.
Майнеры уже четко отказались от BIP110, а разработчики, инвесторы, лидеры мнений и деловой мир также высказались против. К августу этого года эта «атака» на правила консенсуса биткоина закончится провалом, и биткоин станет только сильнее, продолжая стабильно генерировать блоки — один за другим.








