Skip to main content

P2SH | Bitcoin Glossary | Mapping Bitcoin

P2SH

Protocolo

Also known as: Pay-to-Script-Hash

Pay-to-Script-Hash: transação onde a saída é bloqueada ao hash de um script, permitindo condições complexas como multisig. Endereços P2SH começam com '3'.

Visão geral

Pay-to-Script-Hash (P2SH), introduzido no BIP16, transferiu o ônus das condições de gasto complexas do remetente para o destinatário. Antes do P2SH, se alguém quisesse receber bitcoin em um arranjo multisig, o remetente tinha que incluir o script multisig completo em sua saída de transação. O P2SH simplificou isso permitindo que o destinatário fornecesse apenas um hash do script, com o script completo revelado somente no momento do gasto.

Como o P2SH funciona

O remetente bloqueia fundos ao hash de um script de resgate. Ao gastar, o destinatário revela o script de resgate completo junto com os dados necessários para satisfazê-lo.

Script de Bloqueio:
  OP_HASH160 <scriptHash> OP_EQUAL

Script de Desbloqueio (gastando um multisig 2-de-3):
  OP_0 <assinatura1> <assinatura2> <redeemScript>

Onde redeemScript =
  OP_2 <pubKey1> <pubKey2> <pubKey3> OP_3 OP_CHECKMULTISIG

Validação:
┌────────────────────┐
│ 1. Hash do         │
│    redeemScript     │──> Deve corresponder ao <scriptHash>
├────────────────────┤
│ 2. Executar o      │
│    redeemScript     │──> Deve retornar VERDADEIRO
│    com as           │
│    assinaturas      │
└────────────────────┘

Formato de endereço

Os endereços P2SH usam codificação Base58Check e começam com o caractere 3 na mainnet. Isso facilita para as carteiras distinguir endereços P2SH dos P2PKH (que começam com 1).

Casos de uso comuns

  • Carteiras multisig — O caso de uso P2SH mais comum, habilitando requisitos de assinatura m-de-n
  • SegWit encapsulado — O P2SH pode encapsular um script SegWit (P2SH-P2WPKH), permitindo que carteiras mais antigas enviem para endereços SegWit
  • Scripts com bloqueio de tempo — Arranjos de custódia ou vesting usando OP_CHECKLOCKTIMEVERIFY

Limitações

O P2SH requer revelar o script de resgate completo ao gastar, o que expõe as condições de gasto na cadeia. O formato mais novo P2TR (Taproot) aborda essa preocupação de privacidade revelando apenas o caminho de gasto específico que foi usado, mantendo os demais caminhos ocultos.