Adresses P2PKH (legacy)

Création d'une adresse Bitcoin P2PKH (Pay To Public Key Hash)

Cette partie est facultative, elle est rédigée pour les plus curieux et techniques d'entre vous.

Le format P2PKH est un des plus anciens formats d'adresse Bitcoin (c'est pour ça qu'on le nomme souvent legacy), une adresse P2PKH commence toujours par un 1.

L'adresse publique est créée à partir de la clé publique, nous allons vous expliquer les différentes étapes du processus de création.

Comment créer une adresse bitcoin P2PKH ?

Pour créer une adresse BTC, vous devez utiliser un logiciel de portefeuille sécurisé, open source et qui a fait ses preuves dans la communauté Bitcoin.

Si vous le faites manuellement, il y a un risque que vos fonds soient perdus définitivement en cas d'erreur.

Détails des étapes

Nous vous expliquons comment faire uniquement à des fins éducatives.

Toutes les étapes sont détaillées dans la démo qui va suivre. Elle permet de générer une adresse P2PKH à partir d'une clé publique, le code est conforme aux normes du Bitcoin.

Explication du procédé

Une adresse Bitcoin P2PKH est créée en effectuant de multiples opérations de hachage et d'encodage sur la clé publique :

\begin{equation*} hash160 \Leftrightarrow ripemd160\circ sha256 \end{equation*}

double sha-256, encodage en base58, etc.

Pour les dev non familiés avec les notations mathématiques : ripemd160 "rond" sha256 sert à décrire une composition de fonctions, on effectue d'abbord sha256 puis ensuite ripemd160.

Ou plus simplement : ripemd160(sha256(x)).

Base58

L'encodage en base58 est un dérivé de l'encodage base64, il a été choisi pour éviter les erreurs de saisie d'une adresse bitcoin.

On a éliminé 6 caractères : "I", "l", "O", "0", "/", "+".

64 - 6 = 58, d'où le nom de base58.

Pourquoi avoir enlevé ces 6 caractères ?

Car suivant la police d'affichage utilisée, le "i" majuscule et le "L" minuscule peuvent être confondus (Il), de même pour le zéro et la lettre "O" (0O).

Dans Bitcoin on parle de base58check car il y a d'autres opérations effectuées.

Instructions pour la démo

Nous allons prendre une clé publique d'une transaction legacy (P2PKH) et générer l'adresse Bitcoin associée.

  1. Pour cela, nous allons regarder une ancienne transaction (avant l'arrivée de SegWit) dans un explorateur de blockchain.
  2. Suivez le lien : détails d'une transaction legacy (P2PKH) sur blockchain.com (explorateur)
  3. Dans la partie Inputs, cherchez Sigscript, il y a deux chaines de caractères, prenez la 2e : c'est la clé publique (voir screenshot plus bas).
  4. Revenez sur notre site (Avenue du Coin) puis collez la clé publique dans le générateur de démo
  5. Vous verrez en détails les étapes de création d'une adresse publique
  6. Vous pouvez constater que l'adresse publique correspond bien à celle présente sur l'explorateur (partie Inputs, champ Address )
Texte à copier (clé publique) depuis l'explorateur blockchain.com
Texte à copier (clé publique) depuis l'explorateur blockchain.com

Les instructions sont données à titre éducatif, ne vous servez pas de la démo pour générer et utiliser l'adresse publique dans le but de recevoir des Bitcoins !

Même si le code est valide, nous ne pourrons être tenu responsable en cas d'une mauvaise utilisation de votre part.

Merci d'utiliser un wallet sécurisé pour ça.