IV.9.4 Proof of Work
IV.9.4.1 Définition
La prochaine méthode que nous allons ajouter à
notre structure de données blockchain est la méthode de preuve de
travail. Cette méthode est très importante et essentielle
à la technologie blockchain.
La méthode ProofOfWork prendra les deux
paramètres : currentBlockData et previousBlockHash. À partir de
ces données que nous fournissons, la méthode proofOfWork tentera
de générer un hachage spécifique. Ce hachage
spécifique dans notre exemple va être un hachage qui commence par
quatre zéros.
Essayons maintenant de comprendre comment nous pouvons le
faire. Comme nous l'avons appris dans les sections précédentes,
le hachage généré à partir de SHA256 est à
peu près aléatoire. Donc, si le hachage résultant est
à peu près aléatoire, comment pouvons-nous
générer un hachage à partir de notre bloc actuel qui
commence par quatre zéros ? La seule façon de le faire est par
essais et erreurs, ou en devinant et en vérifiant. Donc, cette fois,
nous allons incrémenter notre valeur nonce de 1. Si nous n'obtenons pas
à nouveau la valeur de hachage correcte, nous allons incrémenter
la valeur nonce et réessayer. Si cela ne fonctionne pas, nous
incrémentons à nouveau la valeur nonce et réessayons.
Ensuite, nous exécuterons continuellement cette méthode hashBlock
jusqu'à ce que nous trouvions un hachage qui commence par quatre
zéros. C'est ainsi que notre méthode proofOfWork fonctionnera.
Donc, si quelqu'un voulait retourner dans la blockchain et essayer de changer
un bloc ou les données de ce bloc - peut-être pour se donner plus
de Bitcoin - il faudrait faire une tonne de calculs et utiliser beaucoup
d'énergie pour créer le bon hacher. Dans la plupart des cas, il
n'est pas possible de revenir en arrière et d'essayer de recréer
un bloc déjà existant ou de réexploiter un bloc
déjà existant avec vos propres faux donnés. En plus de
cela, notre méthode hashBlock prend non seulement le currentBlockData,
mais aussi le précédent BlockHash. Cela signifie que tous les
blocs de la blockchain sont liés entre eux par leurs données.
Cela peut sembler écrasant un peu pour le moment, mais ne vous
inquiétez pas - nous allons construire la méthode ProofOfWork
ci-dessous, puis nous allons la tester avec de nombreux types de données
différents. Cela nous aidera à nous familiariser avec le
fonctionnement de la méthode ProofOfWork et la manière dont elle
sécurise la blockchain.
[123]
Chapitre IV Sécuriser un réseau bancaire avec la
blockchain
|