Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Aperçu du Hachage | Blocs et Transactions
Introduction à la Blockchain

bookAperç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.

Note
Approfondir

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.

Note
Note

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

question mark

Quelle est la taille de sortie de la fonction de hachage SHA-256 utilisée dans la blockchain de Bitcoin ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 4

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

Suggested prompts:

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

bookAperç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.

Note
Approfondir

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.

Note
Note

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

question mark

Quelle est la taille de sortie de la fonction de hachage SHA-256 utilisée dans la blockchain de Bitcoin ?

Select the correct answer

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 4
some-alt