Preuve de travail

Que signifie « preuve de travail » ?

La preuve de travail décrit un système qui nécessite un effort non négligeable mais réalisable afin de dissuader les utilisations frivoles ou malveillantes de la puissance de calcul, comme l’envoi de courriers électroniques non sollicités ou le lancement d’attaques par déni de service. Le concept a été adapté à l’argent 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 de bitcoin). La preuve de travail constitue également la base de nombreuses autres cryptocurrences.

Preuve de travail expliquée

Cette explication portera sur la preuve du travail tel qu’il fonctionne dans le réseau bitcoin. Le bitcoin est une monnaie numérique qui est soutenue par une sorte de grand livre distribué appelé « blockchain ». Ce livre contient un enregistrement de toutes les transactions de bitcoin, disposées en « blocs » séquentiels, de sorte qu’aucun utilisateur n’est autorisé à dépenser deux fois ses avoirs. Afin d’éviter toute altération, le registre est public, ou « distribué » ; une version modifiée serait rapidement rejetée par les autres utilisateurs.

Dans la pratique, les utilisateurs détectent les altérations par le biais de hachages, de longues chaînes de chiffres qui servent de preuve de travail. Si l’on fait passer un ensemble de données donné par une fonction de hachage (bitcoin utilise SHA-256), il ne générera jamais qu’un seul hachage. Cependant, en raison de l' »effet d’avalanche », même une modification minime d’une partie des données d’origine entraînera un hachage totalement méconnaissable. Quelle que soit la taille de l’ensemble de données d’origine, le hachage 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 originales, mais seulement pour vérifier que les données qui ont généré le hachage correspondent aux données originales.

vous pouvez intéressé:  A la définition du par

Générer n’importe quel hash pour un ensemble de transactions bitcoin serait trivial pour un ordinateur moderne, donc pour transformer le processus en « 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é » – ajouté à la chaîne de blocs en générant un hachage valide – toutes les 10 minutes environ. Pour définir le niveau de difficulté, il faut établir un « objectif » pour le hachage : plus l’objectif est bas, plus le nombre de hachages valides est réduit et plus il est difficile d’en générer un. En pratique, cela signifie un hachage qui commence par une longue chaîne de zéros : le hachage pour le bloc #429818, par exemple, est 000000000000000004dd3426129639082239efd583b5273b1bd75e8d78ff2e8d. Ce bloc contient 2 012 transactions impliquant un peu plus de 1 000 bitcoin, ainsi que l’en-tête du bloc précédent. Si un utilisateur modifiait le montant d’une transaction de 0,0001 bitcoin, le hachage qui en résulterait serait méconnaissable et le réseau rejetterait la fraude.

Puisqu’un ensemble de données donné ne peut générer qu’un seul hachage, comment les mineurs s’assurent-ils de générer un hachage inférieur à l’objectif ? Ils modifient l’entrée en ajoutant un entier, appelé nonce (« nombre utilisé une fois »). Une fois qu’un hachage valide est trouvé, il est diffusé au réseau et le bloc est ajouté à la chaîne de blocs.

L’exploitation minière est un processus 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 pour augmenter leurs chances d’obtenir des blocs miniers, ce qui génère des frais de transaction et, pendant un temps limité, une récompense pour les bitcoins nouvellement créés.

vous pouvez intéressé:  Définition de la MSA d'Archer

Les preuves de travail rendent extrêmement difficile la modification d’un aspect quelconque de la chaîne de blocs, car une telle modification nécessiterait le remaniement 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 hachage sont coûteuses.

Retour haut de page