Clé publique et clé privée : késako ?

Photo of author

Author name

 

Comment le réseau sait qu’un bitcoin appartient à un tel ou un tel ? En fait un bitcoin n’appartient qu’à une chose : le réseau tout entier. Ce qui vous appartient ou plutôt ce que vous détenez, c’est une clé privée. Cette clé privée étant obligatoire si vous voulez transférer un bitcoin, c’est ce qui vous définit, indirectement, comme le propriétaire de ce bitcoin.

Votre bitcoin fonctionne grâce à deux clés : une clé publique et une clé privée. Vous n’êtes pas obligé de comprendre le fonctionnement pour pouvoir utiliser le bitcoin mais si cela vous intéresse, voici quelques détails techniques.

Une clé privée (ou « private key ») est une chaîne aléatoire de 256 bits (qui peut être représentée sous plusieurs formes, en hexadécimal par exemple elle est composée de 64 caractères de 0 à 9 et de A à F). Généralement on la représente sous sa forme en base58 c’est à dire composée de 51 caractères et commençant toujours par le chiffre 5.

Voici une clé privée telle qu’on la représente généralement (base58) :

5HpHagT65TZzG1PH3CSu63k8DbpvD8s5ip4nEB3kEuEZZRcgSqb

La clé privée est stockée dans votre portefeuille bitcoin et à moins de faire l’effort d’aller la chercher et de l’exporter elle est généralement invisible pour l’utilisateur. Lorsque vous transférez des bitcoins, le réseau va vous demander de prouver que vous avez le droit de le faire et pour cela, il va vous demander de générer une signature que seul le détenteur de la clé privée est capable de faire. A partir de votre clé privée, votre logiciel portefeuille va générer cette signature et la présenter, avec l’ordre de transfert, au réseau.

La clé publique (à ne pas confondre avec une adresse Bitcoin) est une chaîne de 256 bits également, calculée depuis la clé privée en utilisant la courbe Secp256k1. Grâce à la relation mathématique entre la clé privée et la clé publique, il est possible de vérifier une signature créée avec la clé privée. Alors qu’il est facile et rapide de calculer la clé publique lorsqu’on a la clé privée, l’inverse est impossible avec l’informatique actuelle.

Lorsque votre portefeuille effectue une transaction, il inclue la clé publique dans chaque signature. Les noeuds du réseau peuvent ensuite utiliser cette clé publique pour vérifier la signature.

Une adresse bitcoin est un hash SHA-256 d’un hash RIPEMD-160 encodé en base58check d’une clé publique. Un hash est une fonction mathématique permettant de créer un condensé d’une donnée dans un format constant mais irréversible. Si vous avez une clé publique et que vous calculez le hash RIPEMD-160 de cette valeur, vous obtiendrez toujours les mêmes 160 caractères et dans le même ordre. Cependant si vous avez les 160 caractères vous ne pourrez pas retrouver la clé publique. C’est pourquoi quand on a uniquement une adresse bitcoin il est impossible de retrouver la clé publique, mais si on a la clé publique il est très facile de calculer l’adresse bitcoin.

Lorsque vous recevez des bitcoins pour la première fois avec une adresse, le hash RIPEMD-160 de cette adresse est encodé dans la transaction (et stocké de façon permanente dans le blockchain). Personne n’a accès aux clés privée ou publique à part vous. Une fois que vous dépensez un bitcoin, la clé publique est transmise afin de faire valider la transaction et est également stockée de façon permanente dans le blockchain. Après cela, tout le monde peut avoir accès à la clé publique et l’adresse bitcoin, mais la clé privée reste elle toujours secrète.

Si vous perdez votre clé privée, vous perdez vos bitcoins !

Laisser un commentaire