Preuve de travail expliquée: avantages et inconvénients du PoW

Les algorithmes de consensus font partie intégrante de toutes les technologies basées sur la blockchain car il n'y a pas d'unité d'autorité censée valider les transactions du réseau. Les algorithmes de consensus sont là pour assurer le fonctionnement décentralisé à l'épreuve des pannes du réseau. Nous ne pouvons pas sous-estimer la signification de l'algorithme de consensus appliqué pour chaque projet particulier basé sur la blockchain. Bitcoin utilise Proof of Work qui est également un algorithme de consensus original pour la blockchain Ethereum. Les gens se demandent si cet algorithme de consensus vaut la peine d'être utilisé ou vaut-il mieux utiliser d'autres options.

Les débuts de la preuve de travail

Le premier exemple de l'algorithme proche de Proof of Work a été introduit en 1993 par Cynthia Dward et Moni Naor qui ont trouvé une solution anti-spam dans l'article scientifique intitulé "On Memory-Bound Functions For Fighting Spam" . La méthode décrite dans cet article suppose que l'expéditeur inconnu du message doit dépenser un certain temps de sa puissance CPU (par exemple 10 secondes) afin de prouver que l'expéditeur n'est pas un spammeur.

Selon Dward et Naor, les spammeurs devant passer 10 secondes de temps processeur ne pourraient envoyer que jusqu'à 8 000 messages de spam par jour au lieu d'un nombre illimité de messages de spam qu'ils sont capables d'envoyer aujourd'hui. Il n'est pas difficile de vérifier une fonction derrière une preuve de travail, mais l'informatique est un vrai casse-tête pour les expéditeurs de spam.

Le terme Proof of Work a été inventé en 1999. Il est apparu dans l'article intitulé "Proofs of work and bread pudding protocoles" (les auteurs Markus Jakobsson et Ari Juels). La notion même de preuve de travail suppose que le "prouveur" doit fournir au "vérificateur" la preuve du travail informatique requis effectué dans le délai imparti. Le concept semblait assez intéressant, mais il n'a pas vu le jour jusqu'à la création de Bitcoin qui s'appuie fortement sur la preuve de travail afin de créer un réseau régi par un consensus distribué sans aucune confiance.

Bitcoin et preuve de travail

Une preuve de travail est un algorithme de consensus nécessitant un processus coûteux et chronophage de production d'une donnée dont l'exactitude peut être vérifiée sans effort. Le système de preuve de travail Hashcash a été créé comme un salut contre les robots collecteurs de mails, mais a fini par être un aliment de base du réseau Bitcoin.

Alors que les gens s'envoient des pièces, le grand livre reflète ces informations sous forme de blocs de transactions. La validation de ces transactions nécessite la participation d'un ou plusieurs ouvriers effectuant des travaux miniers.

Les personnes désireuses de valider des transactions (appelées «mineurs») doivent exécuter la procédure de preuve de travail afin d'atteindre leur objectif. Un travailleur est un nœud. La difficulté de ce travail (tâches) est flexible donc le nouveau bloc doit être généré toutes les 10 minutes. Comme le nombre de mineurs est incroyablement énorme et le laps de temps de 10 minutes est relativement court, il est extrêmement difficile de prédire quel travailleur (mineur) sera celui qui générera un nouveau bloc (en vérifiant toutes les transactions dans le bloc).

Le mécanisme de preuve de travail

Afin de générer un nouveau bloc, le mineur doit fournir le hachage correct pour le bloc de transactions. Pour ce faire, le mineur doit comprendre la fonction nonce et hash où un nonce est un nombre aléatoire qui n'est utilisé qu'une seule fois (le réseau Bitcoin utilise des nombres entiers compris entre zéro et 42949667296 comme nonce), et le hachage est une chaîne de 64 symboles (un mélange de chiffres et lettres) contenant les données chiffrées.

