Aller au contenu
buybitcoinsmart

Glossaire / Minage et consensus

SHA-256

Aussi appelé SHA256.

Qu'est-ce que SHA-256 ?
SHA-256 prend une entrée de n'importe quelle longueur et renvoie une empreinte de 32 octets, identique à chaque fois, imprévisible à l'avance et impossible à remonter en sens inverse.

Le Bitcoin s'appuie sur cette seule fonction presque partout : hachages de blocs, identifiants de transaction, arbres de Merkle, sommes de contrôle d'adresses et somme de contrôle de votre phrase de récupération. La sortie fait 256 bits, imprimés sous forme de 64 caractères hexadécimaux, tirés d'un espace d'environ 1,2 fois 10 à la puissance 77 valeurs. C'est cette arithmétique qui repère une adresse mal saisie avant que vos bitcoins ne soient envoyés où que ce soit.

Comment cela fonctionne

SHA-256 découpe son entrée en blocs de 512 bits et brasse chacun d'eux pendant 64 tours de décalages, de rotations et d'additions.

L'état ainsi brassé est constitué de huit mots de 32 bits, initialisés avec des constantes tirées des parties fractionnaires des racines carrées des huit premiers nombres premiers, tandis que les 64 constantes de tour proviennent des racines cubiques des 64 premiers nombres premiers. Ces origines sont tout l'intérêt : ce sont des nombres que personne n'aurait pu choisir pour une raison cachée, et c'est ainsi que la conception soutient qu'elle n'a pas de porte dérobée. L'algorithme a été produit par la National Security Agency des États-Unis et publié par le NIST en 2001, et la spécification actuelle est FIPS 180-4.

Trois propriétés sont ce que le bitcoin achète réellement. La fonction est déterministe, donc n'importe quelle machine, où qu'elle soit, produit le même condensé à partir des mêmes octets. Elle produit un effet d'avalanche, si bien qu'inverser un seul bit de l'entrée modifie environ la moitié des bits de sortie, sans schéma reliant les deux. Et elle résiste à l'exécution en sens inverse : personne n'a trouvé de moyen de retrouver une entrée à partir d'un condensé, ni de produire deux entrées partageant le même condensé, plus vite que par force brute. SHA-1 a succombé à une collision pratique en février 2017, ce qui a coûté aux chercheurs une quantité de calcul énorme et ne s'est pas du tout reporté sur SHA-2.

Le Bitcoin l'appelle rarement une seule fois. Les en-têtes de bloc, les identifiants de transaction, les nœuds de Merkle et la somme de contrôle d'un message pair-à-pair utilisent tous un double passage, en hachant le condensé une seconde fois. Les hachages d'adresses empruntent une autre voie, RIPEMD-160 appliqué à un condensé SHA-256, d'où provient la charge utile de 20 octets d'une adresse héritée. Taproot a de nouveau rompu le schéma : le BIP340 définit des hachages étiquetés qui appellent SHA-256 une seule fois, avec un préfixe séparateur de domaine, afin que les signatures destinées à un usage ne puissent pas être rejouées pour un autre.

Où le voir

Chaque chaîne hexadécimale de 64 caractères dans un explorateur de blocs est une sortie SHA-256. Cela comprend l'identifiant de transaction que vous collez dans un ticket d'assistance et le hachage de bloc qui commence par une longue suite de zéros, apparence que prend un en-tête ayant atteint la cible.

Deux endroits comptent directement lorsque vous détenez des bitcoins. Une phrase de récupération porte une somme de contrôle construite à partir de cette fonction : 12 mots encodent 128 bits aléatoires plus 4 bits de somme de contrôle tirés du condensé SHA-256 de ces données aléatoires, si bien qu'une phrase comportant un mot erroné est rejetée environ 15 fois sur 16 plutôt que d'ouvrir silencieusement un portefeuille vide. Une adresse héritée porte une garde similaire, une somme de contrôle de 4 octets issue d'un double passage SHA-256, ce qui rend la probabilité qu'une faute de frappe aléatoire produise une adresse valide d'environ 1 sur 4,3 milliards.

Le matériel de minage n'existe pour rien d'autre. Un ASIC est une puce qui calcule cette seule fonction et aucune autre, ce qui explique pourquoi les machines de minage de bitcoin ne peuvent pas être réaffectées à des chaînes bâties sur un algorithme différent, et pourquoi l'expression cryptomonnaie SHA-256 décrit toute une famille de forks. Notez la limite de tout cela : une somme de contrôle repère une adresse que vous avez mal saisie, jamais une adresse qu'un logiciel malveillant a remplacée par une adresse parfaitement valide qui n'est pas la vôtre.

À ne pas confondre avec

Questions fréquentes

Les ordinateurs quantiques pourraient-ils casser SHA-256 ?

Pas au sens où on l'entend habituellement. Les algorithmes quantiques connus affaiblissent la recherche de hachages bien moins qu'ils n'affaiblissent la cryptographie à clé publique, de sorte que c'est le schéma de signature du bitcoin qui est considéré comme la partie exposée, et non sa fonction de hachage.

Pourquoi le bitcoin hache-t-il les choses deux fois ?

Le double hachage était une précaution de Satoshi Nakamoto contre l'extension de longueur, une faiblesse liée au fait qu'un simple passage peut être poursuivi par quelqu'un qui ne connaît que le condensé. Cela ne coûte presque rien et élimine entièrement cette classe d'attaque.

À lire ensuite

Termes associés

Plus de termes : Minage et consensus

Lire cette page en anglais