Crypto - Blockchain et réseaux
Hash
Autres noms : empreinte cryptographique, valeur de hachage
Définition
Un hash est une empreinte de taille fixe calculée à partir d'une donnée par une fonction de hachage, comme SHA-256 sur Bitcoin. La même donnée donne toujours le même hash, alors que la moindre modification produit un hash différent. Retrouver la donnée de départ à partir de son hash est impossible en pratique.
En clair
SHA-256 transforme une donnée, d'un simple mot à un fichier entier, en un résultat de 256 bits, soit 64 caractères hexadécimaux. Une fonction de hachage sûre rend aussi impossible en pratique de trouver une seconde donnée qui donne le même hash. Ethereum utilise une autre fonction, Keccak-256, issue de la famille retenue pour le standard SHA-3.
Dans une blockchain, chaque bloc contient le hash du bloc précédent, ce qui rend visible toute modification du passé. Chaque transaction a aussi pour identifiant son hash, que tu peux coller dans un explorateur de blocs pour suivre un transfert. Sur Bitcoin, les mineurs enchaînent les calculs de hash jusqu'à en trouver un inférieur à une cible fixée par le réseau.
Un hash prouve qu'une donnée n'a pas changé, pas qu'elle est vraie ni que son auteur est honnête. La sécurité dépend aussi de la fonction choisie, car des ordinateurs toujours plus puissants finissent par affaiblir certaines d'entre elles. Le NIST, l'organisme américain de normalisation, a ainsi annoncé en 2022 le retrait progressif de SHA-1 d'ici fin 2030.
Exemple
Tu télécharges un wallet fictif de 80 Mo dont l'éditeur publie le hash SHA-256, une suite de 64 caractères hexadécimaux, soit 256 bits. Ton ordinateur recalcule le hash du fichier reçu et retrouve exactement les mêmes 64 caractères, ce qui montre que le fichier n'a pas été modifié. Un fichier de 1 Ko aurait lui aussi un hash de 64 caractères, alors qu'un seul octet modifié suffirait à changer le résultat.
À ne pas confondre
- Clé privée
Une clé privée est un secret qui permet de signer des transactions, un hash est une empreinte publique qui ne donne accès à aucun fonds.
- Proof of Work
Le Proof of Work consiste à calculer un très grand nombre de hashs pour trouver un bloc valide, alors qu'un hash est le résultat d'un seul calcul.