Framework MATT e OP_CHECKCONTRACTVERIFY habilitam contratos Bitcoin com estado
Cointelegraph Research descreve como a proposta MATT e a nova opcode OP_CHECKCONTRACTVERIFY permitem que o Bitcoin carregue estado de contrato entre transações.
Traduzido do inglês. Ler o original
Principais pontos
- MATT (Merkleize All The Things) propõe um framework de contrato com estado baseado em OP_CHECKCONTRACTVERIFY.
- OP_CHECKCONTRACTVERIFY pode verificar se uma chave Taproot foi ajustada para comprometer dados específicos de estado do contrato.
- Combinar OP_CHECKCONTRACTVERIFY com OP_CAT permite provas Merkle on‑chain e mecanismos de prova‑de‑fraude.
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
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


Discussão 0