Skip to main content

Condição de Gasto | Bitcoin Glossary | Mapping Bitcoin

Condição de Gasto

Protocolo

Also known as: encumbrance, unlock condition

Requisitos no script de bloqueio de uma saída Bitcoin que devem ser satisfeitos para gastar os fundos, incluindo assinaturas, hashes ou timelocks de gasto.

Visão Geral

Cada UTXO do Bitcoin é bloqueado por uma condição de gasto — um conjunto de requisitos criptográficos e lógicos que devem ser atendidos antes que o bitcoin possa ser transferido. Essas condições são codificadas no script de bloqueio da saída (também chamado de scriptPubKey) e são satisfeitas fornecendo o script de desbloqueio correto (scriptSig) ou dados de testemunha em uma transação de gasto.

Condições de Gasto Comuns

O Bitcoin suporta uma variedade de condições de gasto, de simples a altamente complexas:

  • Assinatura única: A condição mais comum, exigindo uma assinatura digital válida de uma chave privada.
  • Multisig: Requer M de N assinaturas (por exemplo, 2 de 3) para autorizar o gasto.
  • Bloqueio de hash: Requer revelar uma pré-imagem que faz hash para um valor especificado, usado em HTLCs.
  • Timelock: Impede o gasto até que uma certa altura de bloco ou timestamp seja atingida.
  • Combinação: Múltiplas condições podem ser combinadas usando a lógica do Script Bitcoin (AND, OR, IF/ELSE).

Modelo de Execução de Script

Script de Bloqueio (no UTXO):
  OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

Script de Desbloqueio (na tx gastadora):
  <assinatura> <pubKey>

Execução Combinada:
  Pilha: [assinatura, pubKey]
    -> OP_DUP     -> [assinatura, pubKey, pubKey]
    -> OP_HASH160 -> [assinatura, pubKey, pubKeyHash]
    -> <hash>     -> [assinatura, pubKey, pubKeyHash, hashEsperado]
    -> OP_EQUALVERIFY -> [assinatura, pubKey]  (hashes coincidem)
    -> OP_CHECKSIG    -> [TRUE]                (assinatura válida)

Taproot e Condições Avançadas

Com o Taproot, as condições de gasto ganharam flexibilidade significativa. Uma saída Taproot pode ser gasta através de um gasto por caminho de chave simples (assinatura Schnorr única) ou um gasto por caminho de script que revela uma de potencialmente muitas condições de gasto alternativas ocultas em uma árvore de Merkle. Isso permite que condições complexas permaneçam privadas a menos que sejam realmente usadas.

Casos Extremos

  • Se uma condição de gasto for muito complexa, o script pode exceder os limites de tamanho ou exigir computação excessiva, tornando o UTXO efetivamente impossível de gastar.
  • Saídas com o opcode OP_RETURN são comprovadamente impossíveis de gastar por design, usadas para incorporar dados na cadeia.