Visión general
Pay-to-Public-Key-Hash (P2PKH) fue el primer formato de dirección Bitcoin ampliamente utilizado y sigue siendo compatible con todo el software Bitcoin. Una salida P2PKH bloquea fondos al hash de una clave pública, requiriendo que el gastador revele la clave pública completa y produzca una firma válida para desbloquear los fondos.
Cómo funciona P2PKH
El script de bloqueo (scriptPubKey) contiene el hash de la clave pública del destinatario. Para gastar, el propietario proporciona la clave pública real y una firma en el script de desbloqueo (scriptSig).
Script de Bloqueo (scriptPubKey):
OP_DUP OP_HASH160 <pubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
Script de Desbloqueo (scriptSig):
<firma> <clavePublica>
Flujo de validación:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Duplicar │───>│ Hashear la │───>│ Comparar con│
│ clave pública│ │ clave pública│ │ hash guardado│
└──────────────┘ └──────────────┘ └──────┬───────┘
│ ¿Coincide?
┌──────▼───────┐
│ Verificar │
│ firma contra │
│ la clave │
└──────────────┘
Formato de dirección
Las direcciones P2PKH se codifican usando Base58Check y siempre comienzan con el carácter 1 en mainnet. Por ejemplo: 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa (la dirección del Bloque Génesis).
Por qué P2PKH en lugar de P2PK
Las primeras transacciones de Bitcoin usaban Pay-to-Public-Key (P2PK), que bloqueaba directamente a la clave pública completa. P2PKH mejoró esto hasheando la clave pública, proporcionando dos beneficios: direcciones más cortas y una capa adicional de resistencia cuántica, ya que la clave pública solo se revela al gastar.
Uso moderno
Aunque P2PKH sigue funcionando perfectamente, los formatos más nuevos como P2WPKH (SegWit nativo) y P2TR (Taproot) son preferidos porque ofrecen comisiones de transacción más bajas y mejor privacidad. La mayoría del software de billetera ahora usa por defecto direcciones SegWit o Taproot, pero P2PKH sigue siendo importante para compatibilidad retroactiva.