Quand un bloc donne sa langue au SHA

Le Proof of Work (PoW) est l'un des consensus les plus notoires avec le Proof of Stake (PoS), c'est notamment celui utilisé par Bitcoin (BTC). Dans cet article, on ne va pas parler de son fonctionnement, mais plutôt nous focaliser sur des aspects spécifiques tels que les hashs.

Un hash est une technique de cryptographie dont on se sert pour transformer des données (peu importe la quantité) sous la forme d'une chaîne de caractère chiffrée. Les données sortantes sont encodées en 256 bits.

L'algorithme le plus célèbre pour mener à bien cette mission est le SHA-256, utilisé par la blockchain Bitcoin. Il faut voir un hash comme un mixeur. On va rentrer des informations qui vont sortir sous une autre forme.

À noter que la transformation est unilatérale (on ne peut pas revenir aux informations d'origine !). Cela sert à authentifier une grande quantité d'informations, si une seule donnée est modifiée, le hash obtenu change complètement !

Pour saisir ce que sont les fameux calculs résolus par les mineurs, on peut voir l'intérieur d'un bloc de manière simplifiée :

schéma explication interieur bloc

Constitution d’un bloc

 

  • Version du bloc : elle sert surtout à ce que l'ordinateur comprenne l’intérieur du bloc. Cela lui indique comment les données sont structurées 🖥️
  • L’horodatage : on lui assimile le rôle de « montre du bloc », elle permet d’associer une transaction à une date et une heure bien précise ⏲️
  • Hash du bloc précédent : chaque bloc est hashé pour en certifier l’authenticité. Dans un bloc il y a à chaque fois le hash du bloc précédent qui lui-même contient le hash de celui d’avant jusqu’au bloc génésis (le premier). Cela permet d'empêcher toute modification sur les blocs précédents 🔙
  • Les transactions : elles sont organisées sous la forme d’un arbre de Merkle. C'est une technique qui va (pour faire simple) prendre des transactions, les assembler en un seul hash et les rassembler pour les re-hasher. Ainsi de suite jusqu'à obtenir à la fin un seul hash qui rassemble tout. Si une information est modifiée, le hash final l’est également 💰
  • Nonce (abréviation de Number used once) : ce dont on va parler juste en dessous ⬇️

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

« Nonce » rien de rien…

Comme on vient de le voir, un bloc est constitué de transactions, du hash du bloc précédent et de la « Nonce ». Mais à quoi correspond cette dernière ?

Lorsque les mineurs vont commencer à chercher leur bloc, ils auront en commun le hash du bloc précédent. Il sera contenu dans le bloc qu’ils souhaitent valider. Concernant les transactions, puisque les mineurs choisissent les transactions qui sont les plus rentables pour eux (avec le plus de fees), celles-ci seront prioritaires pour intégrer un bloc. Les mineurs vont donc devoir hasher le bloc actuel. Mais l’objectif du PoW est de les mettre en concurrence pour éviter que n’importe qui propose son bloc ce qui pourrait donner lieu à la fraude.

Alors, ils vont devoir trouver un hash pour le bloc qui commencera par un certain nombre de 0 dans le cas de Bitcoin. L’algorithme de Bitcoin ajuste automatiquement le nombre de 0 nécessaire pour valider le bloc. Ceci de sorte que le procédé dure environ 10 minutes. Si un mineur trouve un hash avec une quantité inférieure de 0 demandée par l’algorithme, il va réessayer. Tout sera valide lorsque le hash proposé est en accord avec la difficulté demandée.

Pour pouvoir modifier le hash, on comprend que les acteurs du réseau ne peuvent pas modifier ni les transactions ni le hash précédent. Il va alors modifier la Nonce jusqu’à ce que son hash soit correct.

C’est concrètement le sens du mot « Travail » dans le terme  « Preuve de Travail ». Notamment puisque leurs machines vont chercher la Nonce en utilisant la force brute (en réalisant un maximum d’essais jusqu’à ce qu’elles trouvent la solution) pour trouver ce nombre de 32 bits, lequel permettra de créer un hash valide pour le réseau en conservant les données fondamentales de la blockchain.

 

Aujourd’hui, d’autres méthodes de consensus peuvent apparaître comme plus scalable et moins énergivores comme le Proof of Stake (coucou Ethereum 2.0 👋). En effet, une transaction prend environ 10 minutes sur Bitcoin, ce qui peut être contraignant si l'on veut payer en BTC au quotidien.

D'autres cryptomonnaies ou technologies sont cependant en développement, par exemple Lightning Network qui est une surcouche de Bitcoin permettant de payer de manière instantanée avec des frais quasi inexistants ⚡

 

Cet article a été rédigé par Morgan Richaud de l'association blockchain étudiante KryptoSphere.

👉 Retrouvez les autres articles de KryptoSphere en cliquant ici.

Newsletter 🍞
Recevez un récapitulatif de l'actualité crypto chaque dimanche 👌 Et c'est tout.

A propos de l'auteur : KryptoSphere

twitter-soothsayerdatatwitter-soothsayerdatatwitter-soothsayerdata

KryptoSphere est la première association étudiante basée sur les cryptomonnaies et la blockchain. Elle est également spécialiste de l'intelligence artificielle et plus récemment de la réalité virtuelle, leur but étant de vulgariser ces concepts.
Tous les articles de KryptoSphere.

guest
0 Commentaires
Inline Feedbacks
View all comments