Qu’est-ce qu’un bloc ?

bloc blockchain crypto-monnaie bitoin

 

Définition d’un bloc dans la technologie blockchain ?

Un bloc, ou “block” en anglais, est une sorte de petite base de donnée contenant une liste de transactions ou échanges effectués en crypto-monnaie ou encore de données inscrites au sein d’une blockchain. Les blocs contiennent un enregistrement de toutes les données liées à des transactions valides. Ils ne sont créés que lorsqu’ils sont validés par la communauté faisant fonctionner le réseau.
Ils sont ensuite “hachés” puis encodés dans ce qu’on appelle un arbre de hachage ou arbre de Merkle.  Un arbre de hachage est un arbre dans lequel chaque branche (nœud) possède une étiquette avec le hash des données du block. En résumé, il n’y a aucune équivalence entre les données réelles et celles qui sont inscrites dans un bloc après que des techniques cryptographiques aient été utilisées.

Chacun des blocs possède le hash cryptographique du bloc qui le précède au sein d’une blockchain. Lorsqu’un block est considéré comme valide par les mineurs et approuvé par le réseau, il devient partie intégrante de la blokchain. Le premier bloc d’une blockchain est appelé “Genesis Block” et est le seul qui ne contient pas les données des blocs précédents, car il n’y en a aucun avant lui.

Prenons l’exemple d’une transaction de bitcoins : la clé publique de l’émetteur et du récepteur de la transaction ainsi que le montant de cette dernière sont contenus dans le bloc. Ces informations sont publiques. La clé privée de l’émetteur et du récepteur permettent de valider la transaction (respectivement de payer et de recevoir le paiement).
On parle de blockchain car les données échangées entre les différentes parties du réseau sont regroupés en blocs horodatés et définitivement liés les uns aux autres. Les informations inscrites dans les blocs sont inaltérables et infalsifiables sauf dans de très rares cas comme une attaque de double dépense par exemple.

 

La structure d’un bloc

Les informations inscrites dans un bloc sont structurées selon des règles bien précises. En fonction du crypto-actif concerné, le nombre de transactions inscrites et la taille du block peuvent varier. Un bloc Bitcoin contient environ 500 transactions et possède une taille de 1MB. Dans Bitcoin Cash, la taille d’un bloc est de 8MB par exemple.

Un bloc comporte en général 3 composantes : l’entête, l’identificateur et un arbre de Merkel.
Voyons ensemble ce que signifient ces 3 choses.

 

L’entête de bloc (block header)

L’entête contient ce qu’on appelle les métadonnées à propos du block concerné. On peut répertorier principalement 3 ensembles de métadonnées :

  1. Le hash du block précédent : dans une blockchain, chaque bloc est l’héritier du bloc précédent. Cela est dû au fait qu’il utilise le hash du block d’avant pour créer son propre hash.
  2. Les informations relatives au minage : on peut y retrouver la date exacte où le block a été créé, la difficulté de minage actuelle, les personnes qui ont été récompensées pour avoir validé le bloc, etc.
  3. La racine de l’arbre de Merkle : il s’agit d’un arbre structurant les données présentes dans le block.

 

L’identificateur de bloc (block indentifiers)

Afin d’identifier un bloc, celui-ci possède une signature digitale, appelée hash cryptographique. Dans le cas du Bitcoin, on obtient cette signature digitale en hachant deux fois l’entête du bloc avec l’algorithme SHA256.

Il est également possible d’identifier un block en connaissant sa position dans la blockchain. Par exemple, le block 452.525 signifie qu’il y eu avant lui 452.524 blocs. Il est possible, lorsque plusieurs blocks sont en compétition, qu’il y ait plusieurs blocs possédant le même numéro de façon temporaire. Mais au final, la blockchain n’en acceptera qu’un seul qui deviendra donc le seul et unique bloc ayant ce numéro.

Un cas particulier où plusieurs blocs possèdent le même numéro est lorsqu’un crypto-actif subit un fork. Par exemple, depuis que le Bitcoin Cash s’est séparé du Bitcoin au bloc 478.559, chacune de ces blockchains possède un bloc avec un numéro supérieur à cette valeur. Mais on ne peut pas vraiment parler d’un crypto-actif ayant des blocs en double, puisque désormais chacune de ces crypto-monnaies est indépendante l’une de l’autre.

 

L’arbre de Merkle (Merkle tree)

Toutes les transactions sont agencées dans une structure que l’on appelle arbre de Merkle. Dans un tel arbre, les transactions sont prises deux à deux et puis hachées entre elles. L’opération est répétée jusqu’à obtenir un seul hash. Dans le cas du Bitcoin, l’algortihme de hachage utilisé est le SHA256.

Prenons l’exemple d’un block contenant 16 transactions et utilisons des lettres pour les identifier. Soit de A à P. L’algorithme de hachage donnera tout d’abord un hash pour chacune de ces transactions.

Ensuite, on combinera le hash de A et B pour avoir le hash de AB. Par après, on combinera le hash de AB et CD pour obtenir le hash de ABCD et ainsi de suite jusqu’à obtenir un hash pour ABCDEFGHIJKLMNOP. Ce dernier hash est appelé racine de Merkle.

Ce hash est une information qui sera stockée dans l’entête de bloc de chaque block présent dans la blockchain. C’est de cette façon que l’on ordonne les transactions à l’intérieur d’un bloc. Peu importe le nombre de transactions présentes dans le block, elles seront toujours exprimées via un hash de 64 caractères de ce type : e320b6c2fffc8d750423db8b1eb942ae710e951ed797f7affc8892b0f1fc122b.

Chaque feuille (transaction) présente dans l’arbre dépend d’une autre feuille, ce qui fait qu’il est impossible de modifier une feuille sans que les autres soient modifiées. Si une seule transaction est modifiée, le hash global sera modifié, car il a été construit en groupant deux à deux différentes transactions. Dans ce cas, le hash présent au sommet de l’arbre de Merkle (la racine) sera différent.

 

Conclusion

Nous espérons que ce petit article explicatif sur les blocs vous aura été utile et que vous en savez désormais plus sur le sujet.

Un block contient les transactions qui ont été traitées par les mineurs et fait partie intégrante de la blockchain une fois que celui-ci a été validé par l’ensemble du réseau.
A partir de ce moment-là, les informations incluses dans ce dernier deviennent inaltérables. Chaque bloc possède une entête, un identificateur et un arbre de Merkle qui agence les transactions à l’intérieur de celui-ci.

 


Note des lecteurs

[Total : 0    Moyenne : 0/5]

Vous avez aimé ce tutoriel ❤ ? Alors vous aimerez également :

Qu’est-ce que la Blockchain ?Que signifient hash et hachage ?Blockchain : avantages et inconvénients


Poster un Commentaire

avatar