Fonctionnement 11 min de lecture

Clé privée et clé publique Bitcoin : comprendre la cryptographie asymétrique

Comment fonctionnent les clés privées et publiques Bitcoin ? Cryptographie asymétrique, génération, signature de transaction et sécurité expliquées simplement.

Clé privée et clé publique Bitcoin : comprendre la cryptographie asymétrique

Quand tu envoies des bitcoins, tu ne déplaces pas un fichier d’un portefeuille à un autre. Tu signes un message cryptographique qui prouve que tu es le propriétaire des fonds et que tu autorises leur transfert. Ce système repose sur deux clés : une clé publique que tout le monde peut voir, et une clé privée que toi seul possèdes.

Cette cryptographie asymétrique est la base de la sécurité de Bitcoin. Sans elle, impossible de garantir qu’une transaction vient bien de son expéditeur. Ce guide explique comment ces clés fonctionnent, comment elles sont générées et pourquoi elles rendent Bitcoin inviolable.

Cryptographie asymétrique : le principe de base

La cryptographie asymétrique utilise une paire de clés liées mathématiquement : une clé publique et une clé privée. Tu peux partager ta clé publique librement - elle sert à recevoir des fonds. La clé privée reste secrète et sert à prouver que tu es le propriétaire des bitcoins associés à cette clé publique.

Le génie du système : il est facile de dériver une clé publique à partir d’une clé privée, mais mathématiquement impossible de faire l’inverse. Tu peux calculer une clé publique en quelques millisecondes. Remonter à la clé privée à partir de la clé publique prendrait des milliards d’années avec tous les ordinateurs du monde.

Un coffre-fort à sens unique

Imagine un coffre dont la serrure a deux parties. La clé publique est la boîte aux lettres : n’importe qui peut y déposer de l’argent. La clé privée est la seule clé qui ouvre le coffre pour récupérer les fonds. Perdre cette clé, c’est perdre l’accès au coffre pour toujours.

Bitcoin utilise cette logique. Quand quelqu’un t’envoie des BTC, il les envoie à ton adresse Bitcoin - qui dérive de ta clé publique. Pour dépenser ces BTC plus tard, tu dois signer une transaction avec ta clé privée. Cette signature prouve au réseau que tu détiens bien la clé privée sans jamais la révéler.

IMPORTANT

La clé privée Bitcoin est un nombre de 256 bits, soit 2^256 combinaisons possibles. C’est un nombre avec 77 chiffres - plus que le nombre d’atomes dans l’univers observable (environ 10^80). Trouver une clé privée au hasard est statistiquement impossible.

Anatomie d’une clé privée Bitcoin

Une clé privée Bitcoin est un nombre aléatoire de 256 bits. C’est ce nombre qui te donne le contrôle total sur tes bitcoins. Si quelqu’un obtient ta clé privée, il peut dépenser tes fonds instantanément et de façon irréversible.

Format hexadécimal

Les clés privées sont généralement affichées en hexadécimal (base 16). Un exemple de clé privée :

E9873D79C6D87DC0FB6A5778633389F4453213303DA61F20BD67FC233AA33262

64 caractères hexadécimaux, soit 256 bits. Cette chaîne contient toute la puissance de contrôle sur une adresse Bitcoin.

Format WIF (Wallet Import Format)

Pour faciliter la manipulation humaine, les clés privées sont souvent encodées au format WIF. Ça donne une chaîne qui commence par un 5, un K ou un L :

5Kb8kLf9zgWQnogidDA76MzPL6TsZZY36hWXMssSzNydYXYB9KF

Le format WIF inclut un checksum (somme de contrôle) qui détecte les erreurs de frappe. C’est ce format que tu utilises quand tu importes une clé privée dans un portefeuille logiciel comme Electrum.

WARNING

Ne jamais saisir une clé privée sur un site web ou une application non vérifiée. Les arnaques qui demandent “d’importer votre wallet” pour un faux airdrop ou un support technique sont des tentatives de vol de clés privées.

De la clé privée à l’adresse Bitcoin

La génération d’une adresse Bitcoin suit une chaîne de transformations cryptographiques. Chaque étape utilise des algorithmes éprouvés et standardisés.

Étape 1 : générer la clé publique avec ECDSA

Bitcoin utilise l’algorithme ECDSA (Elliptic Curve Digital Signature Algorithm) avec la courbe secp256k1. À partir de ta clé privée, l’algorithme effectue une multiplication sur cette courbe elliptique pour obtenir une clé publique.

La clé publique est un point sur la courbe, représenté par deux coordonnées x et y de 256 bits chacune. Au format non compressé, ça donne 512 bits (64 octets). Au format compressé, seulement 33 octets - le protocole stocke uniquement la coordonnée x et un bit indiquant si y est pair ou impair.

