692 / 736BIP347

OP_CAT

Объединение данных в Tapscript

BIP 347 предлагает вернуть в Tapscript простую операцию объединения двух элементов стека и тем самым расширить возможности проектирования контрактов Bitcoin.

OP_CAT — предлагаемый opcode для Tapscript, который объединяет две последовательности байтов, если итоговый элемент не превышает лимит 520 байтов; в mainnet он пока не активен.

Спецификация переопределяет OP_SUCCESS126 в Tapscript. Операция снимает два верхних элемента стека, объединяет их в порядке стека и возвращает результат в стек. [1]

Исходный OP_CAT был отключён в раннем Bitcoin вместе с другими opcodes. Новое предложение ограничено Tapscript и сохраняет действующий лимит 520 байтов для одного элемента стека. [2]

Объединение позволяет создавать в script структурированные данные и хешировать их. Сторонники выводят из этого covenants, деревья транзакций, vaults и доказательства свойств будущей транзакции. [1]

Сам opcode не задаёт ни одно конкретное приложение, ни виртуальную машину общего назначения. Безопасность отдельного протокола зависит от того, как он сочетает OP_CAT с хешами, подписями и правилами расходования. [1]

BIP имеет статус Complete, который описывает зрелость документа, а не активацию в консенсусе. Узлы mainnet сейчас считают OP_SUCCESS126 успешным завершением script по правилам Tapscript. [3]

Активация была бы soft fork: новые правила сузили бы множество ранее допустимых расходов Tapscript. Для этого потребовались бы отдельный процесс развёртывания и широкая техническая оценка. [1]

OP_CAT связан с CTV, covenants и Simplicity, но не является их синонимом. У каждого предложения свои выразительность, стоимость анализа и пространство для непредусмотренных конструкций. [1]

При проверке необходимо отделять существующую спецификацию и экспериментальные реализации от фактических правил mainnet. Wallet не должна считать OP_CAT доступным без активации. [4]

Для полной картины прочитайте эту статью вместе с Bitcoin Script, Taproot, Covenants, OP_CHECKTEMPLATEVERIFY, Soft Fork, BIP (Bitcoin Improvement Proposal).

01Активен ли OP_CAT сегодня в mainnet Bitcoin?

Нет. BIP 347 — завершённая спецификация предложения, но изменение не было активировано как правило консенсуса mainnet.

02Означает ли OP_CAT smart contracts общего назначения?

Нет. Он добавляет одну операцию объединения данных; возможности и риски возникают в конкретных scripts и протоколах, которые её используют.

DOC · 001BIP 347 — OP_CAT in TapscriptСпецификация DOC · 002Bitcoin Optech — OP_CATДокументация DOC · 003Bitcoin Core — Tapscript interpreterПервичный источник DOC · 004BIP 342 — Validation of Taproot ScriptsСпецификация
Обновлено: Сначала источники · Не является инвестиционной рекомендацией