ScriptPubKey
O código de travamento de uma saída
O ScriptPubKey é o código de travamento de uma saída.
Ele é feito de Script, uma mini linguagem de programação que permite colocar diferentes tipos de travas nas suas saídas. A maioria dos ScriptPubKeys usa um conjunto padrão de travas, mais comumente travando a saída a uma chave pública (ex.: P2PKH ou P2WPKH).
Os ScriptPubKeys normalmente são codificados em endereços para facilitar o compartilhamento.
- Scripts legados como P2PK, P2PKH, P2MS e P2SH são destravados pelo campo ScriptSig.
- Scripts mais novos como P2WPKH, P2WSH e P2TR são destravados na seção de testemunha.
Exemplos
Como é um ScriptPubKey?
Aqui está um resumo dos tipos de ScriptPubKey que você encontra nas saídas (cada um tem uma página dedicada com detalhes):
P2PK (Legado)
Trava a saída a uma única chave pública. Contém a chave pública e o opcode OP_CHECKSIG. É um dos scripts mais simples, encontrado principalmente em coinbases antigas.
P2PKH (Legado)
Também trava a uma única chave pública, mas, em vez de colocar a chave pública bruta no script, coloca o hash da chave pública (o HASH160 da chave). Foi o script mais comum até 2016. Para destravar, você fornece uma assinatura e a chave pública original.
HASH160
Chave Pública
P2MS (Legado)
Permite travar a saída a várias chaves públicas (multisig). Para destravar, você fornece o número exigido de assinaturas (ex.: 2 de 3).
P2SH (Legado)
Introduzido em 2012 (BIP 16). Permite travar a saída usando um script de travamento personalizado. Em vez de um hash de chave pública, contém um hash de script (o HASH160 de um script). O script real (redeem script) só é revelado no momento de gastar.
P2WPKH e P2WSH (SegWit)
Versões "segregated witness" do P2PKH e do P2SH. O código de destravamento fica na testemunha em vez do ScriptSig.
P2TR (Taproot)
O tipo de saída mais novo (Taproot), que permite gastar por uma chave ou por um script, revelando apenas uma condição de gasto.