MATT‑фреймворк и OP_CHECKCONTRACTVERIFY позволяют создавать состоянийные контракты в Bitcoin
Cointelegraph Research объясняет, как предложение MATT и новый opcode OP_CHECKCONTRACTVERIFY позволяют Bitcoin переносить состояние контракта между транзакциями.
Перевод с английского. Читать оригинал
Главное
- MATT (Merkleize All The Things) предлагает состоянийный контрактный фреймворк, построенный на OP_CHECKCONTRACTVERIFY.
- OP_CHECKCONTRACTVERIFY может проверять, что Taproot‑ключ вывода откорректирован для привязки к конкретным данным состояния контракта.
- Комбинация OP_CHECKCONTRACTVERIFY с OP_CAT позволяет реализовать Merkle‑доказательства и механизмы fraud‑proof прямо в цепочке.
Cointelegraph Research выпустил пятую часть своей серии о ковенантах Bitcoin, в которой описан новый фреймворк под названием MATT (Merkleize All The Things) и opcode OP_CHECKCONTRACTVERIFY (OP_CCV). Предложение направлено на то, чтобы дать Bitcoin возможность переносить изменяемое состояние контракта через несколько транзакций, чего не хватает в стандартных скриптах Bitcoin, где каждая транзакция оценивается изолированно.
BTC / USD
Как MATT внедряет состояние в Taproot‑ключи
MATT опирается на существующий механизм твика Taproot, где публичный ключ вывода Q вычисляется как Q = P + t·G, где P — внутренний ключ, а t — тег‑хеш данных, которые нужно зафиксировать. Вместо того чтобы фиксировать только Merkle‑корень скриптового дерева, MATT предлагает также включать состояние контракта в твик. Состояние хешируется и включается в твик, позволяя следующему выводу перенести новое состояние, которое будет пересчитано в момент траты.
OP_CHECKCONTRACTVERIFY обеспечивает переходы состояния
Основная примитивная операция для MATT — OP_CHECKCONTRACTVERIFY. По данным отчёта, OP_CCV позволяет скрипту проверять, что Taproot‑ввод или‑вывод был твикнут с определённым куском данных состояния. Формат стека opcode выглядит так: <data> <index> <pk> <taptree> <mode> OP_CHECKCONTRACTVERIFY, при этом поддерживаются три режима работы: default (полное значение входа переходит в назначенный вывод), deduct (перемещается только сумма вывода, оставшаяся часть может идти на другие выводы) и ignore (проверка без ограничений по суммам). Эти режимы сохраняют стоимость, позволяя использовать отдельные входы для комиссии и избегая проблем с сжиганием средств, характерных для ранних ковенант‑дизайнов, таких как OP_CTV или SIGHASH_ANYPREVOUT.
Расширение выразительности с OP_CAT
Когда OP_CHECKCONTRACTVERIFY комбинируется с OP_CAT, фреймворк может конструировать и проверять Merkle‑доказательства в цепочке. У Taproot‑вывода ассоциированы два Merkle‑дерева: стандартное скриптовое дерево и отдельное дерево состояния, хранящее промежуточные шаги вычислений. OP_CAT конкатенирует байтовые строки, позволяя скрипту воссоздать Merkle‑доказательство текущего состояния, вычислить новый корень после перехода и затем с помощью OP_CCV заставить следующий вывод зафиксировать этот новый корень. Такой подход поддерживает системы fraud‑proof, аналогичные optimistic rollups, где большинство вычислений происходит вне цепочки, а только спорные шаги публикуются в цепочке для проверки.
Что будет дальше
Следующие шаги для MATT включат формальные BIP‑предложения и тестирование реализаций OP_CHECKCONTRACTVERIFY в Bitcoin Core сообществом. Следите за обновлениями в рассылке разработчиков Bitcoin и за развертываниями в тестовой сети, демонстрирующими состоянийные контракты, fraud‑proof хранилища или другие кейсы, описанные в серии.


Обсуждение 0