Selecionar idioma

Alianças Bitcoin Desencadeadas: Um Modelo Formal para Contratos Inteligentes Avançados

Um modelo formal para alianças Bitcoin que permite contratos inteligentes complexos, máquinas de estado e maior expressividade de UTXO sem estado mutável compartilhado.
hashratetoken.org | PDF Size: 0.2 MB
Avaliação: 4.5/5
Sua avaliação
Você já avaliou este documento
Capa do documento PDF - Alianças Bitcoin Desencadeadas: Um Modelo Formal para Contratos Inteligentes Avançados

1. Introdução

O modelo de Saída de Transação Não Gasta (UTXO) do Bitcoin, embora elegante para transferência concorrente de moeda, apresenta limitações significativas para a implementação de contratos inteligentes complexos e com estado, devido à falta de estado mutável compartilhado. As alianças surgem como uma primitiva linguística crítica proposta para estender o Bitcoin Script, permitindo que uma transação imponha restrições aos scripts das transações de resgate futuras. Este artigo aborda a lacuna em modelos formais e abstratos para alianças, que têm sido descritas principalmente de uma perspetiva de baixo nível e focada na implementação desde a sua criação por volta de 2013. Ao fornecer uma base formal, o trabalho visa simplificar o raciocínio sobre as propriedades dos contratos, permitir a especificação de casos de uso avançados além das capacidades atuais do Bitcoin e facilitar o design de abstrações de programação de nível superior.

2. O Modelo Bitcoin Puro

O artigo adapta uma formalização do modelo central de transações do Bitcoin. No modelo UTXO, o estado da blockchain é definido por um conjunto de saídas de transação não gastas. Cada saída contém um valor (quantidade de bitcoin) e um scriptPubKey (script de bloqueio) que especifica as condições necessárias para gastá-la. Uma transação de gasto fornece um scriptSig (script de desbloqueio) e referencia a UTXO que deseja consumir. A validação envolve a execução dos scripts concatenados. Crucialmente, o Bitcoin Script padrão é limitado: não pode introspecionar ou restringir a estrutura da transação de gasto além da verificação de assinatura e aritmética/lógica básica, impedindo a criação de contratos que imponham protocolos de múltiplos passos.

3. Modelo Formal de Alianças

A contribuição central é um modelo formal que abstrai os opcodes de aliança propostos (como o OP_CHECKTEMPLATEVERIFY).

3.1. Primitivas e Sintaxe das Alianças

O modelo introduz predicados de aliança como extensões ao Bitcoin Script. Uma aliança é essencialmente uma restrição $C(T_x, T_{next})$ que avalia como verdadeira ou falsa, onde $T_x$ é a transação atual que está a ser gasta e $T_{next}$ é a transação de gasto proposta. O predicado pode inspecionar campos de $T_{next}$, como os seus scripts de saída, montantes ou locktimes.

3.2. Semântica Operacional

A regra de validação é estendida: Para uma UTXO com uma aliança, a validação de uma transação de gasto $T_{next}$ requer não apenas que o seu scriptSig satisfaça o scriptPubKey original, mas também que o predicado de aliança $C$ seja válido para o par $(T_x, T_{next})$. Isto é formalmente definido usando regras de semântica operacional que integram a verificação da aliança na lógica de validação existente do Bitcoin.

3.3. Alianças Recursivas e Máquinas de Estado

Uma variante poderosa é a aliança recursiva, onde $C$ pode impor que a saída de $T_{next}$ contenha ela própria a mesma (ou uma relacionada) aliança $C'$. Isto permite a implementação de máquinas de estado no Bitcoin: cada transação representa uma transição de estado, com a aliança a garantir que as regras da máquina de estado são seguidas ao longo de uma cadeia de transações. O artigo formaliza isto como uma sequência de transações $T_1, T_2, ..., T_n$ onde para cada $i$, $C(T_i, T_{i+1})$ é válido.

4. Especificação de Contratos Bitcoin Complexos

O modelo formal é aplicado para especificar contratos atualmente inexpremíveis ou complicados no Bitcoin puro.

4.1. Cofres e Saques com Bloqueio Temporal

As alianças podem criar "cofres" onde fundos roubados podem ser recuperados. Uma transação pode exigir que qualquer saque grande tenha primeiro de ir para uma saída com bloqueio temporal, permitindo que o proprietário o cancele se não for autorizado. Isto é especificado por uma aliança que verifica o campo nLockTime e a estrutura de saída de $T_{next}$.

