Перейти к содержимому
buybitcoinsmart

Глоссарий / Транзакции и комиссии

Транзакция с нулевыми данными

Другие названия: Транзакция-носитель данных, Транзакция OP_RETURN.

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

Люди хотели записывать данные в блокчейн задолго до того, как появился безопасный способ это делать. Безопасный способ представляет собой выход, начинающийся с OP_RETURN: он сразу завершается с ошибкой, если кто-то попытается его потратить, поэтому полные узлы могут удалить его из памяти, а не отслеживать бесконечно. Почти все такие выходы содержат ноль сатоши, и отправитель платит только за байты.

Как это работает

Выход с нулевыми данными представляет собой скрипт блокировки, который никогда нельзя выполнить, и именно в этом суть.

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

Bitcoin Core сделал единственный такой выход стандартным в версии 0.9.0, выпущенной в марте 2014 года, с полезной нагрузкой не более 40 байт. В 2015 году предельный размер вырос до 80 байт данных, которые узел считает как 83 байта скрипта, если учесть код операции и префикс вставки. Версия 30.0, выпущенная в октябре 2025 года, отменила ограничение по умолчанию и ограничение в один такой выход на транзакцию после долгого и резкого спора о том, должна ли политика ретрансляции вообще пытаться препятствовать хранению данных. Bitcoin Knots сохранил более строгие настройки по умолчанию, поэтому две самые используемые реализации узла теперь расходятся намеренно, и оператор узла выбирает сторону, выбирая программное обеспечение.

Это изменение политики, а не консенсуса. Данные в выходе OP_RETURN всегда были допустимы; спор шел только о том, должны ли обычные узлы их передавать.

Где это встречается

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

Самым давним и наиболее активным пользователем является Omni Layer, протокол, который выпустил первую версию Tether в сети биткоина и кодировал свои инструкции таким образом. Службы отметок времени, такие как OpenTimestamps, фиксируют хеш документа в выходе, чтобы позже можно было доказать, что документ существовал до этого блока. Runes, протокол токенов, запущенный на блоке халвинга 20 апреля 2024 года, помещает весь свой набор инструкций в единственный выход с нулевыми данными, поэтому тот блок и последующие были полны ими.

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

Транзакция с нулевыми данными vs OP_RETURN

OP_RETURN представляет собой один код операции; транзакция с нулевыми данными является целой транзакцией, в которой просто есть выход, использующий его. Различие важно при чтении конфигурации узла, потому что настройки Bitcoin Core названы по категории транзакции, а не по коду операции: -datacarrier решает, передаются ли такие транзакции вообще, а -datacarriersize задает, насколько большой может быть полезная нагрузка. Поиск по документации по слову OP_RETURN этих параметров не найдет.

Транзакция с нулевыми данными vs надпись

Надписи помещают свои данные совсем в другое место. Ординальная надпись прячет свою полезную нагрузку внутри скрипта свидетеля Taproot, который получает скидку по весу SegWit и может достигать мегабайт, тогда как выход с нулевыми данными оплачивается по полному весу и исторически был ограничен 80 байтами. Эта разница в цене и размере объясняет, почему изображения и коллекционные предметы появились как надписи, а не как данные OP_RETURN, и почему они вызывают очень разные споры о раздувании блокчейна.

Не путать с

Часто задаваемые вопросы

Можно ли потерять деньги, отправив биткоин на выход OP_RETURN?

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

Сколько данных может хранить транзакция биткоина таким способом?

Это зависит от узлов, на которые вы полагаетесь. Bitcoin Core ограничивал полезную нагрузку 80 байтами с 2015 года до версии 30.0 в октябре 2025 года, которая отменила ограничение по умолчанию. Bitcoin Knots сохраняет прежний предел, поэтому ретрансляция больше не единообразна в сети.

Читайте далее

Связанные термины

Еще в разделе «Транзакции и комиссии»

Читать эту страницу на английском