Aperçu du Hachage
Le hachage et les empreintes de blocs ont été mentionnés à plusieurs reprises, mais le concept lui-même n’a pas encore été examiné en détail. Il est maintenant temps de comprendre ce qu’est réellement le hachage.
Le hachage est un processus qui prend une entrée et produit une chaîne d’octets de taille fixe, généralement exprimée sous forme de nombre hexadécimal. Le résultat, appelé empreinte (ou hash), semble aléatoire et change complètement à la moindre modification de l’entrée, une propriété connue sous le nom d’« effet avalanche ».
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 unique pour chacune ;
- Générer des adresses à partir de clés publiques ;
- Créer les liens dans la blockchain via les empreintes de blocs.
Dans ce contexte, une bonne fonction de hachage pour la blockchain présente plusieurs propriétés essentielles :
Le hachage, en particulier lorsqu'on utilise une bonne fonction de hachage, peut être comparé à la préparation d'un smoothie. Examinons l'illustration suivante :
En réalité, il est possible de retrouver l'entrée d'origine à partir d'un hachage, cependant, cela prendrait tellement de temps que cela ne serait pas vraiment pratique.
Hachage de bloc
Pour obtenir le hachage d'un certain bloc, Bitcoin utilise la fonction de hachage SHA-256, qui produit un hachage de 256 bits (32 octets). Elle fait partie de la famille SHA-2 conçue par la National Security Agency (NSA) et est reconnue pour ses solides 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 hachage d'un bloc Bitcoin est calculé en prenant les données de l'en-tête du bloc. Ces données sont saisies dans la fonction de hachage SHA-256 deux fois dans un processus appelé double SHA-256.
Voici une image pour clarifier les choses :
Le hachage de 256 bits obtenu doit répondre à certains critères définis par la cible de difficulté du réseau. Si le hachage n'est pas inférieur à la cible, le nonce est ajusté et le hachage est recalculé jusqu'à ce qu'un hachage conforme soit trouvé. Ce hachage final constitue l'identifiant unique du bloc.
Racine de Merkle
La racine de Merkle est un hachage unique qui représente l'ensemble des transactions incluses dans un bloc. Son calcul commence par les hachages de chaque transaction individuelle, en utilisant le double SHA-256.
Chaque hachage de transaction est ensuite apparié avec un autre, et la paire est hachée ensemble pour produire un nouveau hachage. Ce processus d'appariement et de hachage se poursuit couche par couche jusqu'à ce qu'il ne reste plus qu'un seul hachage. Le hachage final est la racine de Merkle, qui encapsule l'ensemble des transactions et garantit leur intégrité en les codant dans une seule valeur. Cette structure hiérarchique est appelée arbre de Merkle.
L'exemple suivant illustre la formation d'un arbre de Merkle :
Comme on peut le voir, notre bloc contient 6 transactions (chacune étiquetée Tx) et, grâce au hachage et à l'appariement de nouveaux hachages, une racine de Merkle est calculée.
Lorsque le hachage le plus à droite n'a pas de paire, comme Hash56 dans notre exemple, ce dernier hachage est dupliqué pour créer une paire. Cette technique préserve l'intégrité et l'efficacité de la structure de l'arbre de Merkle, même avec un nombre impair de transactions ou de hachages à un moment donné.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain more about how the Merkle tree structure works?
What is the purpose of the nonce in block hashing?
How does double SHA-256 improve security in Bitcoin?
Awesome!
Completion rate improved to 6.25
Aperçu du Hachage
Glissez pour afficher le menu
Le hachage et les empreintes de blocs ont été mentionnés à plusieurs reprises, mais le concept lui-même n’a pas encore été examiné en détail. Il est maintenant temps de comprendre ce qu’est réellement le hachage.
Le hachage est un processus qui prend une entrée et produit une chaîne d’octets de taille fixe, généralement exprimée sous forme de nombre hexadécimal. Le résultat, appelé empreinte (ou hash), semble aléatoire et change complètement à la moindre modification de l’entrée, une propriété connue sous le nom d’« effet avalanche ».
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 unique pour chacune ;
- Générer des adresses à partir de clés publiques ;
- Créer les liens dans la blockchain via les empreintes de blocs.
Dans ce contexte, une bonne fonction de hachage pour la blockchain présente plusieurs propriétés essentielles :
Le hachage, en particulier lorsqu'on utilise une bonne fonction de hachage, peut être comparé à la préparation d'un smoothie. Examinons l'illustration suivante :
En réalité, il est possible de retrouver l'entrée d'origine à partir d'un hachage, cependant, cela prendrait tellement de temps que cela ne serait pas vraiment pratique.
Hachage de bloc
Pour obtenir le hachage d'un certain bloc, Bitcoin utilise la fonction de hachage SHA-256, qui produit un hachage de 256 bits (32 octets). Elle fait partie de la famille SHA-2 conçue par la National Security Agency (NSA) et est reconnue pour ses solides 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 hachage d'un bloc Bitcoin est calculé en prenant les données de l'en-tête du bloc. Ces données sont saisies dans la fonction de hachage SHA-256 deux fois dans un processus appelé double SHA-256.
Voici une image pour clarifier les choses :
Le hachage de 256 bits obtenu doit répondre à certains critères définis par la cible de difficulté du réseau. Si le hachage n'est pas inférieur à la cible, le nonce est ajusté et le hachage est recalculé jusqu'à ce qu'un hachage conforme soit trouvé. Ce hachage final constitue l'identifiant unique du bloc.
Racine de Merkle
La racine de Merkle est un hachage unique qui représente l'ensemble des transactions incluses dans un bloc. Son calcul commence par les hachages de chaque transaction individuelle, en utilisant le double SHA-256.
Chaque hachage de transaction est ensuite apparié avec un autre, et la paire est hachée ensemble pour produire un nouveau hachage. Ce processus d'appariement et de hachage se poursuit couche par couche jusqu'à ce qu'il ne reste plus qu'un seul hachage. Le hachage final est la racine de Merkle, qui encapsule l'ensemble des transactions et garantit leur intégrité en les codant dans une seule valeur. Cette structure hiérarchique est appelée arbre de Merkle.
L'exemple suivant illustre la formation d'un arbre de Merkle :
Comme on peut le voir, notre bloc contient 6 transactions (chacune étiquetée Tx) et, grâce au hachage et à l'appariement de nouveaux hachages, une racine de Merkle est calculée.
Lorsque le hachage le plus à droite n'a pas de paire, comme Hash56 dans notre exemple, ce dernier hachage est dupliqué pour créer une paire. Cette technique préserve l'intégrité et l'efficacité de la structure de l'arbre de Merkle, même avec un nombre impair de transactions ou de hachages à un moment donné.
Merci pour vos commentaires !