4.2. Canais de Pagamento e Lightning Network

Embora a Lightning Network exista, as alianças podem simplificar e tornar mais segura a sua construção subjacente. Elas podem impor que a transação de fecho de um canal deve ser o estado mais recente, impedindo a transmissão de estados antigos, ao restringir a transação de gasto para corresponder a uma atualização pré-assinada.

4.3. Primitivas de Finanças Descentralizadas (DeFi)

Construtos DeFi simples, como dívida colateralizada ou swaps não custodiais, tornam-se possíveis. Uma aliança pode bloquear fundos numa transação que só pode ser gasta por uma transação que apresente uma prova criptográfica válida de pagamento de uma contraparte ou de liquidação.

5. Primitivas de Linguagem de Alto Nível

O artigo discute como as alianças podem servir como alvo de compilação para linguagens de contrato de alto nível. Primitivas como "sacar após o tempo T", "gastar apenas se a contraparte assinar" ou "transicionar o estado de A para B" podem ser mapeadas diretamente para restrições de aliança específicas, elevando o nível de abstração para os desenvolvedores de contratos Bitcoin.

6. Ideia Central e Perspectiva do Analista

Ideia Central: Bartoletti et al. não estão apenas a propor outro opcode de aliança; estão a fornecer a teoria formal em falta que transforma um truque inteligente num paradigma de programação legítimo e analisável para o Bitcoin. Esta é a chave que desbloqueia a engenharia sistemática de contratos complexos e seguros em blockchains UTXO, indo além da programação ad-hoc.

Fluxo Lógico: O argumento é convincentemente simples: 1) O modelo UTXO do Bitcoin carece de estado, limitando os contratos. 2) As alianças propostas como solução são pouco compreendidas formalmente. 3) Portanto, construímos um modelo formal. 4) Usando este modelo, demonstramos que ele pode expressar casos de uso valiosos e complexos (cofres, canais, DeFi). 5) Este formalismo permite então naturalmente o design de linguagens de nível superior. É um clássico pipeline "a teoria permite a prática" executado com precisão.

Pontos Fortes e Fracos: O principal ponto forte é colmatar o fosso entre a teoria da criptografia/linguagens de programação e a engenharia do Bitcoin — um fosso que levou a bugs dispendiosos no modelo baseado em contas da Ethereum. A semântica formal permite a verificação de propriedades, uma grande vitória. O ponto fraco, implicitamente reconhecido, é a economia política do Bitcoin. Como o artigo nota, a "abordagem extremamente cautelosa" do Bitcoin torna a implementação de novos opcodes como alianças uma tarefa hercúlea, independentemente da sua elegância formal. O sucesso de soluções de Camada 2 como a Lightning sem alianças nativas também levanta questões sobre necessidade versus conveniência. Além disso, a segurança do modelo assenta na premissa de que os campos restringidos (como hashes de script) são suficientes; efeitos de interação imprevistos com outros opcodes podem permanecer.

Ideias Acionáveis: Para investigadores, este artigo é um modelo: usar métodos formais para reduzir riscos e clarificar atualizações da blockchain. Para desenvolvedores, comecem a projetar estruturas de contrato agora assumindo que as alianças existirão (como visto na Liquid ou Stacks). Para os desenvolvedores do protocolo Bitcoin, o artigo fornece a base rigorosa necessária para argumentar a favor do BIP 119 (OP_CTV) ou propostas semelhantes — transforma um pedido de funcionalidade numa especificação de engenharia. A principal conclusão: o futuro dos contratos inteligentes Bitcoin não é sobre imitar a Ethereum, mas sobre aproveitar o paradigma único UTXO+alianças para criar uma nova classe de aplicações descentralizadas, potencialmente mais seguras e escaláveis.

7. Detalhes Técnicos e Formalização

O modelo formal define transações, scripts e validação contextualmente. Um detalhe técnico chave é a representação da restrição da aliança. Seja $ exttt{tx}$ uma transação. Uma aliança pode ser vista como uma função:

$\text{Aliança}_{\text{cond}} : \texttt{tx}_{\text{current}} \times \texttt{tx}_{\text{next}} \times \sigma \rightarrow \{\text{Verdadeiro}, \text{Falso}\}$

onde $\sigma$ representa o contexto de validação (altura do bloco, etc.). O predicado $\text{cond}$ pode ser uma conjunção de verificações nos campos de $\texttt{tx}_{\text{next}}$:

