Les bases du Proof of Work

Le concept de « preuve de travail » a en effet été introduit avant la popularisation des blockchains et n’était même pas utilisé dans une blockchain au début. En 1992, Dwork et Naor ont proposé l’idée d’une preuve de travail pour lutter contre le courrier indésirable, et cette idée a été développée plus avant par Adam Back dans l’algorithme Hashcash.

L’algorithme exigeait que chaque expéditeur de courrier effectue une tâche cryptographique en dépensant du CPU avant d’envoyer un message. De cette façon, l’envoi de courrier indésirable qui implique l’envoi d’un grand nombre de messages à différentes adresses devient assez coûteux pour les spammeurs.

En 2009, Satoshi Nakamoto – le mystérieux créateur de Bitcoin – a publié un livre blanc où la preuve de travail était combinée à un mécanisme d’incitations économiques pour construire un moyen d’assurer l’intégrité de la blockchain Bitcoin et de préserver l’ordre dans les productions de nouveaux blocs. Ce fut le début de la plus grande crypto-monnaie à ce jour – Bitcoin. Satoshi a fait référence à Hashcash comme base du protocole de Bitcoin. Dans Bitcoin, les participants au réseau sont tenus de résoudre des problèmes cryptographiques pour pouvoir proposer de nouveaux blocs à la blockchain. Depuis lors, le travail de Satoshi a inspiré un certain nombre d’autres à développer leurs propres crypto-monnaies, et la preuve de travail est devenue l’un des éléments les plus utilisés des blockchains modernes.

Comment fonctionne POW ?

En général, PoW est comme une course entre mineurs pour résoudre un puzzle cryptographique ; en résolvant le puzzle, ils gagnent la chance d’ajouter le bloc à la chaîne et sont récompensés.Les mineurs collectent toutes les transactions en attente du réseau décentralisé et se font concurrence pour résoudre le casse-tête. Celui qui résout le puzzle générera un bloc et poussera ce bloc dans le réseau pour vérification à partir d’autres nœuds, après quoi, les autres nœuds pourront ajouter ce bloc à leur propre copie de la blockchain :

Le casse-tête cryptographique que les mineurs tentent de résoudre consiste à identifier la valeur du nonce. Un nonce est un attribut dans la structure d’en-tête de bloc. Au début, chaque mineur devine un nombre pour commencer, en vérifiant si la valeur de hachage résultante est inférieure à la cible spécifique à la blockchain. Bitcoin utilise pour cela l’algorithme SHA-256. SHA-256 génère un nombre de longueur fixe. Chaque nombre entre 0 et 2^32 a la même chance de résoudre le puzzle, donc une approche pratique consiste à parcourir de 0 à 2^32 jusqu’à ce qu’un nombre puisse répondre aux critères, 

Une fois qu’un mineur trouve le nonce, les résultats, y compris la valeur de hachage du bloc précédent ; la collecte des transactions ; la racine Merkle de toutes les transactions du bloc ; et le nonce sont diffusés sur le réseau pour vérification. Une fois notifiés, les autres nœuds du réseau vérifient automatiquement si les résultats sont valides. Si les résultats sont valides, ils ajoutent le bloc à leurs copies de la blockchain, arrêtent le travail de minage en cours et passent au bloc suivant.

Objectif et difficulté

Une cible est un numéro de 256 bits spécifique à la blockchain que le réseau configure pour tous les mineurs. Le hachage SHA-256 de l’en-tête d’un bloc (le nonce plus le reste de l’en-tête du bloc) doit être inférieur ou égal à la cible actuelle pour que le bloc soit accepté par le réseau.

La difficulté d’un puzzle cryptographique dépend du nombre de zéros non significatifs dans la cible. Plus la cible est basse, plus il est difficile de générer un bloc. L’ajout de zéros non significatifs dans le nombre cible augmentera la difficulté de trouver un tel nonce de façon exponentielle. Comme vous pouvez l’imaginer, plus le niveau de difficulté est élevé, plus il sera difficile d’évaluer le nonce. L’ajout d’un zéro non significatif dans la cible réduira de 50 % les chances de trouver le nonce. La difficulté est décidée par le réseau blockchain lui-même. La règle de base est de régler la difficulté proportionnellement à l’effort total sur le réseau. Si le nombre de nœuds mineurs double, la difficulté doublera également. La difficulté est ajustée périodiquement pour maintenir le temps de blocage autour de l’heure cible. En Bitcoin, c’est 10 minutes.

Incitatifs et récompenses

Le gagnant du puzzle cryptographique doit dépenser une énergie énorme et un temps CPU crucial pour trouver le nonce et gagner la chance de créer de nouveaux blocs dans la blockchain. La récompense pour de telles actions dépend de la blockchain elle-même. Dans une blockchain Bitcoin, le gagnant sera récompensé par Bitcoin, la crypto-monnaie de la blockchain Bitcoin.

Le consensus PoW est un mécanisme simple et pourtant fiable pour maintenir l’état de la blockchain. Il est simple à mettre en œuvre. Il s’agit d’un système démocratique basé sur la loterie qui vous permet de participer au jeu de minage et d’obtenir les récompenses, où chaque nœud peut se joindre et une puissance CPU plus élevée peut ne pas se traduire par des récompenses plus élevées. Actuellement, le mineur gagnant est récompensé par 12,5 BTC pour chaque bloc créé dans la blockchain Bitcoin.

Problèmes de double dépense

