‹ CAPÍTULO 16, TODAS AS LIÇÕES

MASTER · CAPÍTULO 16 · LIÇÃO 1 DE 5

Script e atualizações

Bitcoin Script

O que está realmente escrito em uma saída para bloqueá-la? 6 min

Cada saída carrega um pequeno programa, seu script de bloqueio. Para gastá-la, uma entrada fornece uma parte de desbloqueio. Os nós executam os dois juntos: se o programa terminar com verdadeiro, o gasto é válido.

Uma máquina de pilha

O Script opera em uma pilha: itens são empilhados, e operações retiram itens do topo e empilham resultados. O clássico pagamento legado lê: OP_DUP OP_HASH160 <hash da chave pública> OP_EQUALVERIFY OP_CHECKSIG. Em palavras: copie a chave pública fornecida, aplique o hash nela, verifique se ela corresponde àquela na saída e, em seguida, verifique a assinatura em relação a ela.

Limitado propositalmente

O Script não tem loops nem memória de propósito geral. Cada programa termina, rapidamente, e cada nó pode prever quanto custa verificá-lo. Isso o torna muito menos expressivo do que as linguagens de outras blockchains e muito mais fácil de raciocinar.

  • Multisig: requer várias assinaturas de um conjunto de chaves.
  • Bloqueios de hash: exigem a revelação de um segredo cujo hash é conhecido, como faz o Lightning.
  • Bloqueios de tempo: proíbem gastos antes de uma data ou altura de bloco.

O que lembrar

  • As saídas são bloqueadas por pequenos programas baseados em pilha.
  • O Script não tem loops: cada verificação termina de forma previsível.
  • Assinaturas, hashes e tempos são seus blocos de construção.

Verificação rápida

Quando um gasto é válido no nível do Script?

Por que o Script não tem loops?

Bitcoin Script · Universidade Bitcoin