SHA-256 constitue l’une des fondations cryptographiques de Bitcoin. Pourtant, son rôle reste souvent mal compris. Cette fonction ne chiffre aucune donnée. Elle ne signe pas davantage les transactions. En revanche, elle produit des empreintes numériques de 256 bits.
- Bitcoin utilise ces empreintes pour le minage, les blocs, les transactions et plusieurs mécanismes de vérification.
SHA-256 en bref
- SHA signifie Secure Hash Algorithm.
- 256 indique une empreinte finale de 256 bits.
- Cette empreinte mesure 32 octets ou 64 caractères hexadécimaux.
- SHA-256 hache les données. Il ne les chiffre pas.
- Bitcoin l’utilise seul ou deux fois, selon la structure concernée.
Sommaire de cette page
- La norme FIPS 180-4 du NIST.
- La définition d’une fonction de hachage.
- Le fonctionnement interne de SHA-256.
- Le double SHA-256 utilisé par Bitcoin.
- Le minage, les blocs, les transactions et les adresses.
- Le checksum des phrases BIP-39.
- Les collisions et le risque quantique.
Qu’est-ce que le document FIPS 180-4 du NIST ?
Le NIST est l’Institut national américain des normes et de la technologie. Il publie des standards utilisés bien au-delà des États-Unis.
Le NIST a publié la première version de FIPS 180-4 en mars 2012. La version jointe date d’août 2015.
Ce document officiel compte 36 pages. Il définit sept fonctions de hachage :
- SHA-1 ;
- SHA-224 ;
- SHA-256 ;
- SHA-384 ;
- SHA-512 ;
- SHA-512/224 ;
- SHA-512/256.
Ces algorithmes appartiennent au standard Secure Hash Standard. SHA-256 appartient plus précisément à la famille SHA-2.
Le document n’explique pas Bitcoin. Il décrit cependant un outil essentiel utilisé par son protocole.
Le NIST prévoit une révision du document
En mars 2023, le NIST a annoncé une future révision de FIPS 180-4.
L’organisme prévoit surtout de retirer SHA-1. Il souhaite aussi actualiser les références et améliorer le texte. Les objectifs publiés ne prévoient pas le retrait de SHA-256. Le NIST continue de classer SHA-256 parmi ses fonctions approuvées.
Une fonction de hachage, c’est quoi exactement ?
Une fonction de hachage transforme une donnée en une empreinte numérique de longueur fixe.
Le message peut contenir un mot, une transaction ou plusieurs gigaoctets. SHA-256 produit toujours une empreinte de 256 bits.
Ces 256 bits correspondent à 32 octets. Leur représentation hexadécimale occupe généralement 64 caractères.
Une bonne fonction cryptographique respecte plusieurs propriétés importantes.
- Déterminisme : la même donnée produit toujours la même empreinte.
- Effet d’avalanche : une modification minime transforme complètement le résultat.
- Résistance à la préimage : retrouver le message depuis son empreinte reste impraticable.
- Résistance aux collisions : trouver deux messages produisant la même empreinte reste impraticable.
Le mot « impraticable » compte beaucoup. Les collisions existent mathématiquement, puisque les messages possibles sont plus nombreux que les empreintes.
Cependant, personne ne sait rechercher efficacement une collision complète contre SHA-256.
Un exemple concret avec DUC Bitcoin
Voici l’empreinte SHA-256 du texte exact « DUC Bitcoin », encodé sans retour à la ligne :
aa0d534f022463fd6bdd7c4d28898ca554b567194145dfac27369b89b5aa2f73
Remplaçons seulement la majuscule du mot « Bitcoin » :
76ae29626ac316f0e572b195a6c39405337a92151355b2c82f3b13eca15285dc
Les deux résultats n’ont visiblement aucun rapport. SHA-256 repère donc immédiatement la moindre modification.
Comment SHA-256 transforme-t-il un message ?
Le fonctionnement complet exige des opérations binaires. Toutefois, son architecture générale reste compréhensible.
1. SHA-256 prépare le message
L’algorithme ajoute d’abord un bit « 1 », puis plusieurs bits « 0 ». Il ajoute enfin la longueur initiale du message.
Cette opération s’appelle le padding. Elle permet d’obtenir un format compatible avec le calcul.
2. SHA-256 découpe les données
L’algorithme découpe ensuite le message préparé en blocs de 512 bits.
Chaque bloc contient d’abord 16 mots de 32 bits. SHA-256 développe ensuite cette structure jusqu’à 64 mots.
3. SHA-256 réalise 64 tours de calcul
Chaque bloc traverse 64 tours. Ces tours combinent additions, rotations, décalages et opérations logiques.
Le calcul utilise également 64 constantes définies par le standard. Le résultat final contient huit mots de 32 bits.
- Huit mots multipliés par 32 bits donnent bien les 256 bits annoncés.
Pourquoi Bitcoin utilise-t-il souvent le double SHA-256 ?
Bitcoin applique souvent SHA-256 deux fois. Les développeurs utilisent les expressions double SHA-256 ou SHA-256d.
SHA-256d(message) = SHA-256(SHA-256(message))
Le premier passage produit 256 bits. Le second passage traite cette première empreinte.
Le résultat final mesure toujours 256 bits. Deux passages ne créent donc pas une empreinte de 512 bits.
Attention, Bitcoin n’applique pas systématiquement ce double hachage. Chaque structure suit ses propres règles.
Comment SHA-256 intervient-il dans le minage de Bitcoin ?
Le minage cherche un en-tête de bloc dont l’empreinte respecte la cible du réseau.
Un en-tête de bloc Bitcoin mesure exactement 80 octets. Il contient six éléments.
- La version du bloc : 4 octets.
- L’empreinte du bloc précédent : 32 octets.
- La racine de Merkle : 32 octets.
- L’horodatage : 4 octets.
- La cible compacte, appelée nBits : 4 octets.
- Le nonce : 4 octets.
Les mineurs appliquent SHA-256d à cet en-tête. Ils interprètent ensuite le résultat comme un nombre de 256 bits.
Pour valider la preuve de travail, ce nombre doit rester inférieur ou égal à la cible.
On parle souvent d’une empreinte commençant par plusieurs zéros. Cette image reste pratique, mais la comparaison avec la cible est plus exacte.
Les mineurs modifient le nonce, puis d’autres données si nécessaire. Chaque modification produit une nouvelle empreinte imprévisible.
- Une recherche peut demander d’innombrables essais. En revanche, un nœud vérifie rapidement le résultat obtenu.
SHA-256 ne décide pas seul de la validité du bloc
Une preuve de travail valide ne suffit pas. Chaque nœud contrôle aussi les transactions et toutes les règles de consensus.
Un mineur ne peut donc pas créer librement des bitcoins supplémentaires. Les nœuds rejetteraient son bloc, malgré son travail énergétique.
Comment SHA-256 relie-t-il les blocs entre eux ?
Chaque en-tête contient l’empreinte SHA-256d de l’en-tête précédent. Ce lien cryptographique construit la chaîne chronologique.
Modifier un ancien bloc change son empreinte. Le bloc suivant ne pointerait donc plus vers lui.
L’attaquant devrait recalculer le travail du bloc modifié. Ensuite, il devrait refaire celui de tous ses successeurs.
Il devrait enfin rattraper puis dépasser le travail cumulé de la chaîne honnête.
SHA-256 ne rend donc pas l’histoire magiquement immuable. Il révèle les modifications et les relie à une preuve de travail coûteuse.
Quel rôle SHA-256 joue-t-il dans les transactions ?
Une transaction Bitcoin possède un identifiant appelé TXID. Cet identifiant provient du double hachage de sa sérialisation traditionnelle.
Une transaction SegWit possède également un wtxid. Celui-ci inclut les données de témoin dans le calcul.
Les TXID servent ensuite de feuilles dans l’arbre de Merkle du bloc.
Bitcoin assemble les empreintes par paires. Il applique SHA-256d à chaque paire jusqu’à obtenir une seule racine.
Cette racine de Merkle résume toutes les transactions du bloc. Elle figure dans son en-tête de 80 octets.
Une transaction modifiée change son TXID. Ce changement remonte ensuite jusqu’à la racine de Merkle et l’en-tête.
SHA-256 intervient-il dans les adresses Bitcoin ?
Oui, mais son rôle dépend du type de sortie et de l’encodage utilisé.
Une ancienne adresse P2PKH utilise HASH160. Cette construction applique SHA-256, puis RIPEMD-160, à une clé publique.
L’encodage Base58Check ajoute ensuite un checksum. Il conserve les quatre premiers octets d’un double SHA-256.
Une sortie P2WSH engage directement un script avec une empreinte SHA-256 de 32 octets.
Taproot emploie aussi des hachages SHA-256 étiquetés dans plusieurs calculs internes. Cependant, tous les formats d’adresse n’utilisent pas Base58Check.
Quel rapport existe-t-il entre SHA-256 et une phrase BIP-39 ?
SHA-256 participe à la création du checksum BIP-39. Toutefois, il ne transforme pas directement les mots en clés privées.
BIP-39 commence avec une entropie comprise entre 128 et 256 bits. Sa longueur augmente par tranches de 32 bits.
Le système calcule SHA-256 sur cette entropie. Il conserve ensuite les premiers bits du résultat pour former le checksum.
| Nombre de mots | Entropie | Checksum SHA-256 | Total encodé |
|---|---|---|---|
| 12 mots | 128 bits | 4 bits | 132 bits |
| 15 mots | 160 bits | 5 bits | 165 bits |
| 18 mots | 192 bits | 6 bits | 198 bits |
| 21 mots | 224 bits | 7 bits | 231 bits |
| 24 mots | 256 bits | 8 bits | 264 bits |
Ainsi, une phrase de 24 mots encode 256 bits d’entropie et 8 bits de checksum.
Une phrase de 12 mots encode 128 bits d’entropie et 4 bits de checksum.
Ensuite, BIP-39 utilise PBKDF2 avec HMAC-SHA512. Cette étape produit une seed de 512 bits.
Le checksum repère certaines erreurs de transcription. Il ne protège jamais une phrase volée contre un attaquant.
SHA-256 chiffre-t-il ou signe-t-il les transactions ?
Non. Hacher, chiffrer et signer représentent trois opérations différentes.
| Opération | Objectif | Réversibilité | Exemple dans Bitcoin |
|---|---|---|---|
| Hachage | Produire une empreinte | Non | SHA-256 ou SHA-256d |
| Chiffrement | Masquer une donnée | Oui, avec la clé | Protection locale d’une sauvegarde |
| Signature | Autoriser et authentifier | Non applicable | ECDSA ou Schnorr |
Les anciennes dépenses Bitcoin utilisent principalement ECDSA. Taproot permet les signatures Schnorr selon BIP-340.
Ces signatures prouvent le contrôle d’une clé privée. Elles ne révèlent pas cette clé.
Le protocole hache néanmoins les données à signer. Ensuite, l’algorithme de signature intervient avec la clé privée.
Où Bitcoin utilise-t-il SHA-256 ?
| Élément | Construction | Rôle principal |
|---|---|---|
| En-tête de bloc | SHA-256d | Preuve de travail et identifiant |
| Bloc précédent | SHA-256d | Chaînage chronologique |
| TXID | SHA-256d | Identifiant de transaction |
| wtxid | SHA-256d | Identifiant incluant le témoin |
| Arbre de Merkle | SHA-256d | Engagement des transactions |
| Base58Check | SHA-256d tronqué | Détection d’erreurs |
| P2WSH | SHA-256 | Engagement d’un script |
| Checksum BIP-39 | SHA-256 tronqué | Contrôle du mnémonique |
| Calculs Taproot | SHA-256 étiqueté | Engagements et signatures |
SHA-256 peut-il être cassé par une collision ?
SHA-256 propose environ 2256 résultats différents. Rechercher une préimage générique exige donc environ 2256 essais classiques.
La recherche générique d’une collision profite du paradoxe des anniversaires. Sa complexité théorique descend alors vers 2128 opérations.
Ces nombres restent gigantesques. Le NIST attribue à SHA-256 une résistance de 256 bits aux préimages.
Il lui attribue aussi une résistance de 128 bits aux collisions. Aucune collision pratique complète de SHA-256 n’est documentée.
Il ne faut pas confondre SHA-256 avec SHA-1. Le NIST organise précisément la sortie progressive de SHA-1.
Un ordinateur quantique menace-t-il SHA-256 ?
L’algorithme de Grover offrirait une accélération quadratique contre une recherche de préimage.
Dans un modèle quantique idéal, l’ordre de grandeur passerait de 2256 vers 2128 opérations quantiques.
Cela ne rend pas automatiquement l’attaque réalisable. Les coûts matériels, la profondeur des circuits et la correction d’erreurs restent déterminants.
Par ailleurs, l’algorithme de Shor cible surtout les systèmes fondés sur le logarithme discret.
Dans Bitcoin, cette question concerne directement ECDSA et Schnorr. Elle ne s’applique pas de la même manière à SHA-256.
Le risque quantique exige donc de distinguer les fonctions de hachage des signatures. Mélanger les deux nourrit surtout la panique.
Les erreurs fréquentes concernant SHA-256 et Bitcoin
- « SHA-256 chiffre Bitcoin » : faux. SHA-256 hache des données.
- « Le double SHA-256 produit 512 bits » : faux. Le résultat conserve 256 bits.
- « SHA-256 signe une transaction » : faux. ECDSA ou Schnorr produit la signature.
- « SHA-256 génère directement une seed BIP-39 » : faux. Il calcule d’abord son checksum.
- « Un hash valide commence obligatoirement par des zéros » : imprécis. Il doit respecter une cible numérique.
- « SHA-256 sécurise seul Bitcoin » : faux. La sécurité repose sur plusieurs mécanismes complémentaires.
Pourquoi SHA-256 reste-t-il essentiel à Bitcoin ?
SHA-256 fournit une empreinte compacte, déterministe et rapidement vérifiable. Pourtant, personne ne peut choisir facilement son résultat.
Cette asymétrie rend la preuve de travail possible. Elle permet aussi d’engager des transactions sans recopier toutes leurs données.
Bitcoin combine ensuite ces propriétés avec les signatures, les UTXO, les règles de consensus et son réseau pair-à-pair.
La force du système vient donc de cette combinaison. SHA-256 représente une pièce maîtresse, mais jamais l’ensemble de la mécanique.
🔍 DUC, mon avis
Ce document du NIST peut sembler austère. Pourtant, il décrit une partie du moteur cryptographique que Bitcoin utilise depuis 2009.
Bitcoin n’a pas inventé SHA-256. Satoshi a surtout assemblé des briques connues dans un système monétaire sans autorité centrale.
Cette nuance compte. Elle montre que Bitcoin ne repose ni sur un slogan ni sur une mystérieuse boîte noire.
Son fonctionnement s’appuie sur des règles publiques, vérifiables et documentées. Même les 36 pages du NIST restent accessibles aux courageux.
Analyse courte de la situation
SHA-256 reste une fondation robuste de Bitcoin. Le débat quantique concerne aujourd’hui plus directement les signatures que cette fonction de hachage.
Sources
- NIST — FIPS 180-4, Secure Hash Standard
- NIST — Document complet FIPS 180-4 au format PDF
- NIST — Fonctions de hachage approuvées et niveaux de sécurité
- NIST — Décision de réviser FIPS 180-4
- Satoshi Nakamoto — Bitcoin: A Peer-to-Peer Electronic Cash System
- Bitcoin Developer Reference — En-têtes de blocs et arbres de Merkle
- Bitcoin Developer Reference — Transactions et TXID
- BIP-39 — Mnémonique, checksum SHA-256 et seed
- BIP-141 — Segregated Witness, TXID et wtxid
- BIP-340 — Signatures Schnorr pour secp256k1
- BIP-341 — Taproot et hachages étiquetés
- Bitcoin Developer Guide — Wallets, HASH160 et Base58Check
- NIST IR 8105 — Rapport sur la cryptographie post-quantique
✍️ DUC
🚀 Rejoignez-moi pour plus de contenu exclusif !
- 👉 YouTube : Bitcoin sans détour
- 👉 X : @bitcoinduc
📢Prendre des décisions informées dans cet univers passionnant ! Comprendre, Apprendre, Réussir…
- Sur YouTube : toute l’actualité de Bitcoin et un regard averti sur l’ensemble de l’univers des cryptomonnaies.
🔔 Abonnez-vous au site pour ne manquer aucun contenu
À bientôt, DUC
En savoir plus sur Actualités Bitcoin – Bitcoin-Crypto.fr
Subscribe to get the latest posts sent to your email.



Vous devez être connecté pour poster un commentaire.