L’intention initiale de Satoshi en utilisant un mécanisme de PoW est de résoudre les problèmes de double dépense et d’assurer l’intégrité de l’état global du réseau de blockchain Bitcoin. Disons qu’Alice envoie 10 BTC à Bob, et en même temps ou plus tard, elle paie à Catherine les mêmes 10 BTC. On pourrait se retrouver avec les trois situations suivantes :

  • La première transaction passe par le PoW et est ajoutée à la blockchain lorsque la deuxième transaction est soumise. Dans ce cas, le second sera rejeté lorsque les mineurs le retireront du pool de transactions et le valideront par rapport à tous les blocs parents.
  • Les deux transactions sont soumises simultanément et toutes deux entrent dans le pool de transactions non confirmé. Dans ce cas, seule la première transaction reçoit une confirmation et sera ajoutée dans le bloc suivant. Sa deuxième transaction ne sera pas confirmée selon les règles de validation.
  • Les deux sont confirmés et ajoutés dans des blocs concurrents. Cela se produit lorsque les mineurs prennent les deux transactions du pool et les placent dans des blocs concurrents. Les blocs concurrents forment un fork temporaire sur la blockchain. Quelle que soit la transaction entrant dans la chaîne la plus longue, elle sera considérée comme valide et dépensée, et l’autre dans le bloc de la chaîne courte sera recyclée. Lorsqu’il sera retraité, il sera rejeté car il est déjà dépensé. Dans ce cas, cela peut prendre quelques blocs pour que l’autre soit reconnu comme le double dépensé.

Les avantages et inconvénients

Les principaux avantages sont la défense contre les attaques DoS et le faible impact de l’enjeu sur les possibilités de minage.

Défense contre les attaques DoS.  PoW impose certaines limites aux actions dans le réseau. Ils ont besoin de beaucoup d’efforts pour être exécutés. Une attaque efficace nécessite beaucoup de puissance de calcul et beaucoup de temps pour faire les calculs. Par conséquent, l’attaque est possible mais en quelque sorte inutile car les coûts sont trop élevés.

Possibilités minières. Peu importe combien d’argent vous avez dans votre portefeuille . Ce qui compte, c’est d’avoir une grande puissance de calcul pour résoudre les énigmes et former de nouveaux blocs. Ainsi, les détenteurs d’énormes sommes d’argent ne sont pas en charge de prendre des décisions pour l’ensemble du réseau.

Les principaux inconvénients sont des dépenses énormes, une « inutilité » des calculs, et une attaque des 51 % .

Dépenses énormes . L’exploitation minière nécessite un matériel informatique hautement spécialisé pour exécuter les algorithmes complexes. Les coûts sont ingérables L’exploitation minière devient disponible uniquement pour les pools miniers spéciaux. Ces machines spécialisées consomment de grandes quantités d’ énergie pour fonctionner, ce qui augmente les coûts. Des coûts importants menacent la centralisation du système puisqu’il en profite. C’est facile à voir dans le cas du Bitcoin.

« Inutilité » des calculs . Les mineurs font beaucoup de travail pour générer des blocs et consomment beaucoup d’énergie. Cependant, leurs calculs ne sont applicables nulle part ailleurs. Ils garantissent la sécurité du réseau mais ne peuvent être appliqués aux affaires, à la science ou à tout autre domaine.

Attaque des 51 %

Une attaque à 51%, ou attaque majoritaire, est un cas où un utilisateur ou un groupe d’utilisateurs contrôle la majorité de la puissance de minage.

Les attaquants disposent de suffisamment de puissance pour contrôler la plupart des événements du réseau.

Ils peuvent monopoliser la génération de nouveaux blocs et recevoir des récompenses car ils sont capables d’empêcher d’autres mineurs de terminer des blocs.

Ils peuvent annuler des transactions.

Supposons qu’Alice ait envoyé de l’argent à Bob en utilisant la Blockchain. Alice est impliquée dans l’affaire de l’attaque à 51%, pas Bob. Cette transaction est placée dans le bloc. Mais les assaillants ne laissent pas l’argent être transféré. Il y a une fourche qui se passe dans la chaîne.

De plus, les mineurs rejoignent l’une des branches. Et comme ils ont la majorité de la puissance de calcul , leur chaîne contient plus de blocs.

Dans le réseau, une branche qui dure plus longtemps reste et une plus courte est rejetée. La transaction entre Alice et Bob n’a donc pas lieu. Bob ne reçoit pas l’argent.

En suivant ces étapes, les attaquants peuvent inverser les transactions.

51 pour cent d’attaque n’est pas une option rentable. Il nécessite une énorme quantité de puissance minière . Et une fois qu’il est exposé au public, le réseau est considéré comme compromis, ce qui conduit à l’exode des utilisateurs. Cela fera inévitablement baisser le prix de la crypto-monnaie. Tous par conséquent, les fonds perdent de leur valeur.

Conclusion

La preuve de travail est un mécanisme de consensus utilisé pour lutter contre les doubles dépenses, un problème qui permet aux utilisateurs de dépenser plusieurs fois la même crypto-monnaie. Satoshi Nakamoto a implémenté PoW dans Bitcoin via de nombreux processus, notamment l’extraction, le hachage et l’horodatage.

Tous ces processus combinés permettent au registre Bitcoin de rester décentralisé, distribué et public. Outre le PoW, nous avons également un nouveau mécanisme de consensus appelé Proof of Stake qui exclut complètement la notion de minage.

Le PoS est-il meilleur que le PoW ? En théorie, oui. Cependant, cela doit encore être prouvé dans la pratique à travers un grand réseau de blockchain qui dessert des milliers d’utilisateurs. Ethereum 2.0 est la première tentative sérieuse que font les développeurs. Reste à savoir si le projet réussit à utiliser le PoS. Jusque-là, PoW reste la forme supérieure d’organisation des réseaux blockchain.