Definição
Bitcoin Script é uma linguagem de programação baseada em pilha e Turing incompleta, usada para definir as condições sob as quais Transações Bitcoin pode ser gasto. É um sistema de script simples, porém poderoso, incorporado em cada saída (script de bloqueio ou scriptPubKey) e entrada (script de desbloqueio ou scriptSig) de transação Bitcoin, permitindo condições de gasto programáveis sem expor a rede Bitcoin aos riscos de uma plataforma de contratos inteligentes Turing-completa. O Bitcoin Script permite carteiras multi-assinaturatransações com bloqueio de tempo, contratos bloqueados por hash, Canais de pagamento e trocas atômicas — tudo isso sem a necessidade de uma blockchain de uso geral.
Origem e história
| Data | Evento |
| 2008 | Satoshi Nakamoto cria o Bitcoin Script como parte do projeto do white paper do Bitcoin. |
| 2009 | Script Bitcoin implantado no bloco gênese do Bitcoin; Pay-to-Public-Key (P2PK) é o primeiro tipo de script. |
| 2012 | BIP 16: Introdução do Pay-to-Script-Hash (P2SH), que permite scripts de resgate complexos. |
| 2015 | A função CHECKLOCKTIMEVERIFY (CLTV) foi adicionada, permitindo bloqueios temporais absolutos em transações. |
| 2016 | A função CHECKSEQUENCEVERIFY (CSV) foi adicionada, permitindo bloqueios temporais relativos para canais de pagamento. |
| 2017 | SegWit introduz Pay-to-Witness-Public-Key-Hash (P2WPKH) e P2WSH. |
| 2021 | A atualização do Taproot (BIP 340/341/342) introduz assinaturas Schnorr e MAST via Tapscript. |
| 2023 | Os números ordinais do Bitcoin utilizam scripts para inscrever dados em dados de testemunha. |
| 2023 | O debate sobre a retomada do BIP 347 (OP_CAT) se intensifica devido a possíveis extensões de script. |
“O Bitcoin Script é propositalmente limitado — e isso é uma característica, não um defeito. Simplicidade é segurança.” — Greg Maxwell, desenvolvedor do Bitcoin Core
Como Funciona
EXECUÇÃO DO SCRIPT DE TRANSAÇÃO BITCOIN ═════════════════════════════════════════════════════════════════ SCRIPT DE BLOQUEIO (scriptPubKey) — na saída UTXO: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG (P2PKH padrão — Pagamento para Hash de Chave Pública)
SCRIPT DE DESBLOQUEIO (scriptSig) — fornecido por quem gastou:
EXECUÇÃO (baseada em pilha): A pilha começa vazia
- Empurrar → Pilha: [assinatura]
- Empurrar → Pilha: [sig, pubKey]
- OP_DUP: topo duplicado → Pilha: [sig, pubKey, pubKey]
- OP_HASH160: hash superior → Pilha: [sig, pubKey, pubKeyHash]
- Empurrar → Pilha: [sig, pubKey, pubKeyHash, esperado]
- OP_EQUALVERIFY: comparar → Pilha: [sig, pubKey] (se igual)
- OP_CHECKSIG: verificar assinatura → Pilha: [TRUE]
Resultado: VERDADEIRO = a transação é válida e UTXO é gasto
TIPOS DE SCRIPT: P2PK → Pagamento para chave pública (legado) P2PKH → Pagamento para hash de chave pública (mais comum) P2SH → Pagamento para hash de script (multi-assinatura, complexo) P2WPKH → SegWit nativo (bech32) P2TR → Pagamento para Taproot (mais eficiente/privado) ══════════════════════════════════════════════════════
| Tipo de script | Formato de Endereço | Caso de uso | Política de Privaciade |
| P2PK | (sem endereço padrão) | Bitcoin original, Moedas Satoshi | Baixo |
| P2PKH | 1… (Base58) | Pagamentos padrão de assinatura única | Baixo |
| P2SH | 3… (Base58) | Scripts complexos com múltiplas assinaturas | Suporte: |
| P2WPKH | bc1q… (bech32) | SegWit nativo, taxas mais baixas | Suporte: |
| P2WSH | bc1q… (bech32) | Scripts SegWit nativos | Suporte: |
| P2TR | bc1p… (praia32m) | Raiz tabular, Tapscript, Ordinais | Alto |
Em termos simples
- Fechadura e chaveCada Bitcoin emitido possui um bloqueio (script de bloqueio) — para gastá-lo, você precisa fornecer a chave correta (script de desbloqueio) que atenda às condições.
- Máquina de empilharO script é executado empilhando valores em uma pilha e executando operações — é simples, previsível e propositalmente não Turing-completo para evitar loops infinitos.
- Exemplo de assinatura múltiplaUm script multisig 2 de 3 requer 2 das 3 assinaturas de chave privada designadas para desbloquear fundos — usado para tesourarias de equipe e carteiras seguras.
- Privacidade TaprootTaproot cria sistemas multi-assinatura complexos e scripts de contratos inteligentes elas são idênticas às transações simples de assinatura única na blockchain — melhorando a privacidade.
- Limites deliberadosDiferentemente do Solidity do Ethereum, o Bitcoin Script não pode acessar dados externos, criar loops ou chamar outros contratos — tornando-o previsível e seguro.
Exemplos do mundo real
| Cenário | Tipo de script | Beneficiar |
| Trocar carteira quente | P2SH 2 de 3 multisig | Requer 2 das 3 chaves para funcionar — protege contra roubo de uma única chave. |
| Canal da Lightning Network | HTLC (Contrato de Hash com Bloqueio Temporal) | Permite pagamentos instantâneos de BTC fora da blockchain. |
| Troca atômica BTC↔LTC | HTLC em ambas as cadeias | Troca entre cadeias sem intermediários e sem necessidade de confiança. |
| Herança com prazo determinado | VERIFICAR TEMPO DE BLOQUEIO | Os fundos só poderão ser utilizados após uma data específica. |
| Inscrição ordinal | dados de testemunha P2TR | NFT/inscrição de dados em testemunho Taproot |
Vantagens
| A Vantagem | Detalhe |
| Total | O design Turing incompleto impede vetores de ataque complexos possíveis em contratos inteligentes. |
| Previsibilidade | Cada script é executado deterministicamente com computação limitada. |
| Expressividade | Habilita assinaturas múltiplas, bloqueios temporais e HTLCs suficientes para a Lightning Network. |
| Avançada | Os scripts são compactos, minimizando os dados de transação e as taxas. |
| Privacidade (Taproot) | Condições de gastos complexas indistinguíveis de pagamentos simples. |
Desvantagens e Riscos
| Gestão de | Detalhe |
| Funcionalidade limitada | Não é possível implementar algo complexo. Defi, oráculos, ou contratos inteligentes arbitrários |
| Complexidade do script | Scripts avançados com múltiplas assinaturas são complexos de implementar corretamente. |
| Problemas com formatos legados | Os tipos de script mais antigos (P2PK, P2PKH) têm menor privacidade do que as alternativas modernas. |
| Códigos de operação desativados | Diversos opcodes poderosos (OP_CAT, OP_CHECKSIGFROMSTACK) foram desativados por motivos de segurança. |
| Riscos de bugs de script | Erros em scripts personalizados podem bloquear fundos permanentemente. |
Dicas de gerenciamento de risco:
- Sempre teste implementações de scripts personalizados na rede de testes antes da rede principal.
- Use endereços P2TR (Taproot) para obter a melhor privacidade e compatibilidade futura.
- Para carteiras com múltiplas assinaturas, utilize implementações já estabelecidas (Bitcoin Core, Sparrow Wallet) em vez de scripts personalizados.
- Armazene os scripts de resgate (P2SH) em segurança — você precisa deles para gastar os fundos.
Perguntas frequentes
P: Por que o Bitcoin Script não é Turing-completo?
A: A completude de Turing permite loops infinitos — o que é perigoso em uma blockchain onde todos os nós precisam executar todos os scripts. A incompletude deliberada do Bitcoin Script garante que os scripts terminem de forma previsível, prevenindo ataques de negação de serviço e possibilitando a verificação formal dos scripts.
P: O que é um HTML em um script Bitcoin?
A: Um Contrato de Bloqueio Temporal por Hash (HTLC) é um script que permite que um pagamento seja reivindicado ao revelar um segredo (pré-imagem) que, ao ser criptografado, resulta em um valor predeterminado, ou reembolsado ao remetente após um período de tempo limite. Os HTLCs são o bloco de construção fundamental da Lightning Network.
P: Como o Taproot melhora o Bitcoin Script?
A: O Taproot (BIP 340/341/342) introduz assinaturas Schnorr, permitindo a agregação de chaves, MAST (Árvores de Sintaxe Abstrata Merklizada) via Tapscript, possibilitando scripts complexos enquanto revela apenas os ramos executados, e tornando todas as saídas do Taproot visualmente idênticas — melhorando significativamente a privacidade e a eficiência.
Dica UPay: Ao configurar uma carteira Bitcoin, use endereços Taproot (bc1p…) para obter a melhor combinação de privacidade, eficiência e compatibilidade futura. A maioria das carteiras modernas, como Sparrow e Phoenix, oferece suporte nativo ao Taproot.
Aviso: Este conteúdo tem fins meramente educativos e não constitui aconselhamento financeiro ou técnico.
UPay — Tornando as criptomoedas uma enciclopédia










