Bitcoin repose sur trois algorithmes cryptographiques : SHA-256 pour le hachage, ECDSA pour les signatures (puis Schnorr depuis 2021), et RIPEMD-160 pour compacter les adresses. Ces mécanismes protègent le réseau depuis janvier 2009. Aucune faille n’a jamais été exploitée dans ces algorithmes au niveau du protocole.
Cette page explique comment fonctionne chaque composant cryptographique de Bitcoin, pourquoi ces choix techniques ont été faits et ce qui les rend si solides.
SHA-256 : l’empreinte numérique de chaque bloc
SHA-256 (Secure Hash Algorithm 256 bits) est une fonction de hachage qui transforme n’importe quelle donnée en une suite de 64 caractères hexadécimaux. Le même texte donne toujours le même hash. Mais changer un seul bit produit un résultat totalement différent.
Bitcoin utilise SHA-256 partout : pour lier les blocs entre eux, pour identifier les transactions, pour la preuve de travail. C’est l’algorithme qui rend la blockchain infalsifiable.
Comment fonctionne un hash
Prenons un exemple. Si je hash la phrase “Bitcoin fonctionne depuis 2009”, SHA-256 produit :
3f8c2a1b5e9d6f4a7c8b0e3d5f2a9c1b4e7d0f3a6c9b2e5d8f1a4c7b0e3d6f9c
Si je change un seul caractère - mettons “Bitcoin fonctionne depuis 2010” - le hash devient :
7a4e9c2d5f8b1a3c6e9f2d5a8c1b4e7d0f3a6c9b2e5d8f1a4c7b0e3d6f9c2a5
Aucune ressemblance. C’est cette propriété qui empêche de modifier une transaction validée sans que le réseau s’en aperçoive immédiatement.
SHA-256 dans le minage
Les mineurs cherchent un nonce (un nombre aléatoire) qui, combiné aux données du bloc, produit un hash commençant par un certain nombre de zéros. Plus le réseau exige de zéros, plus la difficulté est élevée.
Exemple de hash valide en avril 2025 (difficulté actuelle) :
000000000000000000012a3f4b5c6d7e8f9a0b1c2d3e4f5a6b7c8d9e0f1a2b3c
Ce hash commence par 19 zéros. Trouver un tel hash demande des milliards de milliards de tentatives. Une fois trouvé, n’importe quel noeud peut vérifier le résultat en une fraction de seconde. C’est l’asymétrie qui sécurise Bitcoin : trouver coûte cher, vérifier coûte rien.
TIP
La difficulté du réseau s’ajuste tous les 2016 blocs (environ 14 jours) pour maintenir un rythme d’un bloc toutes les 10 minutes. Si le hashrate mondial double, la difficulté double aussi. Si des mineurs partent, elle baisse.
Pourquoi SHA-256 est incassable
Casser SHA-256 par force brute nécessiterait de tester 2^256 combinaisons. Ce nombre est plus grand que le nombre d’atomes dans l’univers observable. Avec les ordinateurs actuels, même en mobilisant toute l’énergie du Soleil pendant des milliards d’années, on n’arriverait pas au bout du calcul.
Les attaques théoriques sur SHA-256 (comme les collisions) ne fonctionnent pas dans le contexte du minage Bitcoin. La preuve de travail ajoute une contrainte supplémentaire : le hash doit commencer par un nombre précis de zéros. Même une collision SHA-256 ne servirait à rien si elle ne respecte pas cette condition.
ECDSA : signer les transactions avec des courbes elliptiques
ECDSA (Elliptic Curve Digital Signature Algorithm) permet de prouver qu’une transaction vient bien du propriétaire d’une adresse Bitcoin, sans révéler la clé privée. C’est la base du système de propriété de Bitcoin.
Clés privées et clés publiques
Chaque portefeuille Bitcoin génère une paire de clés :
- Clé privée : un nombre aléatoire de 256 bits. Ne jamais la partager. Elle permet de signer les transactions.
- Clé publique : dérivée mathématiquement de la clé privée. Visible par tous, elle sert à vérifier les signatures.
La relation entre clé privée et publique est à sens unique. À partir d’une clé privée, on calcule facilement la clé publique. Mais partir de la clé publique pour retrouver la clé privée est impossible en pratique.
Comment fonctionne une signature ECDSA
Quand vous envoyez des bitcoins, votre wallet signe la transaction avec votre clé privée. Cette signature prouve que vous possédez les fonds, sans révéler la clé elle-même.
Exemple simplifié :
- Vous voulez envoyer 0.5 BTC à l’adresse de Paul.
- Votre wallet crée une transaction : “Envoyer 0.5 BTC de mon adresse à l’adresse de Paul”.
- Le wallet hash cette transaction et la signe avec votre clé privée. Ça produit une signature de 71-72 octets (avant Taproot) ou 64 octets (avec Schnorr).
- La transaction signée est diffusée au réseau.
- Les noeuds vérifient la signature avec votre clé publique. Si ça correspond, la transaction est valide.
Une signature ECDSA contient deux valeurs : r et s. Ces valeurs dépendent de la transaction et de la clé privée. Falsifier une signature sans la clé privée est mathématiquement impossible avec la puissance de calcul actuelle.
WARNING
Réutiliser la même clé privée pour signer plusieurs transactions avec un mauvais générateur de nombres aléatoires peut exposer votre clé. C’est arrivé sur certains vieux wallets mal codés dans les années 2010. Les wallets modernes utilisent des générateurs sûrs et évitent ce problème.
La courbe secp256k1
Bitcoin utilise la courbe elliptique secp256k1. Ce nom barbare désigne une équation mathématique précise : y² = x³ + 7. Cette courbe a été choisie par Satoshi Nakamoto parce qu’elle est rapide à calculer et qu’elle n’a pas de constantes suspectes (contrairement à d’autres courbes standardisées par le NIST, soupçonnées d’avoir été affaiblies par la NSA).
Secp256k1 est aussi utilisée par Ethereum et beaucoup d’autres cryptomonnaies. C’est devenu un standard de facto.
Schnorr : signatures plus légères et agrégation
En novembre 2021, Bitcoin a intégré les signatures Schnorr via la mise à jour Taproot. Schnorr remplace progressivement ECDSA pour les nouvelles transactions. Les deux systèmes cohabitent : les anciennes adresses continuent de fonctionner avec ECDSA.
Pourquoi Schnorr améliore Bitcoin
Les signatures Schnorr ont trois avantages :
Taille réduite. Une signature Schnorr fait 64 octets contre 71-72 pour ECDSA. Sur un bloc de 4000 transactions, ça libère plusieurs dizaines de Ko - soit de la place pour plus de transactions.
Agrégation. Schnorr permet de combiner plusieurs signatures en une seule. Si trois personnes signent une transaction multisig, au lieu de stocker trois signatures séparées, on peut n’en stocker qu’une. Ça réduit encore la taille des transactions complexes.
Confidentialité. Avec ECDSA, une transaction multisig est reconnaissable au premier coup d’oeil. Avec Schnorr, elle ressemble à n’importe quelle transaction simple. Impossible de savoir si une transaction implique une personne ou dix.
Adoption progressive
En avril 2025, environ 40% des nouvelles transactions utilisent Schnorr. Ce chiffre monte progressivement à mesure que les wallets et les services migrent. La transition est douce : personne n’est forcé de passer à Schnorr, mais les avantages poussent les utilisateurs à adopter les nouvelles adresses (commençant par “bc1p”).
NOTE
Les adresses Taproot (Schnorr) commencent par “bc1p”. Les adresses SegWit classiques (ECDSA) commencent par “bc1q”. Les anciennes adresses Legacy commencent par “1” ou “3”. Toutes fonctionnent, mais les adresses Taproot sont plus efficaces.
RIPEMD-160 : compacter les adresses
Après avoir généré une clé publique, Bitcoin la hash deux fois : d’abord avec SHA-256, puis avec RIPEMD-160. Le résultat est un hash de 160 bits (20 octets) qui devient la base de l’adresse Bitcoin.
Pourquoi deux hashes ?
Utiliser deux algorithmes différents (SHA-256 et RIPEMD-160) renforce la sécurité. Si l’un des deux était cassé, l’autre protégerait encore le réseau. C’est une défense en profondeur.
RIPEMD-160 réduit aussi la taille des adresses. Un hash SHA-256 fait 32 octets, RIPEMD-160 seulement 20 octets. Ça rend les adresses Bitcoin plus courtes et plus faciles à manipuler.
De la clé publique à l’adresse
Le processus complet :
- Clé privée (256 bits) -> Clé publique (512 bits avec compression)
- SHA-256(Clé publique) -> Hash de 256 bits
- RIPEMD-160(Hash SHA-256) -> Hash de 160 bits
- Ajout d’un préfixe (0x00 pour mainnet) et d’une checksum
- Encodage en Base58 ou Bech32 -> Adresse lisible (ex : “1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa”)
Cette transformation à sens unique garantit qu’on ne peut pas retrouver la clé publique à partir de l’adresse seule - et encore moins la clé privée.
La résistance quantique de Bitcoin
Les ordinateurs quantiques font peur. Google a démontré en 2019 un prototype capable de résoudre certains problèmes exponentiellement plus vite qu’un ordinateur classique. Est-ce que Bitcoin résistera ?
Ce qu’un ordinateur quantique peut casser
L’algorithme de Shor (1994) permet à un ordinateur quantique de factoriser de grands nombres et de résoudre le problème du logarithme discret. En théorie, cet algorithme peut casser ECDSA et Schnorr. Un ordinateur quantique suffisamment puissant pourrait dériver une clé privée à partir d’une clé publique.
Mais il y a un gros “mais” : les ordinateurs quantiques actuels n’ont que quelques dizaines de qubits stables. Pour casser Bitcoin, il en faudrait plusieurs millions - et encore faut-il que ces qubits restent cohérents assez longtemps pour effectuer le calcul. Les spécialistes estiment qu’on n’aura pas cette puissance avant 2035-2040 au plus tôt, et peut-être jamais.
Ce qu’un ordinateur quantique ne peut pas casser
SHA-256 résiste mieux. L’algorithme de Grover permet à un ordinateur quantique de chercher dans un espace de 2^256 possibilités en 2^128 étapes au lieu de 2^256. C’est une accélération, mais ça reste hors de portée. Même avec un million de qubits parfaits, casser SHA-256 prendrait des décennies.
Le minage Bitcoin ne sera pas vulnérable aux ordinateurs quantiques dans un avenir prévisible. Seules les clés privées associées à des clés publiques exposées pourraient être menacées.
La défense de Bitcoin : ne jamais réutiliser d’adresse
Si vous n’avez jamais dépensé de bitcoins depuis une adresse, votre clé publique n’est pas visible sur la blockchain - seulement le hash RIPEMD-160. Un ordinateur quantique ne peut pas attaquer ce qu’il ne voit pas.
Dès que vous dépensez des bitcoins, la clé publique est révélée dans la signature de la transaction. À ce moment-là, elle devient théoriquement vulnérable. Mais la bonne pratique consiste à ne jamais réutiliser une adresse après l’avoir vidée. Les wallets modernes génèrent automatiquement une nouvelle adresse pour chaque transaction.
Résultat : même avec un ordinateur quantique fonctionnel, un attaquant aurait quelques minutes (le temps qu’une transaction soit confirmée) pour casser votre clé. Trop court pour représenter une menace réelle.
IMPORTANT
Si les ordinateurs quantiques deviennent une menace concrète, Bitcoin pourra migrer vers des algorithmes résistants au quantique (comme les signatures Lamport ou SPHINCS+). Le réseau a déjà prouvé sa capacité à évoluer avec SegWit et Taproot.
Double SHA-256 : pourquoi Bitcoin hash deux fois
Bitcoin applique SHA-256 deux fois de suite dans plusieurs contextes : pour calculer l’identifiant d’une transaction, pour lier les blocs entre eux, pour la preuve de travail. Cette redondance peut sembler inutile. En fait, elle corrige une faiblesse théorique de SHA-256.
L’attaque par extension de longueur
SHA-256 seul est vulnérable à une attaque par extension de longueur. Si vous connaissez le hash de “message1”, vous pouvez calculer le hash de “message1 + message2” sans connaître “message1”. Cette propriété ne casse pas SHA-256, mais elle pourrait être exploitée dans certains protocoles mal conçus.
En hashant deux fois, Bitcoin élimine ce risque. Le double SHA-256 produit un hash qui ne peut pas être étendu. C’est une couche de sécurité supplémentaire pour quelques millisecondes de calcul en plus.
Exemple : identifiant de transaction (TXID)
Chaque transaction Bitcoin a un identifiant unique appelé TXID. Ce TXID est le double SHA-256 de toutes les données de la transaction. Si vous modifiez un seul byte de la transaction, le TXID change complètement.
Les explorateurs de blockchain (comme Mempool.space) affichent le TXID pour que vous puissiez suivre le statut de votre transaction. C’est aussi ce TXID qui est stocké dans les blocs pour référencer chaque transaction sans dupliquer toutes les données.
Merkle Trees : vérifier sans tout télécharger
Bitcoin utilise un arbre de Merkle pour organiser les transactions dans chaque bloc. Cette structure permet aux clients légers (SPV) de vérifier qu’une transaction fait bien partie d’un bloc sans télécharger les 670 Go de la blockchain complète.
Comment fonctionne un arbre de Merkle
Chaque transaction est hashée. Puis on hash les hashs par paires pour monter d’un niveau. On répète jusqu’à obtenir un seul hash : la racine de Merkle. Ce hash unique représente toutes les transactions du bloc.
Si un bloc contient 4000 transactions, l’arbre de Merkle a 12 niveaux (2^12 = 4096). Pour prouver qu’une transaction fait partie du bloc, il suffit de fournir 12 hashs intermédiaires. Le client peut vérifier lui-même la chaîne de hashs jusqu’à la racine, sans télécharger les 3999 autres transactions.
SPV : les wallets légers
Un client SPV (Simplified Payment Verification) ne télécharge que les en-têtes des blocs (80 octets chacun). Pour vérifier une transaction, il demande la preuve de Merkle aux noeuds complets. Cette méthode permet de faire tourner un wallet Bitcoin sur un smartphone avec moins de 100 Mo de données.
La sécurité d’un client SPV dépend du fait qu’il se connecte à plusieurs noeuds complets. Si tous les noeuds mentent, le client peut être trompé. Mais en pratique, se connecter à 5-10 noeuds aléatoires du réseau suffit pour avoir une confirmation fiable.
Taproot et MAST : scripts plus compacts et privés
Taproot (activé en novembre 2021) introduit MAST (Merkelized Abstract Syntax Tree). Cette technique permet de cacher les branches inutilisées d’un script complexe.
Avant Taproot : tout est visible
Avant Taproot, si vous créiez une adresse multisig avec trois conditions (par exemple : “Alice ET Bob”, ou “Alice après 30 jours”, ou “Notaire”), le script complet était enregistré sur la blockchain dès la première transaction. Même si seule la première condition était utilisée, les deux autres apparaissaient quand même.
Ça posait deux problèmes : ça prenait de la place et ça révélait des informations sur votre configuration de sécurité.
Avec Taproot : seule la branche exécutée est visible
Taproot encode les conditions sous forme d’arbre de Merkle. Si vous exécutez la condition “Alice ET Bob”, seul le hash de cette condition est enregistré. Les autres branches restent cachées. Résultat : une transaction Taproot complexe ressemble exactement à une transaction simple de personne à personne.
Cette amélioration réduit la taille des transactions multi-signatures de 30 à 50% et protège la vie privée des utilisateurs. C’est aussi ce qui permet des smart contracts plus avancés sur Bitcoin sans compromettre la confidentialité.
TIP
Les wallets hardware récents (Ledger, Trezor, BitBox) supportent tous Taproot. Si votre wallet date d’avant 2021, vérifiez qu’une mise à jour firmware est disponible pour profiter de Schnorr et Taproot.
Pourquoi ces choix cryptographiques sont solides
Bitcoin aurait pu utiliser d’autres algorithmes. RSA pour les signatures, SHA-3 pour le hachage, des courbes elliptiques différentes. Satoshi Nakamoto a fait des choix conservateurs : des algorithmes bien compris, testés pendant des années, sans constantes suspectes.
Secp256k1 était considérée comme exotique en 2009. Aujourd’hui, c’est un standard. SHA-256 était déjà largement adopté, notamment par la NSA pour protéger des données classifiées. ECDSA était éprouvé dans d’autres systèmes de paiement.
Ces algorithmes ont survécu à 16 ans de tentatives d’attaque par des milliers de chercheurs en sécurité. Aucune faille exploitable n’a été découverte dans le contexte de Bitcoin. La cryptographie de Bitcoin est aussi solide en 2025 qu’en 2009 - et les mises à jour comme Schnorr l’ont renforcée.
Liens utiles pour aller plus loin
Cette page couvre la cryptographie de Bitcoin. Pour comprendre comment ces mécanismes s’intègrent dans le fonctionnement global du réseau :
- Comment fonctionne une transaction Bitcoin : de la signature à la confirmation
- Sécuriser un Ledger ou Trezor : protéger vos clés privées
- Guide seed phrase Bitcoin : sauvegarder votre portefeuille de façon sûre
Bitcoin repose sur trois piliers cryptographiques : SHA-256 pour le hachage, ECDSA puis Schnorr pour les signatures, RIPEMD-160 pour les adresses. Ces algorithmes fonctionnent ensemble pour créer un système où personne ne peut falsifier une transaction, créer de faux bitcoins ou voler des fonds sans connaître la clé privée. C’est cette architecture qui permet à Bitcoin de fonctionner sans autorité centrale depuis 2009.