SHA-256 : au cœur de Bitcoin

SHA-256 : au cœur de Bitcoin

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

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 motsEntropieChecksum SHA-256Total encodé
12 mots128 bits4 bits132 bits
15 mots160 bits5 bits165 bits
18 mots192 bits6 bits198 bits
21 mots224 bits7 bits231 bits
24 mots256 bits8 bits264 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érationObjectifRéversibilitéExemple dans Bitcoin
HachageProduire une empreinteNonSHA-256 ou SHA-256d
ChiffrementMasquer une donnéeOui, avec la cléProtection locale d’une sauvegarde
SignatureAutoriser et authentifierNon applicableECDSA 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émentConstructionRôle principal
En-tête de blocSHA-256dPreuve de travail et identifiant
Bloc précédentSHA-256dChaînage chronologique
TXIDSHA-256dIdentifiant de transaction
wtxidSHA-256dIdentifiant incluant le témoin
Arbre de MerkleSHA-256dEngagement des transactions
Base58CheckSHA-256d tronquéDétection d’erreurs
P2WSHSHA-256Engagement d’un script
Checksum BIP-39SHA-256 tronquéContrôle du mnémonique
Calculs TaprootSHA-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

✍️ DUC

Tout uniquement sur le bitcoin
satoshi Nakamoto et l histoire du Bitcoin
toutes les actualités bitcoin I en cliquant ICI

🚀 Rejoignez-moi pour plus de contenu exclusif !

📢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.

DUC Bitcoin

DUC, spécialiste Bitcoin, vous ouvre les portes de l’univers crypto. Plongez chaque jour au cœur de l’actualité Bitcoin et profitez de formations claires et complètes pour tout comprendre, des bases de Bitcoin jusqu’aux stratégies de trading avancé. Rejoignez-moi pour décoder tous les marchés, suivre les tendances clés et progresser avec méthode dans l’écosystème Bitcoin.