Translate

La blockchain est une chaîne de blocs de données.

Qu'est-ce qu'un bloc dans la blockchain?

Bitcoin est basé sur la blockchain, tout le monde le sait. Mais quelle est cette blockchain? 
Plus précisément, comment imaginer les composants individuels de la blockchain, les blocs?
La blockchain est une chaîne de blocs de données. Chaque bloc peut être considéré comme une page dans un grand livre. Les blocs individuels sont composés de plusieurs composants. En gros, ceux-ci peuvent être différenciés en tête du bloc (en-tête de bloc) et son corps (corps du bloc).

En-tête de bloc 

La tête du bloc est divisée en six composantes:
  1. le numéro de version du logiciel
  2. le hash du bloc précédent
  3. la racine de l'arbre de Merkle
  4. le temps en secondes depuis 1970–01–01 T00: 00 UTC
  5. le but de la difficulté actuelle
  6. le nonce

Le numéro de version du logiciel

Le numéro de version du logiciel n'a pas d'importance dans la plupart des cas. Cependant, un mineur avec un numéro de version particulier peut signaler les décisions de protocole qu'il prend en charge.

Le hash du bloc précédent

Le hash du bloc précédent est, pour ainsi dire, la chaîne de blockchains. Comme le hachage du bloc précédent est contenu dans celui du nouveau bloc, les blocs de la chaîne de blocs se construisent tous l'un sur l'autre. Sans ce composant, il n'y aurait pas de connexion ni de chronologie entre chaque bloc. 

La racine de l'ar bre de Merkle

Toutes les transactions contenues dans un bloc peuvent être agrégées dans un hachage. Ceci est le hachage racine de l'arbre de Merkle.

Le temps en secondes depuis 1970–01–01 T00: 00 UTC

Un horodatage dans le bloc lui-même. Le temps est donné en secondes depuis le 1.1.1970.

Le but de la difficulté actuelle

Le but indique à quel point le nouveau hachage doit être petit pour être valide. En d'autres termes, chaque hachage a une taille en bits. Plus l'objectif en bits est faible, plus il est difficile de trouver un hachage correspondant. Un hachage avec plusieurs zéros au début est plus petit qu'un hachage sans zéros. En savoir plus sur la difficulté de la preuve de travail.                         

Le nonce

Le nonce est la variable incrémentée par la preuve de travail. De cette façon, le mineur devine un hachage valide, un hachage plus petit que la cible.
Les six composants forment l'en-tête de bloc. L'en-tête de bloc joue un rôle fondamental dans Bitcoin car il relie tous les blocs ensemble. Vous pouvez l’imaginer comme le cockpit d’un camion. Voici les documents importants avec lesquels le camion passe sous les commandes du réseau.

Corps de bloc

Le corps de bloc est envisageable comme espace de chargement d'un camion. Il contient toutes les transactions confirmées avec le bloc.
Lorsqu'un mineur construit un bloc, il valide les transactions. C'est-à-dire qu'il vérifie que l'expéditeur a réellement assez d'argent à dépenser. Il peut facilement lire ces informations depuis la blockchain. Le mineur cherche dans les blocs précédents pour voir si l'expéditeur a même obtenu dix Bitcoins s'il veut envoyer dix Bitcoins
Les transactions dans un bloc ne sont pas simplement dans une liste, mais dans ce qu'on appelle un arbre de Merkle.

Qu'est-ce qu'un arbre Merkle?

Le Merkle Tree tire son nom du mathématicien Ralph Merkle. La découverte était que beaucoup d'informations peuvent être représentées dans un seul hachage. Pour cela, les données elles-mêmes sont d'abord hachées. Ensuite, les hachages sont à nouveau hachés et fusionnés. Enfin, l'arbre de Merkle est fusionné en un seul hachage. Ce dernier hachage est aussi appelé hachage racine, la racine de l'arbre. Il représente toutes les informations de ses «feuilles» (transactions individuelles) et de ses «branches» (hachage des feuilles) dans une chaîne relativement courte.
Créer le hachage de racine est rapide et facile, tant que toutes les branches et les feuilles sont connues. Nous nous souvenons de la fonction d'une fonction de hachage: elle fonctionne clairement et rapidement dans un sens et est impossible à décomposer dans l'autre sens. Si le hachage racine est connu, mais que les transactions sont inconnues, il est impossible de deviner les transactions.
Un hachage de racine ne suffit donc pas et le reste du bloc doit être sauvegardé. Ainsi, le mineur peut valider le hachage de la racine à tout moment en hachant à nouveau les informations contenues dans le bloc. Tant que la fonction de hachage est la même, les mineurs obtiennent toujours le même hachage pour une entrée donnée de données. Ceci est très pratique car ils peuvent uniquement vérifier s’ils sont au même niveau que le hash.  

Mines: la recherche d'un hachage spécial

Dans ce contexte, il est plus facile de comprendre l'extraction de la preuve de travail. Lors de l'exploration, l'en-tête de bloc du bloc est modifié de manière incrémentielle pour obtenir un hachage spécial. L'en-tête est composé de cinq constantes et d'une variable. Les constantes sont le numéro de version du logiciel, le hachage du bloc précédent, le hachage racine de l'arbre de Merkle, l'horodatage et la taille cible du hachage recherché en octets.
La variable est le nonce. Un nonce est un nombre élevé par un. Ensuite, le mineur hache les données et vérifie si les données résultent en un hachage inférieur à la valeur cible recherchée. Si la valeur de hachage est supérieure à la cible, le mineur répète le processus. Cela augmente donc le nonce de un, hache et vérifie à nouveau. Il répète l'opération jusqu'à ce qu'il trouve un hachage sous la cible ou qu'il obtienne un autre bloc d'un autre utilisateur de réseau, dont le hachage est situé sous la cible. Puis prend ce nouveau bloc et l’utilise comme base pour le prochain bloc (en utilisant le nouveau hachage comme “hachage du bloc précédent”).
L’exploitation minière est un processus hyper répétitif dont le but est de trouver un hachage spécial. Une fois que le hachage est trouvé, le jeu recommence. La probabilité de trouver un hachage spécial dépend de la difficulté. En moyenne, Bitcoin trouve un nouveau bloc toutes les dix minutes. La difficulté continue de s’adapter, donc cette moyenne reste la même. 
La particularité de ce processus est que le hachage spécial ne peut être trouvé que par devinette. Ce tarif coûte de la puissance de calcul et donc de l’énergie. Il suffit de regarder le hachage spécial pour voir que c'est spécial parce qu'il commence par des zéros.
Voici un exemple d'un tel hachage de la blockchain Bitcoin:
00000000000000000094bfa4edb1245c347e42452e4418e9fe5a1d24e335b16

Hash: La matriochka de la blockchain

Un bloc peut être simplifié comme un matryoshka l’imagine. La plus petite poupée est la transaction sans lendemain. L’enveloppe suivante est la forme hachée de cette transaction. Par la suite, deux transactions hachées sont hachées ensemble. Ainsi, les hachages sont de plus en plus fusionnés. En fin de compte, il ne reste qu'un hachage, le hachage racine ou le plus gros matriochka.