kraloz - Fotolia
Blockchain : bien comprendre le fonctionnement de la « Preuve de Travail »
La preuve de travail (Proof of Work) est une partie mal comprise de la Blockchain. On la confond souvent avec le consensus - dont elle n'est qu'une partie. Voici tous les éléments pour en saisir les subtilités. Et ne plus la qualifier, comme trop souvent, de « puzzle mathématique ».
Un principe de base de la blockchain est de distribuer (en fait de dupliquer) un registre (l'enregistrement des données) entre plusieurs acteurs. Le fait d'en avoir plusieurs exemplaires identiques et des mécanismes de contrôle permet de se passer d'un organe central (le tiers de confiance). A la place, c'est la communauté qui valide de concert les transactions et qui se met d'accord (le consensus) sur une version de référence du registre.
Plus exactement, c'est un membre de la communauté (appelé « mineur » dans certaines blockchains) qui fait le travail puis qui le soumet à la validation des autres membres. Imaginez dix personnes qui ne se connaissent pas dans une pièce : on en choisit une - par un algorithme connu de tous - qui vérifie les transactions puis qui les écrit dans le registre. Une fois qu'elle a terminé, elle soumet son travail pour relecture aux neuf autres.
Choisir le « mineur »
Cette méthode totalement décentralisée pose immédiatement une question : qui va, et comment, choisir le membre (le noeud du réseau blockchain) devant valider les transactions en cours et remplacer le tiers de confiance ?
C'est là qu'entrent en jeu les fameuses « preuves de ». Elles permettent de déterminer quelle personne dans la pièce va être en charge d’écrire les transactions dans le registre partagé.
La plus célèbre et la plus répandue des « preuves » dans les Blockchains publiques (dont la blockchain Bitcoin) est la « preuve de travail » (ou PoW pour « Proof of Work »).
Contrairement à ce qu’on lit beaucoup, la PoW ne consiste pas à vérifier qu’une transaction est valable (c'est à dire à vérifier que le débiteur possède bien les fonds en analysant les lignes précédentes du registre). Cette vérification fait partie du « consensus » mais elle ne demande que peu de ressources de calcul et peut être effectuée par n’importe quel ordinateur du marché.
La PoW est une autre partie de la validation, ce qui fait qu'on la confond souvent avec l’étape de vérification. Mais, à la différence de celle-ci, la PoW est VOLONTAIREMENT très gourmande en ressource.
Consensus Bitcoin (validation) = vérification des transactions (simple) + PoW (compliqué)
« La validation des transactions est une étape importante du fonctionnement des Blockchains puisque c'est le processus qui conduit à écrire les transactions dans le registre distribué. Il faut donc que cette opération soit sûre et fiable », explique Damien Lecan de Space Elephant. « Quoi de mieux que de la rendre extrêmement complexe et difficile pour décourager les fraudeurs ou ceux qui voudraient nuire ? ».
La PoW a donc pour but de rendre l'écriture dans le registre (la création d'un bloc) artificiellement complexe et couteuse en énergie.
« C'est bien le but de la PoW : avoir une opération à la fois sûre, extrêmement difficile et complexe, qui permette de valider des transactions et de les enregistrer dans des blocs », confirme le CTO.
Une loterie plus qu'un puzzle
On lit souvent que la PoW est un « puzzle mathématique complexe ». Pourquoi pas. Mais la métaphore loupe l'essentiel.
Rappelons qu'un bloc de la blockchain se compose de plusieurs transactions sélectionnées par le mineur, de métadonnées comme l’horodatage, la signature du mineur, du hash du bloc précédent et du hash de toutes ces informations - hash qui, lui-même, sera repris dans le bloc suivant (à chaque bloc N, on fait un hash du hash N-1, d'où la notion de chaîne).
« Concrètement, la PoW Bitcoin consiste à calculer le "hash" du bloc que le mineur souhaite valider [...]. Ce "hash" est calculé à partir des données du bloc elles-mêmes et d'un aléa ("nonce") qui fait varier du tout au tout le "hash" de ce bloc parmi 232 possibilités », précise Damien Lecan. « La complexité vient du fait qu'il faut que ce "hash" soit inférieur à une certaine valeur (la "cible"). Concrètement, cela équivaut à en trouver un qui commence par plusieurs "0", ce qui est extrêmement peu probable. Pour y arriver, il faut donc calculer beaucoup de "hashs" en faisant varier le "nonce" pour en trouver un compatible avec les exigences ».
Trouver le bon “nonce” revient à faire un concours de force brute - plus que de résoudre un puzzle.
Un puzzle induit l'idée qu'il existe des indices, des formes à observer et des méthodes meilleures que d'autres pour les résoudre. Alors que la seule manière d'augmenter ses chances de trouver un hash avant les autres mineurs - et donc d'être choisi, et donc d'être rémunéré - est d'augmenter sa puissance de calcul. Mais même en étant le plus puissant, un mineur n'est pas assuré d'être le premier à trouver le bon « nonce ».
« La PoW est une loterie payante », tranche le CTO. « Il s'agit d'être le premier à calculer un nombre parmi une quantité phénoménale, dans un délai court et qui satisfait à un critère donné. Avoir plus de puissance permet de générer des hashs plus vite et d'augmenter ses chances de trouver un résultat le premier. Mais il y a une forte composante aléatoire dans le fait de trouver le bon "hash". [...] Par analogie, vous pouvez acheter beaucoup de tickets de Loto pour augmenter vos chances de gagner à chaque tirage », mais sans être sûr de gagner le gros lot.
Les défauts de ses qualités
La PoW génère une dépense énergétique énorme (on la compare à celle de pays entiers). Il faut comprendre que lors de la création d'un bloc, ce sont tous les noeuds (N) ayant choisi d’être « mineurs » de la blockchain qui font tourner leurs fermes de serveurs et de cartes graphiques spécialisées à pleine puissance en se lançant dans le concours de force brute. Un bloc est le fruit du travail d'un mineur gagnant ET de celui des N-1 mineurs perdants. D'où un gâchis énorme de ressources.
Autre défaut, la PoW ralentit la création des blocs. Le ralentissement a d'ailleurs été le premier objectif de cette technique qui a été utilisée initialement dans un tout autre contexte, pour ralentir légèrement l'envoi de mails et lutter ainsi contre l'envoi de spam.
« Cette lenteur est toute relative : un bloc en moyenne toutes les 10 minutes pour Bitcoin », tempère néanmoins Damien Lecan. « Son créateur a estimé à l'époque, en 2009, que c'était un bon paramétrage d'un point de vue fonctionnel et technique ».
Dans le cadre du Bitcoin, la complexité (et donc la « cible » abordée précédemment) est de ce fait réévaluée régulièrement en fonction de cette vitesse de création des blocs. Si la puissance des mineurs s'accroit, la complexité s'adapte en conséquence pour les ralentir et maintenir le délai historique de 10 minutes entre deux blocs.
Un coup de génie
Malgré ces deux défauts, la PoW est un vrai coup de génie. « Elle a permis de démontrer que le principe des Blockchains pouvait fonctionner à l'échelle mondiale », se réjouit Damien Lecan.
C'est en effet elle qui a permis de rendre trop couteuses les tentatives de falsification massive, tout en créant une motivation pour les mineurs (en rémunérant le vainqueur) qui les rendait vertueux (celui qui possède des bitcoins n'a aucun intérêt à faire chuter son cours en tentant de falsifier son registre).
Certes, cette idée de la PoW au coeur de la blockchain « 1.0 » montre aujourd'hui ses limites. Mais elle fonctionne depuis presque dix ans, jusqu’à présent sans faille.
« Des solutions techniques existent, certaines démontrées dans d'autres Blockchains ou dans des prototypes, et permettraient de repousser les limites de Bitcoin ». Suffisamment ? « Personne ne peut vraiment le savoir », admet le CTO de Space Elephant. « Il y aura sûrement de nouvelles limites, puis de nouvelles innovations technologiques ».
Blockchain 1.0, Blockchain 2.0, Blockchain 3.0
Plutôt que d'améliorer la Preuve de Travail, d'autres « preuves de » sont aujourd'hui implémentées dans la deuxième génération de blockchains. On citera la Preuve d'Autorité (le mineur tourne de noeud en noeuds, bloc après bloc), la preuve d'enjeux (les noeuds qui possèdent le plus d'actifs sont prioritaires), ou encore le service de notaire (comme dans Corda). Mais il en existe des dizaines d’autres.
Ces consensus alternatifs sont par exemple utilisés dans les blockchains privées - où les acteurs se connaissent en amont et où les bénéfices de la PoW n'ont que peu de sens au regard de ses contraintes.
Et déjà la blockchain 3.0 commence à pointer le bout de son maillon. « Les prochaines Blockchains devraient embarquer une gouvernance "on-chain", c'est à dire intégrée nativement dans le fonctionnement de la Blockchain elle-même », prévoit Damien Lecan en pensant notamment au français Tezos. « Mais on attend qu'elles percent vraiment ». Patience est mère de vertu. Surtout avec les technologies jeunes.
Pour approfondir sur Base de données
-
Quelle différence entre une blockchain et les technologies de registres distribués (DLT) ?
-
Cinq idées fausses sur la blockchain (qui ne doivent pas vous empêcher de la regarder)
-
Blockchain : quelles différences entre la Preuve de travail et la Preuve d’enjeu ?
-
Francine met la blockchain au service de la transparence alimentaire