$\text{cond} \equiv (\texttt{hashOutputs}(\texttt{tx}_{\text{next}}) = H) \land (\texttt{nLockTime}(\texttt{tx}_{\text{next}}) > T) \land ...$

Isto alinha-se com propostas como o OP_CHECKTEMPLATEVERIFY, que coloca um hash de partes especificadas da transação de gasto na stack para comparação. A propriedade recursiva é formalizada garantindo que uma saída de $\texttt{tx}_{\text{next}}$ contém um script $S'$ que por si só impõe uma aliança $\text{Aliança}_{\text{cond}'}$.

8. Estrutura de Análise e Caso de Exemplo

Exemplo: Um Contrato de Cofre Simples
Objetivo: Criar uma UTXO que pode ser gasta de duas formas: 1) Instantaneamente, mas apenas para um endereço específico de "armazenamento frio". 2) Para qualquer endereço, mas apenas após um atraso de 30 dias (permitindo o cancelamento em caso de roubo).
Aplicação da Estrutura usando o Modelo Formal:
1. Script de Bloqueio Inicial (scriptPubKey): Contém uma condição de aliança $C_1$.
2. Aliança $C_1(T_{cofre}, T_{gasto})$: Deve avaliar como Verdadeiro. Verifica:
    a) Caminho A (Instantâneo): $\texttt{hashOutputs}(T_{gasto}) = H_{frio}$ // A saída deve ter um hash correspondente ao endereço de armazenamento frio pré-comprometido.
    b) Caminho B (Atrasado): $\texttt{nLockTime}(T_{gasto}) \geq \text{blocoAtual} + 4320$ (30 dias em blocos) E $\texttt{hashOutputs}(T_{gasto})$ pode ser qualquer coisa.
3. Validação: Ao gastar a UTXO do cofre com $T_{gasto}$, o nó Bitcoin executa o script. Requer uma assinatura do proprietário do cofre e verifica que $C_1$ é válida para o par de transações.
Este exemplo demonstra como o predicado $C(T_x, T_{next})$ do modelo formal é instanciado com verificações concretas nos campos da próxima transação, permitindo uma propriedade de segurança (recuperação de roubo) impossível no Bitcoin base.

9. Aplicações Futuras e Direções

A formalização abre várias vias futuras:

  • Compiladores Verificados: Construir compiladores de linguagens de alto nível (como extensões do Simplicity ou Miniscript) para Bitcoin Script incorporado com alianças, com provas formais de correção.
  • Alianças Trans-Cadeia: Explorar alianças que condicionam gastos a eventos de outras blockchains ou oráculos, usando provas criptográficas como SPVs, como sugerido por trabalhos anteriores sobre "pontes" e investigação recente sobre rollups.
  • Alianças que Preservam a Privacidade: Integrar verificações de aliança com provas de conhecimento zero (por exemplo, usando assinaturas Taproot/Schnorr) para ocultar a lógica do contrato enquanto ainda a impõe, uma direção explorada em projetos como o Ark.
  • Análise Formal de Segurança: Usar o modelo para analisar sistematicamente a segurança das construções de aliança propostas contra ataques económicos e criptográficos, semelhante ao trabalho feito nos contratos inteligentes da Ethereum pela comunidade do IEEE Symposium on Security and Privacy.
  • Simplificação de Protocolos de Camada 2: Redesenhar protocolos como a Lightning Network ou sidechains (Liquid) para serem mais eficientes e com minimização de confiança, aproveitando alianças nativas, reduzindo a necessidade de torres de vigia complexas ou federações.

10. Referências

  1. M. Bartoletti, S. Lande, R. Zunino. Bitcoin covenants unchained. arXiv:2006.03918v2 [cs.PL]. 2020.
  2. S. Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. 2008.
  3. J. Poon, T. Dryja. The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments. 2016.
  4. M. Moser, I. Eyal, E. G. Sirer. Bitcoin Covenants. Financial Cryptography 2016 Workshops.
  5. Bitcoin Improvement Proposal 119 (BIP 119). OP_CHECKTEMPLATEVERIFY.
  6. G. Wood. Ethereum: A Secure Decentralised Generalised Transaction Ledger. Ethereum Yellow Paper. 2014.
  7. A. Miller, et al. Hashed Timelock Contracts (HTLCs). 2017.
  8. R. O'Connor. Simplicity: A New Language for Blockchains. Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security.
  9. Blockstream. Liquid Network. https://blockstream.com/liquid/
  10. IEEE Symposium on Security and Privacy. Multiple papers on smart contract security analysis. Various years.