La preuve de travail (Proof of Work ou PoW en anglais) est un protocole informatique participant à l’algorithme de consensus utilisé dans certains systèmes de blockchain pour vérifier les transactions et ajouter de nouveaux blocs à la chaîne de blocs.
La Proof of Work (ou preuve de travail en français) est le plus ancien des protocoles de consensus blockchain. Sa première application moderne en 1996 ne concerne cependant pas Bitcoin, qui n’apparaît que bien plus tard, mais un anti-spam utilisé pour les boîtes mails. Cette preuve de travail utilise déjà l’algorithme SHA 256, à l’instar du protocole Bitcoin plus d’une décennie après. Aujourd’hui, la Proof of Work est connue comme le principal mécanisme de consensus des blockchains, en particulier celles de première génération. Son fonctionnement, bien que très sécurisé, n’est pas sans poser certains problèmes de gouvernance et de consommation énergétique aux cryptomonnaies.
Les spécificités de la Proof of Work
Une blockchain utilisant la Proof of Work fait appel à des mineurs pour vérifier les données entrantes sur le registre, valider l’authenticité des transactions et créer de nouveaux blocs. Pour récompenser l’ensemble des mineurs pour leur travail, la preuve de travail doit établir des règles permettant de choisir le mineur qui aura le droit d’émettre le prochain bloc de la chaîne.
Les règles du consensus de Proof of Work permettent donc de désigner un mineur auquel on accorde un droit d’écriture pour prolonger la chaîne de blocs. Elle doit, bien entendu, dissuader les éventuels utilisateurs malveillants pour protéger l’intégrité de la chaîne.
Fonctionnement de la Proof of Work
Concrètement, la preuve de travail consiste à demander aux mineurs de résoudre un problème mathématique complexe nécessitant une puissance de calcul informatique importante. Le premier à pouvoir résoudre ce problème sera également le prochain à créer un bloc sur la blockchain. Le mineur applique donc un algorithme de hachage à un même groupe de données jusqu’à trouver le résultat cherché.
Dans le protocole Bitcoin, un mineur effectue deux hashes SHA256 successifs sur un entête de bloc. Chaque nouveau hash dépend à la fois de la valeur du bloc et du nonce, un nombre aléatoire choisi par le logiciel de minage. Pour que le bloc soit valide, ce hash devra être inférieur à la difficulté de minage.
La difficulté de minage est réajustée par le réseau tous les 2016 blocs. Elle évolue pour réclamer une puissance de calcul de plus en plus gourmande aux mineurs, qui doivent multiplier les essais avant de parvenir à trouver le bon hash. Une course au matériel informatique qui a d’abord rendu le minage de Bitcoin obsolète sur CPU, avant de le rendre très complexe sur GPU, pour que les appareils de type ASIC deviennent finalement la seule solution réellement rentable pour un mineur particulier.
Avantages et inconvénients de la Proof of Work
La preuve de travail sécurise efficacement le réseau en rendant les tentatives de piratage très difficiles.
La Proof of Work pose néanmoins dans certains cas des problématiques énergétiques et environnementales, en réclamant une consommation d’énergie parfois drastique. Le passage aux ASIC pose également un important de problème de centralisation, laissant le champ libre aux fermes de minage et autres gros acteurs pour s’accaparer la plus grande partie de la puissance de calcul de réseau, et concentrer le réseau aux mains d’un petit nombre d’acteurs.
Certaines blockchains basées sur la preuve de travail, comme Monero, ont donc fait le choix d’un algorithme ASIC-résistant pour contrecarrer ces dérives. Mais il est souvent considéré que les consensus de Proof of Stake ou Delegated proof of Stake resteront, à terme, les plus viables.