Qu’est-ce que le « Proof of Work »

La preuve de travail (Proof of Work – PoW en anglais), décrit un système qui nécessite un effort non négligeable, mais réalisable afin de valider une tache. Le concept a été adapté par Hal Finney en 2004 grâce à l’idée de « preuve de travail réutilisable ». Suite à son introduction en 2009, le bitcoin est devenu la première application largement adoptée de l’idée de Finney (Finney a également été le destinataire de la première transaction en Bitcoin).

La « preuve de travail » constitue la base de nombreuses cryptomonnaies.

Comment fonctionne le « Proof of Work » (PoW)

Nous prendrons l’exemple du Bitcoin, mais le Proof of Work est également présent dans d’autres cryptomonnaies.

Le bitcoin est une monnaie numérique qui est soutenue par une sorte de grand livre de comptes distribué appelé Le bitcoin est une monnaie numérique qui est soutenue par une sorte de grand livre de comptes distribué appelé « blockchain ». Ce livre contient un enregistrement de toutes les transactions Bitcoin, disposées en « blocs » séquentiels, de sorte qu’aucun utilisateur n’est autorisé à dépenser deux fois ses fonds. Afin d’éviter toute altération, le registre est public, ou « distribué » et une version modifiée serait rapidement rejetée par les autres utilisateurs.

Le Hash

Dans la pratique, les utilisateurs détectent les altérations par des hashages, de longues chaînes de chiffres qui servent de preuve de travail. Si l’on fait passer un ensemble de données par une fonction de hashage (bitcoin utilise SHA-256), il ne générera jamais qu’un seul hash. Cependant, en raison de l' »effet d’avalanche », même une modification minime d’une partie des données d’origine entraînera un hashage totalement différent.

fonction-de-hash

Quelle que soit la taille de l’ensemble de données d’origine, le hash généré par une fonction donnée sera de la même longueur. Le hachage est une fonction à sens unique : il ne peut pas être utilisé pour obtenir les données d’origines, mais seulement pour vérifier que les données qui ont généré le hashage correspondent bien aux données originales.

Générer n’importe quel hash pour un ensemble de transactions bitcoin serait trivial pour un ordinateur moderne, donc pour transformer s’assurer d’une réelle « preuve de travail », le réseau bitcoin fixe un certain niveau de « difficulté ». Ce paramètre est ajusté de manière à ce qu’un nouveau bloc soit « miné » — c’est-à-dire ajouté à la Blockchain en générant un hashage valide — toutes les 10 minutes environ.

Exemple : le hachage pour le bloc #429818 est :

000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d

Ce bloc contient 2 012 transactions impliquant un peu plus de 1 000 bitcoins, ainsi que l’en-tête du bloc précédent. Si un utilisateur modifiait le montant d’une transaction ne serait-ce que d’un satoshi, le hachage qui en résulterait serait complètement différent et le réseau rejetterait la fraude.

Une fois qu’un hachage valide est trouvé, il est diffusé au réseau et le bloc est ajouté à la Blockchain.

Le Minage

Le minage est un processus très concurrentiel, mais il s’agit plus d’une loterie que d’une course. En moyenne, quelqu’un produira une « preuve de travail » acceptable toutes les dix minutes, mais on ne sait pas qui ce sera. Les mineurs se regroupent souvent en « pool » pour augmenter leurs chances de miner un nouveau bloc, et ils partagent ensuite la récompense entre eux.

Conclusion

Le « Proof of Work » rend extrêmement difficile la modification de la Blockchain, car une telle modification nécessiterait la modification de tous les blocs suivants. Il est également difficile pour un utilisateur ou un groupe d’utilisateurs de monopoliser la puissance de calcul du réseau, car les machines et la puissance nécessaires pour effectuer les fonctions de hashage sont extrêmement coûteuses.

Partager sur :