P2PKH
P2PKH (Pay-to-Public-Key-Hash) est le format historique d'adresse Bitcoin (préfixe 1...). Le script verrouille les fonds sur le HASH160 de la clé publique. Il dévoile la clé publique uniquement à la dépense. Toujours valide mais peu utilisé sur les nouveaux wallets.
Définition et histoire
P2PKH, Pay-to-Public-Key-Hash, est introduit dès 2010 par Satoshi pour remplacer P2PK. Il devient rapidement le format dominant durant toute la première décennie de Bitcoin. Les adresses commençant par 1 (mainnet) ou m/n (testnet) sont des adresses P2PKH.
Anatomie du script
scriptPubKey :
OP_DUP OP_HASH160 <20-byte hash> OP_EQUALVERIFY OP_CHECKSIG
Le <20-byte hash> est le HASH160 de la clé publique, c'est-à-dire RIPEMD160(SHA256(pubkey)).
scriptSig (input pour dépenser) :
<signature> <pubkey>
Le script s'exécute ainsi :
- Duplique la clé publique.
- Hash la deuxième copie en HASH160.
- Vérifie l'égalité avec le hash de l'output.
- Vérifie la signature contre la clé publique.
Format d'adresse
Une adresse P2PKH typique : 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa (l'adresse historique du bloc Genesis).
Construction :
- Préfixer le HASH160 par
0x00(mainnet). - Calculer un checksum : 4 premiers octets de
SHA256(SHA256(donnée)). - Encoder le tout en Base58Check.
Total : 25 octets compressés en 33-34 caractères alphanumériques.
Avantages historiques
- Plus court que P2PK
- Clé publique cachée jusqu'à la première dépense (résistance partielle au quantique)
- Adresses vérifiables grâce au checksum
Limites
| Limite | Conséquence | |--------|-------------| | Pas de SegWit discount | Frais plus chers que P2WPKH | | Pas de multisig natif | Nécessite P2SH | | Base58 sensible à la casse | Difficile à lire vocalement | | Pas de upgrade path | Bloque l'innovation script |
C'est pour ça que les BIP-141/SegWit (2017) ont introduit P2WPKH, qui reste compatible mais bien moins cher en frais.
Adoption actuelle
En 2025, environ 15-20 % des UTXOs sont encore en P2PKH, principalement :
- Hodlers historiques qui n'ont pas migré
- Anciens exchanges qui n'ont pas mis à jour
- Wallets de copie/backup
Les nouveaux wallets génèrent par défaut P2WPKH ou P2TR.
Migration
Migrer d'une adresse P2PKH vers SegWit ou Taproot consiste simplement à envoyer ses bitcoins à une nouvelle adresse. Cela coûte des frais on-chain mais réduit drastiquement les frais futurs (gain ~40-60 % à la dépense).
À retenir
P2PKH est l'ADN visuel de Bitcoin : les adresses qui commencent par 1. Toujours valide et acceptée partout, c'est un format vintage que les nouveaux usages remplacent progressivement par SegWit et Taproot.
Termes lies
- P2SHP2SH (Pay-to-Script-Hash, BIP-16) verrouille les fonds sur le hash d'un script de dépense. Permet des conditions complexes (multisig, timelock) avec des adresses commençant par 3.... Très utilisé pour les multisig avant l'ère SegWit. Il est désormais souvent imbriqué (P2SH-P2WPKH/P2WSH).
- HASH160HASH160 désigne l'application successive de SHA-256 puis RIPEMD-160 sur une donnée. Bitcoin l'utilise pour transformer une clé publique en hash de clé publique, base des adresses P2PKH et P2SH. Le résultat fait 160 bits (20 octets), gage d'adresses compactes. C'est l'un des piliers du modèle d'adressage classique.
- Base58CheckBase58Check est un encodage utilisé pour les adresses Bitcoin legacy (1... ou 3...). Il omet certains caractères ambigus (0, O, I, l) et inclut un checksum. Il rend les adresses plus lisibles et évite les fautes de frappe. Il est progressivement remplacé par Bech32.
Glossaire inspire du dictionnaire de Loic Morel sur Pandul.fr.