Étape 2 : hacher avec SHA-256 et RIPEMD-160

La clé publique est ensuite hachée deux fois. D’abord avec SHA-256, puis avec RIPEMD-160. Cette double opération produit un hash de 160 bits (20 octets). Pourquoi deux algorithmes ? Pour renforcer la sécurité : si l’un des deux était cassé un jour, l’autre protégerait encore le système.

Étape 3 : encoder en Base58Check

Le hash de 160 bits est encodé en Base58Check - un format lisible qui évite les caractères ambigus (0/O, l/I). Un préfixe identifie le type d’adresse (1 pour P2PKH, 3 pour P2SH, bc1 pour SegWit natif), et un checksum détecte les erreurs de frappe.

Résultat : une adresse Bitcoin classique qui ressemble à ça :

1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

C’est l’adresse publique du premier bloc Bitcoin, miné par Satoshi Nakamoto en janvier 2009.

Comment signer une transaction avec sa clé privée

Quand tu veux envoyer des bitcoins, ton portefeuille crée une transaction qui dit : “Je transfère X BTC de cette adresse à cette adresse.” Cette transaction doit être signée avec ta clé privée pour prouver que tu es bien le propriétaire des fonds.

Le processus de signature ECDSA

La signature utilise l’algorithme ECDSA. Voici comment ça fonctionne en pratique :

  1. Création de la transaction brute. Ton wallet construit un message qui contient les inputs (d’où viennent les BTC), les outputs (où ils vont) et les frais.

  2. Hachage de la transaction. Ce message est haché avec SHA-256. Ce hash sert de base à la signature.

  3. Signature avec la clé privée. L’algorithme ECDSA combine ta clé privée avec le hash de la transaction et un nombre aléatoire (appelé nonce) pour générer deux valeurs : r et s. C’est ta signature.

  4. Ajout de la signature à la transaction. Le portefeuille insère la signature et ta clé publique dans la transaction. Ça permet à n’importe quel noeud du réseau de vérifier que la signature est valide sans jamais connaître ta clé privée.

TIP

La signature ECDSA produit deux nombres (r, s) de 256 bits chacun. Avec l’en-tête et le type de signature, ça fait environ 71-72 octets. Les signatures Schnorr (activées avec Taproot en 2021) sont plus légères : seulement 64 octets.

Vérification de la signature par le réseau

Quand tu diffuses ta transaction, chaque noeud Bitcoin vérifie la signature. Le processus est simple :

  • Le noeud récupère ta clé publique incluse dans la transaction
  • Il applique un algorithme mathématique qui combine la clé publique, la signature et le hash de la transaction
  • Si le résultat correspond, la signature est valide. Sinon, la transaction est rejetée

Cette vérification prend une fraction de seconde. Elle garantit que seul le détenteur de la clé privée a pu créer cette signature - sans que la clé privée n’ait jamais été révélée.

Clé privée, seed phrase et dérivation HD

Les portefeuilles modernes ne génèrent plus une seule paire de clés. Ils utilisent un système de dérivation hiérarchique déterministe (HD, pour Hierarchical Deterministic) défini par le standard BIP-32. Ce système permet de créer des millions d’adresses à partir d’une seule seed phrase.

La seed phrase : 12 ou 24 mots

Quand tu initialises un wallet comme Ledger, Trezor ou Electrum, il te donne une liste de 12 ou 24 mots. Ces mots encodent un nombre de 128 ou 256 bits - ta seed (graine). C’est cette seed qui génère toutes tes clés privées.

Exemple de seed phrase (ne jamais utiliser celle-ci, c’est un exemple public) :

witch collapse practice feed shame open despair creek road again ice least

À partir de cette seed, le portefeuille calcule une “master key” (clé maîtresse), puis dérive une arborescence de clés enfants selon un chemin standardisé. Chaque dérivation produit une nouvelle paire de clés publique/privée.

Chemin de dérivation BIP-44

Le standard BIP-44 définit un format de dérivation qui sépare les clés par crypto, par compte et par utilisation. Le chemin ressemble à ça :

m / 44' / 0' / 0' / 0 / 0

Changer le dernier chiffre génère une nouvelle adresse. Ton wallet peut créer des milliards d’adresses sans jamais réutiliser la même. Ça améliore ta confidentialité : chaque transaction peut utiliser une adresse unique.

NOTE

Avec une seed phrase de 24 mots (256 bits), le nombre de combinaisons possibles est de 2^256, soit environ 10^77. C’est plus que le nombre d’atomes dans l’univers observable. Même avec tous les ordinateurs du monde, retrouver une seed au hasard prendrait des milliards d’années.

Pourquoi la seed phrase remplace les clés privées

