Що таке OP_RETURN і як це дозволяє зберігати дані в мережі біткоїна?

OP_RETURN — елемент коду біткоїна, що дозволяє використовувати блокчейн не лише для фінансових переказів, а й для збереження довільних дрібних даних. Хоча OP_RETURN відкриває нові потенційно корисні можливості, функція стала предметом суперечок в спільноті.

Критики наголошують, що біткоїн не повинен перетворюватися на платформу для зберігання даних, адже його головне призначення — бути надійними грошима. Прихильники вважають, що при розумному використанні OP_RETURN буде корисним інструментом, а ринок комісій та правила мережі самі «відфільтрують» зайве.

Що таке опкоди (opcodes) у блокчейні біткоїна?

Біткоїн використовує власну скриптову мову Bitcoin Script для визначення умов витрачання монет. Команди цієї мови називаються опкодами (від англ. operation codes, opcodes). Це інструкції, які виконуються у стековій моделі (LIFO) і задають логіку транзакцій. Кожна така команда позначається префіксом OP_ (наприклад, OP_HASH256, OP_VERIFY тощо) і виконує певну функцію: криптографічне хешування, перевірку умов, маніпуляцію даними у стеку тощо. 

Із максимально можливих 256 опкодів у біткоїні реально задіяно менш ніж половину — частину команд було відключено ще у 2010 році з міркувань безпеки.

Опкоди визначають правила витрачання виходів транзакцій (scriptPubKey). Якщо виконання скрипту завершується успішно, вихід можна витратити; якщо ж зустрічається опкод, що робить скрипт недійсним, вихід стає невитратним. Саме так працює спеціальний опкод OP_RETURN, про який далі піде мова.

Як працює OP_RETURN?

OP_RETURN — це особливий опкод у скриптовій мові біткоїна, який дозволяє вписувати довільні дані або повідомлення у транзакції. Технічно OP_RETURN реалізує стандартний тип скрипту NULLDATA, що зазвичай створює явний, перевірюваний і непридатний для витрачання вихід транзакції (так званий provably unspendable output). 

Якщо вихід транзакції містить OP_RETURN, то прикріплені до нього дані записуються в блокчейн назавжди, але сам цей вихід більше не може бути використаний для платежів. Завдяки цьому дані зберігаються в блокчейні як своєрідна нотатка на чеку, не впливаючи на фінансову складову мережі і не створюючи зайвих UTXO.

OP_RETURN було впроваджено у 2014 році (Bitcoin Core v0.9.0) як компромісне рішення для зберігання невеликих обсягів даних без шкоди для мережі. 

До його появи користувачі знаходили менш ефективні способи прикріплювати інформацію до транзакцій — наприклад, відправляли невелику кількість біткоїнів на невикористовувані адреси, тим самим «спалюючи» монети і залишаючи в блокчейні незворотні виходи. Кожна така транзакція збільшувала набір невитрачених виходів (UTXO), що з часом загрожувало перевантажити ноди зайвими даними. 

З метою запобігання зловживанням, початково було встановлено ліміт на обсяг даних в OP_RETURN. Перший реліз з цією функцією обмежував дані 40 Б, у 2015 році ліміт підняли до 80 Б, а з 2016 року дозволили кілька груп даних загальним розміром до 83 Б. Такі обмеження стимулювали користувачів вбудовувати у блокчейн лише хеші або короткі повідомлення.

Станом на 2025 рік розробники Bitcoin Core дійшли висновку, що жорстке обмеження 80 Б застаріло і лише спонукає до використання обхідних, більш шкідливих методів зберігання даних.

Наприкінці квітня 2025 року було запропоновано повністю зняти цей ліміт, а в червні розробники ухвалили рішення реалізувати це у версії Bitcoin Core v30 (реліз запланований на жовтень 2025). Після оновлення транзакції зможуть містити дані обсягом до максимальної величини блоку (~4 МБ) і мати кілька виходів OP_RETURN одночасно.

