Clés privées, clés publiques et adresses dans Bitcoin

Clé publique, clé privée et adresse Bitcoin

 

Dans l’univers des cryptomonnaies, les notions de clé privée, de clé publique et d’adresse reviennent régulièrement. Cependant, elles sont encore assez mal comprises par beaucoup et peuvent prêter à confusion. Nous allons voir dans cet article ce qu’il en est.

Dans Bitcoin, toutes les transactions sont enregistrées sur un grand registre public appelé la blockchain. Les bitcoins sont échangés entre des adresses, données en général sous la forme de chaînes de caractères, comme par exemple 1J5LQL86oA9Q4wT4D91GECbY4caioj5a4p. Une adresse est en quelque sorte un compte appartenant à un utilisateur dont il se sert pour conserver, recevoir et échanger ses bitcoins.

En général, une adresse est liée à une clé privée et à une clé publique. Ces dernières interviennent dans le processus de signature numérique qui permet de dépenser les bitcoins présents à l’adresse correspondante. La clé privée joue le rôle de mot de passe pour l’accès au compte et la clé publique permet de vérifier publiquement la signature sans que la clé privée ne soit dévoilée.

 

Qu’est-ce qu’une clé privée ?

Une clé privée est un nombre aléatoire compris entre 1 et 2256 (soit environ 1.1579 × 1077). Ce qu’on appelle générer une nouvelle clé privée revient simplement à choisir un nombre dans cet intervalle. Le sécurité de ce procédé vient du fait que le nombre de possibilité est tellement grand qu’il est statistiquement impossible de tomber deux fois sur le même clé privée si elle est choisie au hasard.

Les clés privées sont usuellement représentées en base 58 sous la forme d’une chaîne de caractères. Elles commencent toujours par un 5, un K ou un L. Par exemple :

Kzczf8E4oq8MLakhRS479gpZpSe2e6u2xErKHQNqpeFMPEK4irtc

La clé privée permet de dépenser les bitcoins présents à une adresse, et est donc censée rester secrète aux yeux des autres, d’où son nom de clé « privée ». Ainsi, on peut dire que quelqu’un ne possède réellement des bitcoins que lorsqu’il a accès à ses clés privées.

Les clés privées sont généralement conservées dans ce qu’on appelle des portefeuilles ou wallets. Vos clés privées sont enregistrées sur votre appareil, que vous utilisiez un smartphone, un ordinateur ou un portefeuille matériel (hardware wallet) comme le Ledger Nano S. La plupart du temps, elles sont générées par ces portefeuilles de manière déterministe à partir d’une phrase de récupération 12 à 24 mots. Il faut donc conserver précieusement cette phrase qui vous permettra retrouver vos fonds si votre appareil est volé ou cassé.

Si vous avez des bitcoins sur une plateforme d’échange classique comme Coinbase ou Kraken, alors c’est cette dernière qui conserve vos bitcoins à votre place (comme le ferait une banque) et vous n’avez pas accès à vos clés privées.

 

Qu’est-ce qu’une clé publique ?

Une clé publique va toujours de paire avec une clé privée. Dans le cas de Bitcoin, la clé publique est calculée à partir de la clé privée à l’aide d’un algorithme de cryptographie asymétrique appelé ECDSA (Elliptic Curve Digital Signature Algorithm ou algorithme de signature numérique sur courbes elliptiques). L’opération est réalisée à l’aide de la courbe courbe elliptique secp256k1 représentée ci-dessous. Elle se fait à sens unique, de sorte qu’il est impossible de retrouver la clé privée à l’aide de la publique.

 

 

La paire clé privée / clé publique intervient dans la signature des transactions. L’utilisateur signe sa transaction avec sa clé privée et les autres acteurs du réseau vérifient cette signature à l’aide de la clé publique. Si la clé publique correspond à la signature, la transaction est validée et ajoutée à la chaîne de blocs. Sinon elle est refusée par le réseau. Dans ce processus, la clé privée n’est donc pas dévoilée et seule la clé publique est connue de tous, d’où son nom de clé « publique ».

Les clés publiques sont gérées de manière automatisée par les logiciels qui construisent les transactions. L’utilisateur ne voit pas sa clé publique en général. Elles sont usuellement représentées sous forme hexadécimale. Par exemple, la clé publique associée à la clé privée donnée plus haut est :