Les blocs dans la blockchain ont des hachages individuels (un tel hachage est appelé "id"). Chaque hachage est créé à la suite d'une vérification réussie du bloc. Pour vérifier le bloc suivant, le mineur ajoute le dernier hachage au bloc actuel, créant un énorme bloc de texte. Ensuite, un nonce (un nombre aléatoire) est ajouté à la fin du bloc de texte. Ce texte comprend le hachage de bloc précédent, les nouvelles transactions en attente de vérification et le nonce. C'est là que le calcul commence. Pendant les calculs, le travailleur modifie le nombre aléatoire jusqu'au moment où le nombre correct de zéros devant une chaîne est défini.

La difficulté de cette tâche ne doit pas être sous-estimée. Comme il a été mentionné précédemment, la difficulté est réglée au niveau où, quel que soit le nombre de mineurs et la puissance de leur équipement, chaque problème n'est résolu qu'une fois toutes les 10 minutes. Pour ce faire, l'ordinateur doit générer des millions de hachages possibles chaque seconde.

Pour vérifier si un nœud a exécuté correctement le travail requis, celui-ci aura besoin d'une chaîne qui est apparue à la suite de la validation et d'un numéro nonce. L'application de la fonction sur ces deux valeurs donnera le nombre de zéros devant la chaîne. Si ce nombre est correct, le travail a été bien fait. Si quelqu'un a de mauvaises intentions et essaie d'ajouter des données invalides à la chaîne, cela sera arrêté par les autres participants de l'exploitation minière. Tout au long de l'échelle de 10 ans, ce système a réussi à protéger la blockchain Bitcoin. Ce qui rend l'algorithme SHA-256 spécial, c'est que personne ne peut changer secrètement un seul bit d'information dans le bloc. C'est pourquoi ce registre est appelé immuable.

Contre la preuve de travail

Nous ne pouvons pas convenir que la consommation incroyable d'électricité requise par PoW n'est qu'un gaspillage de ressources (de nombreux opposants à PoW font de telles affirmations), car nous avons déjà expliqué que cet algorithme de consensus est très efficace lorsqu'il s'agit de protéger la blockchain. Néanmoins, nous ne pouvons pas ignorer ce fait que Proof of Work dépense d'énormes quantités d'énergie afin de deviner le nombre de zéros lors de la validation des transactions. Actuellement, le réseau Bitcoin consomme trois fois moins d'énergie que le système monétaire traditionnel , mais si nous imaginons que Bitcoin est adopté en masse, la consommation d'énergie augmentera considérablement. Quoi qu'il en soit, le Bitcoin ne remplace pas les banques traditionnelles, donc la consommation augmente grâce au Bitcoin.

L'autre problème est que les personnes utilisant leur CPU, GPU ou ASIC pour l'exploitation minière ont trop peu de chances de trouver un nouveau bloc et d'obtenir une récompense car elles doivent rivaliser avec les pools d'extraction en utilisant des dizaines de milliers d'appareils à exploiter. Environ la moitié de l'exploitation minière a lieu dans le groupe relativement petit de bassins miniers. Il y a un risque que si les propriétaires de ces pools décident de s'unir et de gouverner la blockchain Bitcoin en utilisant leur pouvoir de hachage, ils pourraient le faire. Une autorité détenant plus de 50% du pouvoir de hachage peut en fait gouverner la blockchain. Ces intrusions sont appelées 51% d'attaque.

Un autre fait notable est que 70% de la puissance de hachage provient de la Chine car ce pays dispose d'une électricité bon marché. Cela donne à ce pays un avantage dans l'extraction de Bitcoin et diminue le niveau de décentralisation.

Conclusion

La preuve de travail parvient en fait à protéger le réseau contre les mauvais acteurs, bien que le coût de cet algorithme de consensus nous fasse penser aux autres façons possibles de valider les transactions et de maintenir le réseau fonctionne correctement et en douceur. Pas étonnant qu'il existe déjà plusieurs autres algorithmes de consensus appliqués à différents projets de blockchain. Le concurrent le plus mis en avant de PoW est Proof of Stake.