Aller au contenu
buybitcoinsmart

Glossaire / Adresses et clés

Adresse P2PKH

Aussi appelé Pay-to-Public-Key-Hash, Sortie P2PKH.

Qu'est-ce qu'Adresse P2PKH ?
P2PKH est le type de sortie qui verrouille des bitcoins sur un hachage de 20 octets d'une clé publique, si bien que la clé elle-même reste cachée jusqu'au moment où vous les dépensez.

Pay to public key hash est le modèle de script derrière toute adresse qui commence par 1. Son script de verrouillage fait exactement 25 octets et exécute cinq opérations lorsque les bitcoins sont dépensés. Parce que la sortie engage une empreinte plutôt que la clé, une sortie P2PKH non dépensée n'apprend rien à un observateur sur la clé publique qui se trouve derrière.

Comment cela fonctionne

Une sortie P2PKH porte un seul script de verrouillage, toujours de la même forme : OP_DUP OP_HASH160 <hachage de 20 octets> OP_EQUALVERIFY OP_CHECKSIG. Ce hachage de 20 octets est un HASH160, c'est-à-dire RIPEMD-160 appliqué au SHA-256 de la clé publique compressée, et c'est ainsi qu'une clé de 33 octets devient un engagement de 20 octets.

La dépense fournit deux éléments dans le scriptSig de l'entrée : une signature, puis la clé publique. L'exécution se déroule dans l'ordre. OP_DUP copie la clé, OP_HASH160 réduit la copie à 20 octets, OP_EQUALVERIFY la compare à la valeur engagée et abandonne si elles diffèrent, et OP_CHECKSIG vérifie la signature par rapport à la transaction. Les deux vérifications doivent réussir ; l'échec de l'une rend toute la transaction invalide, et pas seulement cette entrée.

Les tailles découlent de la structure. Une sortie P2PKH coûte 34 octets sur la chaîne, composés d'un montant de 8 octets, d'une longueur de 1 octet et du script de 25 octets. Une entrée coûte environ 148 vbytes, parce qu'une signature ECDSA encodée en DER fait de 71 à 72 octets, que la clé compressée en ajoute 33, et que tout cela se trouve hors du witness, où chaque octet est pondéré quatre fois.

Où le voir

Toute adresse commençant par 1 est une adresse P2PKH, ce qui couvre la plupart des bitcoins qui ont circulé avant l'activation de SegWit au bloc 481 824 en août 2017. Les explorateurs de blocs indiquent le type sur chaque sortie, ce qui vous permet de vérifier ce que vous regardez sans rien décoder.

Le détail à retenir est le moment où votre clé publique devient publique. Tant que vous ne dépensez pas, la chaîne ne détient que le hachage. La première dépense publie la clé dans le scriptSig, définitivement. Si vous réutilisez ensuite cette adresse, tout solde ultérieur repose sur une clé déjà visible de tous, ce qui supprime une protection qui ne vous coûtait rien. C'est un problème de confidentialité immédiat, et c'est la raison pour laquelle la longue discussion sur de futures attaques contre la cryptographie sur courbes elliptiques porte sur les adresses réutilisées et déjà dépensées plutôt que sur les adresses neuves.

En pratique : laissez votre portefeuille vous fournir une nouvelle adresse de réception pour chaque paiement, et laissez la monnaie aller elle aussi vers une adresse neuve. Les logiciels modernes font les deux par défaut.

Adresse P2PKH vs P2WPKH

P2PKH et P2WPKH engagent la même chose et coûtent des montants très différents. Tous deux verrouillent des bitcoins sur un HASH160 de 20 octets d'une seule clé publique compressée, et tous deux sont déverrouillés par une signature de cette clé. Ce qui les sépare est l'endroit où sont écrites les données de déverrouillage. P2PKH garde la signature et la clé dans le scriptSig, comptées à quatre unités de poids par octet ; P2WPKH les déplace dans le witness, comptées à une. C'est pourquoi le même secret peut produire une adresse 1 et une adresse bc1q qui ne se ressemblent en rien, détiennent des bitcoins indépendamment, et diffèrent de plus d'un facteur deux par le coût de leur vidage.

À ne pas confondre avec

Questions fréquentes

Une adresse P2PKH est-elle identique à une adresse legacy ?

En pratique oui, avec une nuance. Toute adresse P2PKH commence par 1 et est une adresse legacy, mais on étend souvent le mot legacy aux chaînes Base58 commençant par 3, qui sont des adresses P2SH et non P2PKH.

Quand ma clé publique devient-elle visible sur la chaîne ?

La première fois que vous dépensez depuis l'adresse. Jusque-là, la chaîne ne détient qu'un hachage de 20 octets. Après cette dépense, la clé est publique pour toujours, ce qui explique notamment que les portefeuilles vous fournissent une nouvelle adresse pour chaque paiement.

À lire ensuite

Termes associés

Plus de termes : Adresses et clés

Lire cette page en anglais