02f5e25778dcee9539b25799831277eb8e731ffcbdcd9e68f79f8ca43c570b94ba

Notez aussi que, bien que ces clés soient publiques, elles ne sont en général révélées qu’au moment de la transaction. L’information fournie publiquement par l’utilisateur et qui lui permet de recevoir des fonds est l’adresse.

 

Les adresses simples

Une adresse simple est calculée à partir de la clé publique à l’aide de fonctions de hachage. La clé publique est d’abord hachée par la fonction SHA-256, puis le résultat est haché par la fonction RIPEMD-160. Ou pour le dire sous forme plus mathématique, si K est la clé publique, alors l’adresse A est :

A = RIPEMD160( SHA256( K ) )

Les deux fonctions de hachage sont des fonctions irréversibles et il est donc impossible de retrouver la clé publique à partir de l’adresse. Tout comme la clé privée, l’adresse est usuellement représentée à l’aide de la base 58 sous forme de chaîne de caractères. Elle commence toujours par un 1. L’adresse correspondant à notre exemple paire de clés ci-dessus est :

1KMnRF6NbRnLg8KkqBGorSyLGM14BVR2LS

Ainsi, l’adresse est calculée à partir de la clé publique, qui est elle-même calculée à partir de la clé privée. Ces opérations sont à sens unique, si bien que personne ne peut retrouver votre clé privée (ni même votre clé publique si vous n’avez pas réalisé de transaction) à partir de votre adresse !

 

 

Il faut également noter que les portefeuilles les plus récents génèrent systématiquement de nouvelles clés et de nouvelles adresses à chaque paiement. Cela permet d’améliorer la confidentialité des transactions qui sont inscrites sur la blockchain. Un utilisateur utilise donc généralement plusieurs dizaines d’adresses.

 

D’autres types d’adresse

Ici on a parlé des adresses simples traditionnelles. Dans le milieu, elles sont souvent appelées adresses Pay-to-Public-Key-Hash (P2PKH) car elles représentent chacune le hachage d’une clé publique (public key). Il existe un autre type d’adresse appelé Pay-to-Script-Hash (P2SH), utilisé pour les adresses issues de scripts complexes. Ces dernières commencent par un 3, comme par exemple :

3KspPat3qWB1eFrxSLqCv6e4ozuxB9Bkya

Les adresses P2SH sont notamment utilisées pour les comptes joints (adresses multisignatures).

Avec SegWit, d’autres types d’adresses ont vu le jour : le Pay-to-Witness-Public-Key-Hash et le Pay-to-Witness-Script-Hash. Ces nouveaux types jouent à peu près le même rôle que les deux types précédents. Ces adresses ont la particularité d’être représentées en base 32 et de commencer par un bc1, comme par exemple :

bc1qe9s87yw62zu5qe7873x3zh3ahhls7677k4y5jt

 

Le cold storage

Puisque le calcul des clés privées et des adresses est entièrement déterminé, il est possible de les générer hors-ligne. Il n’y ainsi pas besoin de se connecter au réseau pour créer un compte. Cette propriété est exploitée à des fins de sécurité : générer les clés et les adresses sur un appareil non connecté à Internet permet de diminuer drastiquement les risques de piratages. C’est ce qu’on appelle le stockage à froid ou cold storage et qui est notamment utilisé par les portefeuilles matériels.

On peut également réaliser un stockage à froid en générant des clés privées sur un ordinateur hors-ligne et les écrivant sur une feuille de papier : c’est ce qu’on appelle un portefeuille papier (paper wallet).

 


Si vous avez des questions sur les crypto-monnaies, le Bitcoin ou la blockchain vous trouverez peut-être une réponse dans notre Foire Aux Questions.

 

Avis des lecteurs

[Total : 0    Moyenne : 0/5]


Vous avez aimé ce tutoriel ❤ ? Alors vous aimerez également :

Comment acheter des crypto-monnaies ?Sur quelles crypto-monnaies investir ?Comment acheter des bitcoins ?

Ludovic

Ludovic est fasciné par les cryptomonnaies et par l'impact qu'elles pourraient avoir sur le monde. De formation scientifique, il s'attache à décrire leur fonctionnement technique de la façon la plus fidèle possible.

facebook-cryptoast twitter-soothsayerdata


Poster un Commentaire

avatar

Remonter en haut de la page