Не так много людей вспомнят, что первые NFT выпускались проектом Counterparty. Он начал работу 11 лет назад и стал причиной так называемых OP_RETURN Wars. Однако за месяц Incriptions, запустившийся в 2023 сгенерировал больший объём токенов, чем Counterparty, за всю историю существования. Такая большая разница вероятно может быть объяснена тем, что концепт NFT токенов уже разошёлся в предыдущем бычьем рынке на других платформах, и его ре-имплементация в Биткоине, как самом старом и децентрализованном протоколе привлекла ту небольщую часть аудитории NFT, которая была действительно заинтересована в гарантиях Блокчейна.
OP_RETURN имеет важное значение в ряде протоколов, в первую очередь, CoinJoin. Все остальные имели меньшее значение для Биткоина, а omni вовсе перестал существовать как носитель стейблкоинов к 2019 году. Инфографика ниже уже устарела и не показывает Inscriptions, однако достаточно точно отражает волнообразный характер применения технологии, о которой в сообществе снова возник спор.
В этот раз дискуссия вокруг об OP_RETURN развернулась по-видимому после поста Антуана Пуансо, со ссылкой на вайтпепер проекта Citrea. Этот проект строит роллапы в Биктоине на базе BitVM. Для работы ему понадобилось 144 байта поля OP_RETURN, вместо 83. Дискуссия вышла за пределы обсуждения Citrea в том числе потому что вес проекта в Биткоине сильно меньше Samourai Wallet, который крайний раз обвинял пул Ocean в цензуре из-за ограничения поля OP_RETURN в 40 байт, установленного в частном порядке. Тогда пул предпринял попытку публичного разъяснения своей позиции и она оказалось неплоха. Хотя что более важно, под давлением общественности (и майнеров), они начали готовить три варианта шаблонов блока. Первый вариант включает OP_RETURN до 40 байт и два остальных соотвествуют политикам стандартного клиента Core, т.е. позволяют майнерам искать блоки в том числе для транзакций ещё работавшего Whirpool Samourai Wallet. Тогда оказались вне шаблонов пула из-за стадии pre-mix, которая использует OP_RETURN для координации раундов CoinJoin. Дискуссия об OP_RETURN приобрела дополнительный импульс после интервью OG, ивестора и фаундера Джемесона Лоппа, об изменениях протокола Биткоин. На текущий момент проект Casa Лоппа имеет интерес в нескольких софт-форках, которые могли бы позволить реализовать ончейн хранилища или ковенанты.
Войны OP_Return
BitMex уже вытаскивал на поверхность спор, заключавшийся в противостоянии интенсивному использованию опкода OP_Return.
Битмекс пишет,
"OP_Return - это вывод транзакции в Биткойне, который является доказательно неизрасходованным. Эта функция может использоваться для сжигания Биткойна или хранения произвольных данных в блокчейне Биткойна. Поскольку данные не являются частью набора UTXO, считается, что хранение данных таким образом помогает масштабировать Биткойн, поскольку узлам, которые не полностью хранят блокчейн, не нужно хранить данные OP_Return.
Правила консенсуса Биткойна допускают размер OP_Return до 10 000 байт. Например, в мае 2013 года … (была сделана транзакция, которая) … содержит текст песни 1987 года "Never Gonna Give You Up" Рика Эстли, песни, связанной с мемом Rickrolling".
Первоначально возможность использовать этот опкод была только у майнеров, и до Bitcoin Core 0.12.0 она контролировалась на уровне клиентского ПО (т.е. кода узла). В 12 версии лимит данных был установлен в 83 байта, с предыдущих 80, и ещё ранее установленных 40 байт.
Удивительно, но это был один из "большеблочников", кто критиковал проект Counterparty за использование OP_RETURN в 2014 году. Сам по себе факт добавления функции OP_RETURN в Bitcoin Core в 2014 году и дискуссия о его размере и являлись "Войной OP_Return", хотя в таком случае по-нашему мнению можно любой факт развития экосистемы Биткоина описать как войну, например драму вокруг OP_CHECKTEMPLATEVERIFY.
В итоге этого мини-расследования Битмекс приходит к выводу:
Примерно после 2014 года большинство разработчиков, заинтересованных в Dapps, сосредоточились на создании на Ethereum или других системах, а не на Bitcoin. Затем Ethereum достиг критической массы интереса разработчиков и импульса, и разработка Dapp на Bitcoin стала минимальной. Главное в этой статье - подчеркнуть, что основным фактором этого были не необходимые сборы или виртуальная машина Ethereum и более сильные технические возможности Ethereum, а просто то, что многие биткойнеры и биткойн-разработчики не хотели Dapps на Bitcoin и не были заинтересованы в этих функциях. К лучшему или к худшему, некоторые биткойнеры намеренно оттолкнули многих из этих разработчиков Dapp.
Вопросы о количестве транзакций, их цене и возможности помещать произвольные данные в блокчейн Биктоина существует столько же, сколько существует Биктоин и в общем являются причиной многочисленных хард-форков. OP_RETURN не может стать причиной хард-форка сам по себе, на текущий момент появляется всё больше голосов в пользу поддержания собственных узлов на альтернативном клиенте Люка Младшего, Knots, который славится ультраконсервативным подходом к назначениям транзакций Биткоина (только передача биткоинов), хотя пул Люка смайнил текст Библии в блоки Биктоина в 2011. В ответ, Люк получил сообщение, скорее всего славянского происхождения:
О, и Бог не существует, придурок. Прекрати загрязнять блокчейн своей ерундой
(Oh, and god isn't real, sucka. Stop polluting the blockchain with your nonsense)
Пулл-реквест и мнения OG
Предложение Антуана и Citrea оказалось в новом pull request’е (#32359), где Питер Тодд предложил удалить полностью из Bitcoin Core ограничения на размер и количество выходов OP_RETURN, а также убрать конфигурационные параметры, позволяющие пользователям изменять лимиты для транзакций, несущих данные. Это изменение касается политики стандартных транзакций, то есть правил, определяющих, какие транзакции принимаются в mempool, хотя и не влияют на консенсус.
Тодд подчёркивает, что стандартные транзакции — это лишь подмножество всех допустимых (валидных) транзакций, и они используются как защита от известных и потенциальных атак типа отказа в обслуживании — это хорошо иллюстрирует инфографика. Однако чрезмерное ужесточение этих правил также исключает безопасные и потенциально полезные транзакции. Тодд считает неизбежным развитие инфраструктуры, обеспечивающей доставку нестандартных, но валидных транзакций напрямую майнерам (например, через Slipstream или Libre Relay), поскольку за такими транзакциями стоит экономический стимул. В результате Тодд призывает к прозрачности в разработке и бенчмаркингу нестандартных транзакций, чтобы сообщество могло убедиться в отсутствии угроз для сети.
В личном блоге Антуан Пуансо более развёрнуто выступил в защиту снятия ограничений на использование OP_RETURN в стандартных транзакциях Bitcoin Core, указав, что существующие правила неэффективны и даже вредны. Он напомнил, что политика вещания включает множество уровней, а стандартность — лишь один из них, и её цель — защита от DoS-атак, подготовка к софтфоркам и умеренное сдерживание нежелательных практик. Однако ограничения на OP_RETURN уже не мешают злоупотреблению блокчейном для хранения данных: современные способы, включая хранение в witness-полях или через приватные каналы к майнерам, позволяют сохранять в 50 000 раз больше данных, чем позволяет OP_RETURN.
Пуансо подчёркивает, что ограничения OP_RETURN теперь только мешают полезным конструкциям, как, например, в случае проекта Citrea. Также он защищает предложение Питера Тодда об удалении опций -datacarrier
и -datacarriersize
, утверждая, что опции — это издержка: если настройка не даёт пользователю реальных преимуществ, она лишь усложняет код и создает ложное ощущение свободы.
Bitcoin Optech обобщил высказывания из рассылки Гугл-группы.
За увеличение (или отмену) лимита Optech привёл слова Питера Вьюлле. Он утверждал, что политика стандартизации транзакций вряд ли сможет существенно помешать подтверждению транзакций с данными, созданных хорошо финансируемыми организациями, которые приложат усилия для отправки транзакций непосредственно майнерам. Кроме того, он утверждает, что блоки, как правило, полны независимо от того, содержат ли они транзакции, несущие данные, или нет, поэтому общий объем данных, который необходимо хранить узлу, примерно одинаков в любом случае.
Против увеличения лимита: Джейсон Хьюз утверждает, что увеличение лимита упростит хранение произвольных данных на компьютерах с полными узлами, и что некоторые из этих данных могут быть крайне неприемлемыми (в том числе незаконными в большинстве юрисдикций). Даже если узел шифрует данные на диске, хранение этих данных и возможность их получения с помощью RPC Bitcoin Core могут стать проблемой для многих пользователей.
Позже к дискуссии присоединился Грег Максвелл. Он выступил против политики ретрансляции в Bitcoin Core, которая строже, чем практика майнинга. Согласно Максвеллу такая политика наносит ущерб малым майнерам: никто не будет направлять нестандартные транзакции напрямую к игроку с 1% хешрейта. Это не только снижает доходы, но и повышает риск банкротства, так как сложность добычи всегда стремится к выравниванию прибыли. Максвелл настаивает: «ретрансляция должна быть не строже, чем то, что фактически майнится».
Он подчеркивает, что слишком строгая ретрансляция ухудшает распространение блоков и увеличивает централизацию, потому что транзакции начинают передаваться напрямую крупным пулам, таким как ViaBTC и MARA. Также он утверждает, что фильтрация не решает проблему вредных транзакций, а в некоторых случаях даже мешает: «лучше заранее валидировать "тяжёлую" транзакцию, чем столкнуться с ней внезапно в блоке». Максвелл считает, что если майнеры получают за это деньги, остановить их нельзя — и это нормально. Пытаясь ограничить доступный способ (OP_RETURN), но не блокируя более вредные, разработчики лишь усугубляют ситуацию. Он заключает, что «лучше минимизировать человеческий фактор» и установить чёткие, нейтральные границы, так как «спам — это то, с чем биткойн уже умеет справляться».
Креативнее всех выступил Super Testnet: он предложил ограничить распространение транзакций на ещё более глубоком уровне. Новая mempool-политика для Bitcoin Core, могла бы бороться с проектами, использующими блокчейн для хранения данных, такими как Citrea и Stamps. Суть предложения — отклонять транзакции, которые отправляют средства на адреса без криптографического доказательства того, что эти адреса можно потратить. Это доказательство не записывается в блокчейн, а передаётся вместе с транзакцией и проверяется нодами при ретрансляции. В результате только транзакции с подтверждением «расходуемости» выходов будут распространяться по сети.
Для реализации потребуется, чтобы кошельки генерировали такое доказательство при создании адреса и передавали его отправителю, например, в том же QR-коде. Это особенно усложнит работу мультиподписных кошельков, которым потребуется координация. Однако, идея не требует изменений в консенсусных правилах и сохраняет совместимость с текущими блоками. Автор подчёркивает, что не поддерживает предложение напрямую, но считает его интересным способом блокировать использование сети как носителя данных.
Кое-какие факты
Разработчик mempool.space mononautical активно “сопровождал” дискуссию постами о разнообразных данных. В основном его сообщения читались в ироническом ключе: “guys read the room” - после того как некто начал постить ответы на его твиты ончейн. Он например привёл статистику по нестандартым транзакциям, с блока 840 000: всего их прозошло порядка 600, они заплатили 4.59 BTC комиссий.
Для сравнения за тот же период в Биткоине была подтверждена 195 474 571 транзакция, в результате которых было уплачено 8728,65 BTC комиссионных и использовано 54333,74 MvB блокчейн-пространства. При обсуждении критериев стандартности по всей видимости игнорируется исчезающе малая доля нестандартных транзакций, которые в основном обслуживают Mara и ViaBTC, имеющие механизмы продажи места в своих блоках.
Всё множество UTXO в действительности уже сильно фрагментировано: монеты номиналом менее 1000 сатоши занимают почти половину всего места в блоках. В то время как OP_RETURN используется протоколами для своих целей, вклад в “пыль” которую невозможно потратить с одной стороны могут генерировать крупные операторы, типа бирж, а с другой - это может быть целенаправленная акция “пылевой” атаки, проводимая и по сей день для попыток идентификации адресов кошельков и крупных операторов. Однако иногда такие операторы опознают пыль и не расходуют её — она собирается в UTXO.
Взгляд на историю “пылевых” атак не показывает их серьёзного доминирования в UTXO, однако важно понимать, что они всегда могут быть проведены - это расходная компонента проекта слежки, который желает “атаковать” кошельки или обменные сервисы. При этом, нельзя ограничивать минимальный размер транзакции в Биткоине, поскольку это потенциально “выбрасывает” из протокола менее состоятельных ходлеров, которые и так могут быть вынуждены платить достаточно дорогую для них комиссию для ончейн платежей.
Одним из соображений лагеря снятия ограничений на OP_RETURN является как раз аргумент против создания большого количества UTXO, которые нельзя потратить, в проектах типа STAMPs. В этом проекте NFT картинка разбивается на байт-массивы и они записываются вместо ключей “легаси” мультисига, оставаясь навсегда на цепочке и в множестве UTXO, но при этом сохраняя возможность “считывания” если сервис знает, как это сделать. Это иллюстрирует существенное техническое отличие OP_RETURN vs UTXO, хотя и на примере не чувствительных к ценам/расчётам протоколов (STAMPs постит только картинки). Серьёзная технологическая разница состоит в том, что
Некоторые протоколы требуют, чтобы определенные данные были доступны до проведения транзакции. Так как witness обнаруживается только в момент траты, это будет слишком поздно.
Такие системы заботятся о доступности данных и не чувствительны к цене. Они хотят максимизировать шансы на получение ретрансляции. Поэтому, даже несмотря на то, что большой OP_RETURN уже довольно легко передать, и даже несмотря на то, что это на самом деле дешевле, они с радостью заплатят немного больше комиссии и будут использовать поддельные открытые ключи, просто чтобы быть в безопасности и действовать согласно своему дизайну.
Другим популярным аргументом в пользу снятия ограничений OP_RETURN является поддержка бедных майнеров. Наличие в Bitcoin Core политики ретрансляции, поддерживающей все востребованные пользователями транзакции (например, Citrea) должно обеспечивать равный доступ к транзакциям для всех майнеров, включая небольшие, такие как Ocean, и предотвращает доминирование крупных пулов вроде MARA (Slipstream) и ViaBTC (accelerator). Об этом пишет и Blue Matt (Мэтт Коралло) и фаундер Taproot Wizards, получившие многомиллионные инвестиции первоначально как NFT проект, но также начавшие работы в области роллапов, после выхода статьи по BitVM.
У аргумента в пользу децентрализации майнинга есть первая большая проблема: никто из майнеров не использует клиент Core в готовом виде. Ocean идёт так далеко, что даже использует свой клиент для ужесточения правила стандартности транзакций. При дальнейшем рассмотрении этого и производных аргументов становится ясно, что сторонники “малых майнеров” совершенно не понимают рыночные силы и связь с Proof-of-Work, которая может иметь место при выборе майнера и уплате комиссий за нестандартную транзакцию. Если майнер имеет около 1% хэшрейта, это означает, что он может добыть, грубо, 1 блок в сутки. Клиент, желающий смайнить gif ончейн для аукциона по-просту может также быть уверенным что его картинка попадёт на цепочку в ближайший час. Тогда он пойдёт к более крупному майнеру не потому что его транзакция не может “пройти” через сеть валидирующих клиентов Core. С другой стороны, мелкий майнер может предложить более низкую цену за включение gif в блок. Если время не является приоритетом, а клиент хочет gif на Биткоине подешевле - он всё равно отдаст транзацию мелкому майнеру.
Заключение
Достаточно удивительной оказались реакции Вьюлле и Максвелла. В то время как их бывший коллега Эндрю Поэльстра также настаивал на том, что OP_RETURN не нужно исключать из протокола, поскольку проекты всё равно будут сохранять данные тем или иным методом в не предназначенных для данных местах, типа ключей. Они игнорируют факт, что OP_RETURN делает данные “дешевле”, в то время как запись вместо ключей делает их дороже и таким образом уменьшает стимул сохранять их на узлах. Действительно OP_RETURN выглядит как меньшее зло с точки зрения всеобщей сети Биткоина, но в то же время, “стандартность” задаёт правила для вещания с настройками по умолчанию и косвенно защищает p2p сеть владельцев узлов, которые не “подстраивают” узлы.
SuperTestnet сформулировал четыре причины, которые могут быть важны для таких биткоинеров: Во-первых, по его мнению, в текущей реализации слишком легко записывать произвольные данные в блокчейн. Во-вторых, он замечает негативные последствия такого использования сети. В-третьих, он стремится дополнительно снизить мотивацию для злоупотребления блокчейном как носителем данных. И наконец, он утверждает, что фильтры делают размещение произвольных данных более дорогим, тем самым ограничивая этот вектор использования.
Если мы увидим более медленную динамику обновления клиентов, или рост количества альтернативных клиентов, то это будет означать что молчаливое большинство биткоинеров не поддерживает ослабление правил распространения транзакций.
За ослабление требований стандартности выступают все кто так или иначе имеет дело с проектами на базе Биткоина и получили венчурное финансирование. Citrea получила 14 миллионов от Питера Тиля, любой из Core разработчиков может выполнять работу для аналогичных стартапов, которых в 2024-2025 году появилось гораздо больше, чем родилось разработчиков Core. По неизвестной причине никто из этих проектов не хочет предоставить свою версию клиента с отдельным мемпулом - это действительно будет с одной стороны сегментировать сеть, с другой, вынудит проекты поддерживать видимость децентрализации на начальном этапе и всеми силами обеспечивать распространение и хранение своих транзакций, пока они не будут смайнены. Пул MARA имеет дочерний проект роллапа, который также ориентируется на создание своей экосистемы, что выявляет стремление создать “вертикально-интегрированную” компанию на Биткоине. Всё вместе напоминает итерацию Blocksize War, только в данном случае в качестве объекта выбирается странная cтарая тема и речь не идёт о хардфорке - а “всего лишь” изменении не консенсусной части Core.
Поддержите проект 🔗 LN платежом 🔗
Или centralviola51@walletofsatoshi.com
. Начните пользоваться LN кошельком типа Valet для Android, если у вас ещё нет кошелька с поддержкой “Молнии