II.14 Qu'est-ce qu'un bloc ?
Comme indiqué précédemment, une
blockchain est une chaîne de blocs contenant chacun plusieurs
transactions, et qui vont être inscrits au fur et à mesure dans la
blockchain par des noeuds du réseau.
Figure II- 19: Chaine de bloc
Tout d'abord, la première compréhension de la
blockchain est qu'il s'agit qu'un bloc regroupe un ensemble de transaction et
vise à cristalliser le contenue des transactions et du bloc, et la
position du bloc dans la blockchain. Cette cristallisation repose sur deux
procédés essentiels. La première, les fonctions de hachage
et la deuxième l'arbre de Merkle permettent de rigidifier la structure
de transaction et de blocs en venant souder tous ces éléments
entre eux [80].
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. Comme le montre la figure suivante :
[58]
Figure II- 20: Genesis Block
Chapitre II Fonctionnement de la blockchain
[59]
L'implémentation peut différer d'une blockchain
à l'autre, mais les principaux éléments d'un bloc sont les
suivants
Un bloc contient trois éléments comme le
représente l'illustration ci-dessous :
Figure II- 21: Qu'est-ce qu'un bloc et que
contient-il En général ?
§ Un « hash »
: l'empreinte digitale du bloc. C'est une suite de
caractères unique (comprenant chiffres et lettres) qui permet
d'identifier avec précision un bloc.
§ Des données :
par exemple les données d'une transaction en Bitcoin, incluant l'adresse
du porte-monnaie virtuel du payeur, celle du receveur, ainsi que le montant de
l'opération.
§ Le hash du bloc précédent
: l'empreinte digitale du bloc précédent. C'est
ce qui permet de situer le bloc dans la chaine.
II.14.1 La structure d'un bloc
Un bloc est composé d'un en-tête et d'un certain
nombre de transactions [85].
L'en-tête du bloc contient un hash - résultat
d'une fonction de hachage - de l'en-tête du bloc qui le
précède c'est la référence que nous
évoquions précédemment et qui assure un lien immuable
entre les blocs.
a) 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 :
o 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.
o Les informations relatives au minage : on peut y retrouver
la date exacte où le bloc a été créé, la
difficulté de minage actuel, les personnes qui ont été
récompensées pour avoir validé le bloc, etc.
o La racine de l'arbre de Merkle : il s'agit d'un arbre
structurant les données présentes dans le bloc.
b)
Chapitre II Fonctionnement de la blockchain
[60]
L'identificateur de bloc (block
indentifiers) : Afin d'identifier un bloc, celui-ci
possède une signature digitale, appelée hash cryptographique. Il
est 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.
L'arbre de Merkle (Merkletree) :
Toutes les transactions sont agencées dans une structure
que l'on appelle arbre de Merkle. Prenons l'exemple d'un block contenant 16
transactions et utilisons des lettres pour les identifier. Soient de A à
P. L'algorithme de hachage donnera tout d'abord un hash pour chacune de ces
transactions.
c) Ensuite, on combinera le hash de A et B pour avoir le hash
de AB. Après, on combinera le hash de AB et CD pour obtenir le hash
d'ABCD et ainsi de suite jusqu'à obtenir un hash pour ABCDEFGHIJKLMNOP.
Ce dernier hash est appelé racine de Merkle.
Un bloc 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 un entête, un identificateur et un arbre de Merkle qui
agence les transactions à l'intérieur de celui-ci.
La figure ci-dessous illustre les différents
éléments d'un bloc.
Figure II- 22: Contenus des blocs de la blockchain
et arbre de Merkle
|