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 дозволяє створювати on‑chain Merkle‑докази та механізми fraud‑proof.
Cointelegraph Research випустив п'яту частину серії про Bitcoin‑ковенанти, у якій представлено нову рамку під назвою MATT (Merkleize All The Things) та opcode OP_CHECKCONTRACTVERIFY (OP_CCV). Пропозиція має на меті надати Bitcoin можливість переносити змінний стан контракту через кілька транзакцій, чого не мають стандартні скрипти Bitcoin, оскільки кожна транзакція оцінюється окремо.
BTC / USD
Як MATT вбудовує стан у Taproot‑ключі
MATT розширює існуючий механізм tweak у Taproot, де публічний ключ виходу Q обчислюється як Q = P + t·G, де P — внутрішній ключ, а t — тегований хеш даних, що фіксуються. Замість того, щоб лише фіксувати Merkle‑корінь скриптового дерева, MATT пропонує також вбудовувати стан контракту у tweak. Стан хешується та включається у tweak, що дозволяє наступному виходу переносити новий стан, який переобчислюється під час витрати.
OP_CHECKCONTRACTVERIFY забезпечує переходи стану
Основна примітива для MATT — OP_CHECKCONTRACTVERIFY. За даними звіту, OP_CCV дозволяє скрипту перевіряти, що Taproot‑вхід або вихід був змінений за допомогою певного набору даних стану. Формат стека opcode: <data> <index> <pk> <taptree> <mode> OP_CHECKCONTRACTVERIFY, з трьома режимами роботи: default (повна вартість входу переходить у зазначений вихід), deduct (переміщується лише сума виходу, залишок залишається для інших виходів) та ignore (перевірка без обмежень суми). Ці режими зберігають вартість, дозволяючи окремі fee‑входи і уникаючи проблем спалювання коштів, які були у ранніх дизайнах ковеантів, таких як OP_CTV чи SIGHASH_ANYPREVOUT.
Розширення виразності за допомогою OP_CAT
Коли OP_CHECKCONTRACTVERIFY поєднується з OP_CAT, рамка може будувати та перевіряти Merkle‑докази on‑chain. Для Taproot‑виходу пов’язано два Merkle‑дерева: стандартне скриптове дерево та окреме дерево стану, що зберігає проміжні кроки обчислень. OP_CAT конкатенує байтові рядки, дозволяючи скрипту відновити Merkle‑доказ поточного стану, обчислити новий корінь після переходу та використати OP_CCV, щоб змусити наступний вихід зафіксувати цей новий корінь. Такий підхід підтримує fraud‑proof системи, схожі на optimistic rollups, коли більша частина обчислень виконується off‑chain, а лише спірні кроки публікуються on‑chain для перевірки.
Що слід стежити далі
Наступні кроки для MATT включатимуть формальні BIP‑пропозиції та тестування реалізацій OP_CHECKCONTRACTVERIFY у Bitcoin Core спільнотою. Слід стежити за оновленнями у розсилці розробників Bitcoin та за будь‑якими тест‑нет розгортаннями, які продемонструють стан‑залежні контракти, fraud‑proof сховища чи інші випадки використання, підкреслені у серії.


Обговорення 0