Avant les wallets HD, chaque adresse Bitcoin avait sa propre clé privée. Si tu créais 100 adresses, tu devais sauvegarder 100 clés privées. Perdre une seule clé = perdre les fonds de cette adresse.

Avec une seed phrase, tu sauvegardes 12 ou 24 mots et tu récupères toutes tes adresses en cas de perte ou de casse de ton wallet. C’est pour ça que protéger sa seed phrase est devenu l’enjeu numéro un de la sécurité Bitcoin.

Taproot et les signatures Schnorr

En novembre 2021, Bitcoin a activé Taproot - la plus grande mise à jour du protocole depuis SegWit en 2017. Taproot introduit les signatures Schnorr, un algorithme qui remplace progressivement ECDSA.

Pourquoi Schnorr est supérieur à ECDSA

Les signatures Schnorr présentent plusieurs avantages techniques :

Format des clés publiques avec Taproot

Taproot modifie aussi le format des adresses. Les adresses Taproot commencent par bc1p (contre bc1q pour les adresses SegWit classiques). Elles utilisent des clés publiques au format x-only : seule la coordonnée x du point sur la courbe elliptique est stockée, réduisant encore la taille des données.

Exemple d’adresse Taproot :

bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr

Ces adresses supportent les scripts avancés (via MAST) tout en gardant une empreinte minimale sur la blockchain.

Sécurité des clés : ce qui peut mal tourner

La sécurité de tes bitcoins repose entièrement sur la protection de ta clé privée ou de ta seed phrase. Voici les erreurs les plus courantes et comment les éviter.

Stockage numérique : un risque permanent

Stocker ta seed phrase dans un fichier texte, une photo sur ton téléphone ou dans un cloud (Google Drive, Dropbox, iCloud) est une erreur. Ces supports sont vulnérables aux malwares, aux piratages de comptes et aux fuites de données.

En 2023, une analyse de Github a révélé des milliers de seeds phrases stockées en clair dans des dépôts publics. Résultat : des portefeuilles vidés en quelques minutes par des bots qui scannent automatiquement les dépôts à la recherche de clés privées.

Réutilisation d’adresses : un problème de confidentialité

Réutiliser la même adresse Bitcoin pour recevoir plusieurs paiements nuit à ta vie privée. Toutes les transactions liées à cette adresse deviennent publiques et traçables. N’importe qui peut voir ton solde et l’historique de tes paiements.

Avec un wallet HD moderne, tu n’as aucune raison de réutiliser une adresse. Le wallet génère automatiquement une nouvelle adresse pour chaque réception. Utilise cette fonctionnalité.

Partage de la clé publique : sans danger

Ta clé publique (ou l’adresse qui en dérive) peut être partagée sans risque. C’est fait pour ça. Publier ton adresse Bitcoin sur Twitter, l’afficher sur ton site web ou l’envoyer par email ne compromet pas la sécurité de tes fonds.

La clé privée, elle, ne doit jamais être partagée. Jamais. Aucun support technique légitime ne te demandera ta clé privée ou ta seed phrase. Si quelqu’un te la demande, c’est une arnaque.

CAUTION

Les arnaques les plus courantes : faux supports techniques qui demandent ta seed “pour vérifier ton wallet”, sites web qui imitent MetaMask ou Ledger Live et demandent ta seed “pour synchroniser”, messages privés sur Twitter/Discord proposant de “résoudre un problème” en échange de ta seed phrase.

Mathématiques derrière les courbes elliptiques

Les courbes elliptiques sont au coeur de la cryptographie Bitcoin. Pas besoin d’être mathématicien pour utiliser Bitcoin, mais comprendre le principe aide à saisir pourquoi le système est sécurisé.

La courbe secp256k1

Bitcoin utilise une courbe elliptique spécifique appelée secp256k1. Son équation :

y² = x³ + 7

Cette courbe possède des propriétés mathématiques particulières. Chaque point sur la courbe peut être additionné à un autre point selon des règles précises. Et cette addition est irréversible : si tu connais le point de départ A et le résultat C, tu ne peux pas facilement retrouver combien de fois tu as “ajouté” A pour arriver à C.

Multiplication scalaire : facile dans un sens, impossible dans l’autre

La génération d’une clé publique revient à multiplier un point de base G par ta clé privée k. Le résultat est un autre point sur la courbe, ta clé publique K :

K = k × G

Cette opération prend quelques millisecondes. Mais faire l’inverse - retrouver k si tu connais K et G - est le problème du logarithme discret. Avec les ordinateurs actuels, ça prendrait des milliards d’années.

NOTE

Le point de base G est une constante définie dans le standard secp256k1. Tous les portefeuilles Bitcoin utilisent le même point G, ce qui garantit que deux portefeuilles qui génèrent la même clé privée produiront la même clé publique.

Différence entre adresse et clé publique

