Разработчик Bitcoin скрывает изображение размером 66 КБ в транзакции, чтобы продемонстрировать уязвимость управления

Недавно разработчик Bitcoin Мартин Хабовштиак продемонстрировал интересный эксперимент, в ходе которого он встроил изображение размером 66 килобайт в одну транзакцию, не используя при этом OP_RETURN или Taproot. Эта транзакция полностью соответствовала правилам консенсуса, и любой желающий может проверить данные с помощью стандартного программного обеспечения для узлов. Хабовштиак не стремился создать произведение искусства, а хотел доказать, что закрытие одного из путей для хранения данных не устраняет возможность их хранения, а лишь меняет место, где эти данные прячутся.

Данная демонстрация пришлась на время одного из самых острых споров по вопросам управления в сообществе Bitcoin за последние годы. Одна из сторон выступает за более строгие фильтры, чтобы ограничить «спам» на блокчейне, в то время как другая сторона утверждает, что жесткие ограничения могут привести к худшим последствиям и создать преимущества для крупных майнеров. Эксперимент Хабовштиака служит доказательством второй позиции: фильтрация перенаправляет данные, а не предотвращает их.

Что произошло на самом деле

В своем отчете Хабовштиак предоставил идентификатор транзакции и метод верификации. Пользователи могут использовать команду bitcoin-cli getrawtransaction, а затем xxd -r -p для восстановления файла. Этот метод избегает двух наиболее обсуждаемых путей в дебатах о хранении данных: поля OP_RETURN, которое Bitcoin Core недавно ослабил, и структуру свидетелей Taproot, которая позволила многим инскрипциям появиться в сети.

Транзакции Bitcoin представляют собой байты. Узлы сети обеспечивают соблюдение структурных правил, таких как действительные подписи, правильное форматирование и законные условия расходования. Однако они не контролируют, что байты «значат только деньги». Если кто-то создает действительные байты транзакции, которые также формируют действительный файл изображения, сеть сохраняет и передает их.

Два уровня правил Bitcoin

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

Уровень правил Что он контролирует (простым языком) Что он не может гарантировать Почему это важно
Правила консенсуса Что делает блоки/транзакции действительными Не может обеспечить «значение только денег» Если это действительно, это может быть добыто
Политика / стандартность Что узлы передают / мемпулы принимают по умолчанию Может быть обойдено Фильтры добавляют трение, а не уверенность

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

Проблема «плати за игру»

Даже когда многие узлы отказываются передавать «некондиционные» транзакции, экономические стимулы создают обходные пути. Горные пулы принимают транзакции напрямую, минуя сеть передачи. Существуют специальные сервисы, созданные для этой цели. Например, Slipstream от MARA работает как прямая линия подачи для «больших или некондиционных» транзакций, которые узлы часто исключают из мемпулов, даже если они соответствуют правилам консенсуса.

Это создает вектор централизации, который может усилиться при более строгих фильтрах. Когда обычные узлы не будут передавать определенные типы транзакций, только майнеры и специализированные сервисы смогут надежно включать их в блоки. Стоимость одного мегабайта пространства в блоке составляет примерно 0.1 BTC при 10 сатоши за виртуальный байт и около 0.5 BTC при 50 сатоши за байт. Вопрос «запрета» становится вопросом «сколько люди готовы заплатить?»

Дебаты вокруг BIP-110

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

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

Заключение

Эксперимент Хабовштиака подчеркивает, что даже ограничения консенсуса сталкиваются с давлением адаптации. Он отмечает, что BIP-110 может аннулировать его конкретную конструкцию, но также указывает на то, что он может создать альтернативы, используя другие кодировки. Основная динамика остается неизменной: если сжать один паттерн, стимулы и изобретательность перенаправляют данные в другое место.

Таким образом, вопрос о том, как Bitcoin будет справляться с хранением данных, становится все более актуальным. Хабовштиак демонстрирует, что фильтры не работают так, как ожидалось. Будущее зависит от того, примут ли пользователи и разработчики Bitcoin эту реальность или продолжат искать технические решения для того, что все больше выглядит как экономическая и управленческая проблема.