Visão geral
Pay-to-Public-Key-Hash (P2PKH) foi o primeiro formato de endereço Bitcoin amplamente utilizado e continua sendo suportado por todos os softwares Bitcoin. Uma saída P2PKH bloqueia fundos ao hash de uma chave pública, exigindo que o gastador revele a chave pública completa e produza uma assinatura válida para desbloquear os fundos.
Como o P2PKH funciona
O script de bloqueio (scriptPubKey) contém o hash da chave pública do destinatário. Para gastar, o proprietário fornece a chave pública real e uma assinatura no script de desbloqueio (scriptSig).
Script de Bloqueio (scriptPubKey):
OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
Script de Desbloqueio (scriptSig):
<assinatura> <chavePublica>
Fluxo de validação:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Duplicar │───>│ Hash da │───>│ Comparar com│
│ chave pública│ │ chave pública│ │ hash guardado│
└──────────────┘ └──────────────┘ └──────┬───────┘
│ Coincide?
┌──────▼───────┐
│ Verificar │
│ assinatura │
│ contra chave │
└──────────────┘
Formato de endereço
Os endereços P2PKH são codificados usando Base58Check e sempre começam com o caractere 1 na mainnet. Por exemplo: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa (o endereço do Bloco Gênesis).
Por que P2PKH em vez de P2PK
As primeiras transações Bitcoin usavam Pay-to-Public-Key (P2PK), que bloqueava diretamente à chave pública completa. O P2PKH melhorou isso ao fazer o hash da chave pública, proporcionando dois benefícios: endereços mais curtos e uma camada adicional de resistência quântica, já que a chave pública só é revelada no momento do gasto.
Uso moderno
Embora o P2PKH ainda funcione perfeitamente, formatos mais novos como P2WPKH (SegWit nativo) e P2TR (Taproot) são preferidos porque oferecem taxas de transação mais baixas e melhor privacidade. A maioria dos softwares de carteira agora usa por padrão endereços SegWit ou Taproot, mas o P2PKH permanece importante para compatibilidade retroativa.