Для чого використовують OP_RETURN?

  • Тимчасова мітка і Proof-of-Existence. Один з найперших юзкейсів — це доказ існування (Proof-of-Existence) документа чи даних. За допомогою OP_RETURN можна створити незмінюваний часовий штамп, що підтверджує існування певного файлу на конкретну дату. Для цього в транзакцію вбудовується криптографічний хеш документа. Після підтвердження блоком цей хеш назавжди зафіксований у ланцюжку. Пізніше, пред’явивши оригінальний файл, можна довести, що він не змінювався з моменту запису хешу. 
  • Метадані та нотатки. Деякі користувачі додають через OP_RETURN текстові примітки або службову інформацію. Це можуть бути номера замовлень, повідомлення, привітання тощо. Такі дані не впливають на валідність транзакції і ігноруються вузлами, але назавжди залишаються у публічному реєстрі.
  • Токенізація і «кольорові монети». Ще до появи сучасних стандартів токенів в інших блокчейнах, біткоїн-розробники експериментували з випуском активів на базі біткоїна. OP_RETURN став одним із ключових інструментів для розвитку концепції Colored Coins («кольорових монет»). Суть ідеї — «маркувати» окремі сатоші метаданими, що представляють інші активи (наприклад, акції компаній, частки у об’єктах, цифрові колекційні предмети тощо).

    Виходи з OP_RETURN слугували носіями цієї додаткової інформації, дозволяючи відстежувати і передавати «кольорові» монети в межах біткоїн-блокчейна. Хоча Colored Coins так і не отримали широкого розповсюдження, вони стали прототипом для подальшої токенізації і NFT.
  • NFT та цифрові колекційні об’єкти. Створення NFT на біткоїні стало трендом у 2023 році завдяки протоколу Ordinals, що дозволив «гравіювати» зображення і тексти прямо в satoshi. Однак Ordinals використовує інший підхід, який дає змогу обходити ліміт 80 байтів і записувати великі обсяги даних, хоча й за нижчу плату через дисконт SegWit. Зняття обмежень OP_RETURN відкриває можливість реалізувати NFT-транзакції більш елегантно, зберігаючи дані токена в одному виході замість «інскрипцій».

    Існує концепція біткоїн-токенів Runes, що пропонує альтернативний стандарт на базі OP_RETURN. У перспективі протоколи на кшталт Ordinals зможуть перейти на використання OP_RETURN після збільшення ліміту, що зменшить шкоду для мережі.
  • Якірні дані для другорядних рішень (L2) та dApp. Децентралізовані застосунки і рішення другого рівня можуть використовувати блокчейн біткоїна для періодичного збереження контрольних точок. Сайдчейни або мережі зі станами (на кшталт каналів Lightning Network) здатні вбудовувати в основний ланцюг хеш-знімки офчейн-стану, щоб зафіксувати його на певний момент.

    OP_RETURN підходить для цього якнайкраще, адже дозволяє додати такий доказ у блокчейн без створення «зайвих» UTXO. Наприклад, якщо сторонньому протоколу потрібно зберегти 100-байтовий доказ на біткоїні, то раніше це вимагало б розбивати його між двома виходами (через ліміт 80 Б), а після скасування ліміту достатньо одного виходу. У майбутньому це може спростити взаємодію між основною мережею та численними надбудовами.

В чому полягають недоліки OP_RETURN?

Зловживання позафінансовими транзакціями може призвести до невиправданого збільшення розміру блокчейна. Чим більше даних має зберігати кожен вузол, тим вищі вимоги до обладнання й вузлів, що в довгостроковій перспективі загрожує підвищенням рівня централізації. 

Вбудовування даних робить транзакцію «важчою» (збільшує її розмір в байтах). Відповідно, для включення в блок така транзакція вимагатиме більшої комісії. У періоди високого навантаження на мережу запис повідомлення може обійтися дуже дорого. Крім того, якщо OP_RETURN почнуть масово використовувати для великих даних, це може підвищити загальний попит на блокчейн-простір і підняти середній рівень комісій для всіх користувачів.

Критики нововведення побоюються, що зняття ліміту в майбутньому може стимулювати спам-транзакції — вбудовування великого обсягу довільних даних, не пов’язаних з платежами, лише заради реклами чи розваги. Якщо такі оплати підніматимуть комісії, це може витісняти добросовісні транзакції та шкодити образу біткоїна як платіжної мережі.

Втім розробники Bitcoin Core підкреслюють, що рішення про зняття ліміту не схвалює спам, а лише вирівнює політику вузлів із реальними потребами: плата за розміщення великих даних все одно стане природним стримувальним фактором.

Будь-які дані, записані в блокчейн, неможливо видалити чи змінити. Ця властивість має і зворотний бік: у блокчейні можуть назавжди осісти небажані або нелегальні матеріали. В минулому висловлювалися побоювання, що зловмисники здатні публікувати через OP_RETURN протизаконний контент (наприклад, фрагменти заборонених матеріалів), через що сам факт зберігання повного блокчейна може поставити вузли під удар юридичних ризиків. Подібні випадки наразі поодинокі, але етичний аспект існує.

Публічність блокчейна означає, що конфіденційності для вбудованих даних немає. Якщо користувач помилково чи навмисно запише приватну інформацію (паролі, ключі, особисті дані) в OP_RETURN, вона буде доступна всім назавжди. Це вимагає обережності від тих, хто користується цією функцією.

Читайте ForkLog UA в соціальних мережах

Знайшли помилку в тексті? Виділіть її та натисніть CTRL+ENTER

Матеріали за темою

Ми використовуємо файли cookie для покращення якості роботи.

Користуючись сайтом, ви погоджуєтесь з Політикою приватності.

OK
Exit mobile version