On confond souvent adresse Bitcoin et clé publique. Elles sont liées, mais pas identiques.

Adresse : une version hachée de la clé publique

Une adresse Bitcoin est le résultat du double hachage (SHA-256 puis RIPEMD-160) de la clé publique, encodé en Base58Check ou Bech32. C’est plus court et plus pratique à manipuler qu’une clé publique brute.

Exemple de clé publique compressée (33 octets en hexadécimal) :

02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737

Adresse Bitcoin correspondante (format P2PKH) :

1BoatSLRHtKNngkdXEeobR76b53LETtpyT

L’adresse est plus courte, contient un checksum contre les erreurs de frappe et cache la clé publique jusqu’à la première dépense.

Exposition de la clé publique à la première dépense

Quand tu reçois des bitcoins, seule ton adresse est visible sur la blockchain. Ta clé publique reste cachée. Mais dès que tu dépenses des fonds depuis cette adresse, tu dois révéler ta clé publique dans la transaction pour que le réseau vérifie ta signature.

C’est pour ça qu’il est recommandé de ne jamais réutiliser une adresse après avoir dépensé ses fonds. Une fois la clé publique exposée, elle reste visible à jamais sur la blockchain.

Portefeuilles custodial vs non-custodial

La différence entre ces deux types de portefeuilles se résume à une question : qui contrôle les clés privées ?

Custodial : la plateforme garde tes clés

Sur une plateforme comme Binance, Coinbase ou Coinhouse, tu ne possèdes pas directement tes clés privées. La plateforme les stocke pour toi. Quand tu veux envoyer des BTC, tu fais une demande à la plateforme, qui signe la transaction en ton nom.

Avantage : c’est simple. Si tu oublies ton mot de passe, le support peut réinitialiser ton compte. Inconvénient : tu dépends de la plateforme. Si elle se fait hacker, fait faillite ou bloque ton compte, tu perds l’accès à tes fonds.

Non-custodial : tu contrôles tes clés

Avec un wallet non-custodial comme Electrum, Ledger ou Trezor, tu es le seul à posséder tes clés privées. Personne d’autre ne peut accéder à tes fonds, même pas le fabricant du wallet.

Inconvénient : si tu perds ta seed phrase, tes bitcoins sont perdus pour toujours. Personne ne peut les récupérer. Avantage : tu as un contrôle total. Tes fonds ne dépendent d’aucune entreprise, d’aucun gouvernement.

TIP

La règle en crypto : “Not your keys, not your coins.” Si tu ne contrôles pas tes clés privées, tu ne possèdes pas réellement tes bitcoins. Pour un montant significatif, utilise toujours un wallet non-custodial avec une seed phrase sauvegardée sur un support physique.

FAQ : clés privées et clés publiques Bitcoin

Peut-on retrouver une clé privée à partir d’une adresse Bitcoin ?

Non. L’adresse est le résultat d’un double hachage de la clé publique. Les fonctions de hachage sont irréversibles : impossible de remonter à la clé publique, encore moins à la clé privée. Avec les ordinateurs actuels, ça prendrait des milliards d’années.

Que se passe-t-il si deux personnes génèrent la même clé privée par hasard ?

La probabilité est tellement faible qu’on peut la considérer comme nulle. Une clé privée Bitcoin est un nombre de 256 bits, soit 2^256 combinaisons - environ 10^77 possibilités. Pour comparaison, l’univers observable contient environ 10^80 atomes. Trouver la même clé par hasard est statistiquement impossible.

Combien de clés privées peut-on générer à partir d’une seed phrase ?

Un wallet HD peut dériver 2^31 comptes, chaque compte pouvant générer 2^31 adresses externes et 2^31 adresses internes. En pratique, c’est illimité : des milliards d’adresses à partir de 12 ou 24 mots.

Les signatures Schnorr remplacent-elles ECDSA complètement ?

Non. ECDSA reste supporté et utilisé par la majorité des transactions. Taproot introduit Schnorr comme option, mais les deux algorithmes coexistent. Les wallets modernes choisissent automatiquement le format le plus adapté selon le type de transaction.

Peut-on changer sa clé privée après avoir reçu des bitcoins ?

Non. Une clé privée est liée définitivement à une adresse. Si tu veux “changer de clé”, tu dois créer une nouvelle adresse avec une nouvelle paire de clés, puis transférer tes fonds de l’ancienne adresse vers la nouvelle via une transaction classique.

Pages liees

Cryptus

Cryptus

Fondateur de CryptoSous. Investisseur crypto depuis 2017, il écrit des guides pratiques depuis 2019.

Cet article est publie a titre informatif. Il ne constitue pas un conseil en investissement. Les cryptomonnaies sont des actifs volatils. Faites vos propres recherches avant toute decision financiere.