Cointelegraph Research divulgou a quinta parte de sua série sobre covenants no Bitcoin, detalhando um novo framework chamado MATT (Merkleize All The Things) e a opcode OP_CHECKCONTRACTVERIFY (OP_CCV). A proposta visa dar ao Bitcoin a capacidade de transportar estado de contrato mutável entre múltiplas transações, algo que os scripts padrão do Bitcoin não possuem, pois cada transação é avaliada isoladamente.

BTC / USD
Fonte: CoinGecko. Preços indicativos.

Como o MATT incorpora estado nas chaves Taproot

MATT se baseia no mecanismo de ajuste já existente do Taproot, onde a chave pública de saída Q é derivada como Q = P + t·G, sendo P a chave interna e t um hash etiquetado dos dados a serem comprometidos. Em vez de comprometer apenas a raiz Merkle de uma árvore de scripts, o MATT propõe também inserir o estado do contrato no ajuste. O estado é hashado e incluído no ajuste, permitindo que a próxima saída carregue um novo estado que é recomputado no momento do gasto.

OP_CHECKCONTRACTVERIFY impõe transições de estado

A primitiva central do MATT é OP_CHECKCONTRACTVERIFY. Segundo o relatório, OP_CCV permite que um script verifique se uma chave de entrada ou saída Taproot foi ajustada com um determinado conjunto de dados de estado. O formato da pilha da opcode é <data> <index> <pk> <taptree> <mode> OP_CHECKCONTRACTVERIFY, com três modos operacionais: default (valor total da entrada vai para a saída designada), deduct (apenas o valor da saída é transferido, deixando o restante para outras saídas) e ignore (verificação sem restrições de valor). Esses modos preservam o valor enquanto permitem entradas de taxa separadas, evitando os problemas de queima de fundos vistos em designs anteriores de covenants como OP_CTV ou SIGHASH_ANYPREVOUT.

Expandindo a expressividade com OP_CAT

Quando OP_CHECKCONTRACTVERIFY é combinada com OP_CAT, o framework pode construir e verificar provas Merkle on‑chain. Duas árvores Merkle são associadas a uma saída Taproot: a árvore de scripts padrão e uma árvore de estado separada que armazena etapas intermediárias de cálculo. OP_CAT concatena strings de bytes, permitindo que o script reconstrua uma prova Merkle para o estado atual, calcule a nova raiz após uma transição e então use OP_CCV para forçar a próxima saída a comprometer essa nova raiz. Esse design suporta sistemas de prova‑de‑fraude semelhantes a rollups otimistas, onde a maior parte do cálculo ocorre off‑chain e apenas etapas contestadas são postadas on‑chain para verificação.

O que observar a seguir

Os próximos passos para o MATT envolverão propostas formais de BIP e testes comunitários das implementações de OP_CHECKCONTRACTVERIFY no