Contenu du cours
Introduction à la Blockchain
Introduction à la Blockchain
Aperçu du Hachage
Nous avons déjà mentionné le hachage et les hachages de blocs plusieurs fois, mais nous n'y avons pas vraiment prêté attention, il est donc temps de discuter de ce qu'est réellement le hachage.
Propriétés des fonctions de hachage
Dans la blockchain, les fonctions de hachage sont utilisées pour :
- Sécuriser les transactions en créant une empreinte digitale unique pour chacune d'elles ;
- Générer des adresses à partir de clés publiques ;
- Créer les liens dans la blockchain à travers les hachages de blocs.
Avec cela à l'esprit, une bonne fonction de hachage pour la blockchain a plusieurs propriétés clés :
Le hachage, en particulier en utilisant une bonne fonction de hachage, peut être comparé à faire un smoothie. Jetons un coup d'œil à l'illustration suivante :
Eh bien, en fait, il est possible de retrouver l'entrée originale donnée un hash, cependant, cela prendrait trop de temps pour être réellement pratique.
Hachage de Bloc
Pour obtenir le hash d'un certain bloc, Bitcoin utilise la fonction de hachage SHA-256, qui produit un hash de 256 bits (32 octets). Elle fait partie de la famille SHA-2 conçue par la National Security Agency (NSA) et est connue pour ses fortes propriétés de sécurité, la rendant résistante aux collisions, aux attaques de préimage et à d'autres vulnérabilités cryptographiques.
Le hash d'un bloc Bitcoin est calculé en prenant les données de l'en-tête de bloc. Ces données sont entrées dans la fonction de hachage SHA-256 deux fois dans un processus connu sous le nom de double SHA-256.
Voici une image pour clarifier les choses :
Le hachage de 256 bits résultant doit répondre à certains critères définis par l'objectif de difficulté du réseau. Si le hachage n'est pas en dessous de l'objectif, le nonce est ajusté et le hachage est recalculé jusqu'à ce qu'un hachage qualifiant soit trouvé. Ce hachage final est l'identifiant unique du bloc.
Racine de Merkle
Comme nous l'avons mentionné précédemment, la racine de Merkle est un hachage unique qui représente toutes les transactions incluses dans le bloc. Le calcul d'une racine de Merkle commence par les hachages de chaque transaction dans un bloc. Le Double SHA-256 est également utilisé ici.
Chaque hachage est ensuite jumelé avec un autre et ils sont hachés ensemble pour former un nouveau hachage. Ce processus de jumelage et de hachage des nouveaux hachages continue jusqu'à ce qu'il ne reste qu'un seul hachage. Le hachage final est la racine de Merkle, représentant toutes les transactions dans le bloc et assurant leur intégrité en encodant l'ensemble des transactions en un seul hachage. Un tel processus forme un arbre de Merkle.
Jetons un coup d'œil à un exemple d'arbre de Merkle :
Comme vous pouvez le voir, notre bloc contient 6 transactions (chacune étiquetée comme Tx) et via le hachage et l'appariement de nouveaux hachages, une racine de Merkle est calculée.
Merci pour vos commentaires !