Qu'est-ce que le Proof of Work (PoW) ?
Accueil
Articles
Qu'est-ce que le Proof of Work (PoW) ?

Qu'est-ce que le Proof of Work (PoW) ?

Intermédiaire
Publié le Dec 6, 2018Mis à jour le Mar 8, 2024
10m

Introduction

Le Proof of Work (ou PoW) est un mécanisme permettant d'éviter les doubles dépenses. La plupart des cryptomonnaies utilisent cet algorithme de consensus. C'est ce que nous appelons une méthode de sécurisation du registre d'une cryptomonnaie.

Le Proof of Work est le premier algorithme de consensus a avoir été lancé et demeure l'un des plus utilisés. Il a été introduit par Satoshi Nakamoto dans le livre blanc de Bitcoin en 2008, mais sa technologie a été conçue bien avant. 

Le HashCash d'Adam Black est un exemple d'algorithme Proof of Work datant d'avant la création des cryptomonnaies. En demandant aux expéditeurs de réaliser un petit calcul informatique avant d'envoyer un e-mail, il serait facile de réduire le spam. Ce calcul ne coûterait pratiquement rien à un expéditeur légitime, contrairement à une personne envoyant des e-mails en masse.


Qu'est-ce que la double dépense ?

La double dépense se produit lorsque des fonds sont dépensés plusieurs fois. Ce terme est presque exclusivement utilisé dans le contexte d'argent numérique – il est en effet difficile de dépenser deux fois des pièces ou des billets. Lorsque vous payez un café, vous remettez de l'argent liquide au caissier qui sera ensuite verrouillé dans sa caisse. Vous ne pouvez pas vous rendre à un autre café et payer avec le même argent.

Néanmoins, dans le cas d'argent numérique, une telle possibilité existe. Dans votre vie, vous avez déjà dupliqué au moins un fichier informatique – il suffit d'un simple copier/coller. Vous avez ensuite peut être envoyé celui-ci par e-mail à dix, vingt ou même cinquante personnes. 

L'argent numérique n'étant au final que des données, il est nécessaire d'empêcher les gens de pouvoir copier et dépenser les mêmes unités à différents endroits. Le cas échant, la monnaie s'effondrera en un rien de temps. 

Pour en savoir plus sur la double dépense, n'hésitez pas à lire l'Explication de la « double dépense ».


Pourquoi le Proof of Work est-il nécessaire?

Si vous avez lu notre guide de la technologie blockchain, vous savez déjà que les utilisateurs diffusent leurs transactions sur le réseau. Ces transactions ne sont pas immédiatement considérées comme valides. Il faut d'abord les ajouter à la blockchain. 
La blockchain est une grande base de données que chaque utilisateur peut consulter, afin de vérifier si des fonds ont déjà été dépensés. Imaginez que vous et trois de vos amis ayez un bloc-notes. À chaque fois que vous voulez effectuer un transfert, peu importe son unité, vous devez l'écrire – Alice paye cinq unités à Bob, Bob paye deux unités à Carol, etc.
Il y a également un autre élément à mentionner : chaque fois que vous effectuez une transaction, vous devez faire référence à la transaction d'où proviennent les fonds. Ainsi, Si Bob a payé Carol avec deux unités, l'entrée sera la suivante : Bob paye deux unités à Carol provenant d'une transaction antérieure avec Alice.

Nous pouvons maintenant tracer les unités. Si Bob essaie d'effectuer une transaction avec les mêmes unités qu'il vient d'envoyer à Carol, tout le monde le saura. Le groupe refusera d'ajouter la transaction à son bloc-notes.

Cela pourrait surement fonctionner dans un petit groupe. Tout le monde se connait et se mettra probablement d'accord sur les amis devant ajouter des transactions au carnet de notes. Mais que se passe-t-il avec un groupe, cette fois-ci, de 10 000 personnes ? Le bloc-notes n'est pas adapté, personne ne voulant faire confiance à un étranger pour le gérer.

C'est là que le Proof of Work intervient. Celui-ci garantit que les utilisateurs ne dépensent pas de l'argent sur lequel ils n'ont aucun droit. En combinant la théorie des jeux avec la cryptographie, l'algorithme PoW permet à tous de mettre à jour la blockchain, en accord avec les règles du système.


Comment fonctionne le PoW ?

Notre bloc-notes ci-dessus est la blockchain. Néanmoins, au lieu d'ajouter les transactions une par une, nous les regroupons en blocs. Nous annonçons les transactions sur le réseau, puis les utilisateurs créant un bloc les incluront dans un bloc candidat. Les transactions ne seront considérées valides qu'une fois que leur bloc candidat deviendra un bloc confirmé, ce qui signifie qu'il a été ajouté à la blockchain.

L'ajout d'un bloc n'est cependant pas gratuit. Le Proof of Work nécessite qu'un miner (l'utilisateur créant le bloc) utilise une partie de ses ressources pour obtenir ce privilège. Cette ressource est la puissance de calcul. Celle-ci est utilisée pour hacher les données du bloc jusqu'à trouver la solution à un puzzle précis.
Hacher les données d'un bloc signifie passer celles-ci dans une fonction de hachage pour générer un hachage de bloc. Ce hachage de bloc est une « empreinte numérique » – elle identifie vos données d'entrée et est propre à chaque bloc.

Il est pratiquement impossible d'annuler le hachage d'un bloc pour obtenir les données en entrée. À l'inverse, en connaissant les données en entrée, il est très facile de confirmer que le hachage est correct. Il suffit de soumettre l'entrée à la fonction et de vérifier si la sortie est la même.

Dans le cas du Proof of Work vous devez fournir des données dont le hachage correspond à certaines conditions. Mais vous ne savez pas comment y arriver. Votre seule option est donc de passer vos données dans une fonction de hachage et de vérifier si le résultat correspond aux conditions. Si ce n'est pas le cas, vous devrez légèrement modifier vos données pour obtenir un hachage différent. Si vous changez ne serait-ce qu'un seul caractère dans vos données, vous obtiendrez un résultat totalement différent. Il n'y a donc aucun moyen de prédire le résultat.

Ainsi, pour pouvoir créer un bloc, il vous faudra jouer aux devinettes. En général, vous prenez des informations sur toutes les transactions que vous voulez ajouter et d'autres données importantes avant de hacher le tout. Votre ensemble de données ne changeant pas, vous devez ajouter une variable à l'ensemble. Sinon, vous obtiendrez toujours le même hachage en sortie. Cette variable est le nonce. Il s'agit d'un nombre changeant à chaque tentative, afin que vous obteniez un hachage différent à chaque fois. C'est ce que nous appelons le minage.

En résumé, le minage est le processus consistant à rassembler les données de la blockchain et à les hacher avec un nonce jusqu'à ce que vous trouviez un hachage particulier. Si vous trouvez un hachage remplissant les conditions fixées par le protocole, vous obtiendrez le droit de diffuser le nouveau bloc sur le réseau. Les autres participants du réseau mettront à jour leur blockchain pour y inclure le nouveau bloc.

Pour les cryptomonnaies les plus importantes, ces conditions sont extrêmement difficiles à remplir. Plus le taux de hachage est élevé sur un réseau, plus il est difficile de trouver le bon hachage. Cela permet de s'assurer que les blocs ne soient pas trouvés trop rapidement.

Comme vous pouvez l'imaginer, tenter de deviner des quantités massives de hachages est très couteux pour votre ordinateur. En plus d'user votre matériel informatique, vous gaspillez de l'électricité. C'est pour cette raison que le protocole vous récompensera avec des cryptomonnaies si vous trouvez le bon hachage.

Récapitulons ce que nous savons jusqu'à présent :

  • Participer au minage vous coutera beaucoup d'argent.
  • Vous serez récompensé si vous produisez un bloc valide.
  • En connaissant une entrée, un utilisateur peut facilement vérifier son hachage – les utilisateurs ne minant pas peuvent vérifier qu'un bloc est valide sans dépenser beaucoup de puissance de calcul.

Jusqu'à présent, tout va bien. Mais que se passe-t-il si vous essayez de tricher ? Qu'est-ce qui vous empêche d'introduire des transactions frauduleuses dans le bloc avant de produire un hachage valide ?

C'est là que la cryptographie à clé publique entre en jeu. Nous n'en parlerons pas en détail ici, mais vous pouvez toujours lire Qu'est-ce que la cryptographie à clé publique ? pour en savoir plus. En bref, nous utilisons quelques astuces cryptographiques astucieuses permettant à tout utilisateur de vérifier si quelqu'un a le droit de déplacer les fonds qu'il tente de dépenser.
Lorsque vous créez une transaction, vous la signez. Quiconque participe au réseau peut comparer votre signature avec votre clé publique pour vérifier si celles-ci correspondent. Ils vérifieront également si vous pouvez réellement dépenser vos fonds, mais également que la somme de vos entrées est supérieure à la somme de vos sorties (c'est-à-dire que vous ne dépensez pas plus que ce que vous avez).

Tout bloc contenant une transaction non valide sera automatiquement rejeté par le réseau. Tricher vous coutera beaucoup d'argent. En plus de gaspillez vos ressources, vous n'obtiendrez aucune récompense.

C'est là que réside la beauté du Proof of Work : l'honnêteté est plus rentable que la triche. Tout miner rationnel cherchera un retour sur investissement et agira de la manière lui garantissant des revenus.



Vous souhaitez vous lancer dans les cryptomonnaies ? Achetez du Bitcoin sur Binance !



Proof of Work vs Proof of Stake

Il existe de nombreux algorithmes de consensus, mais l'un des plus attendus est le Proof of Stake (PoS). Le concept date de 2011 et a déjà été implémenté dans certains protocoles plus petits. Mais il n'a pas encore été adopté par des grandes blockchains.
Dans le Proof of Stake, les miners sont remplacés par des validateurs. Il n'y a pas de minage et pas de course pour trouver le bon hachage. À la place, les utilisateurs sont sélectionnés au hasard – s'ils sont choisis, ils doivent proposer (ou « forger ») un bloc. Si le bloc est valide, ils recevront des récompenses composées des frais des transactions du bloc.
Tout le monde ne peu pas être sélectionné, – le protocole prend en effet en compte certains paramètres pour faire son choix. Pour pouvoir être sélectionné, les participants doivent verrouiller un stake, un montant prédéterminé de la monnaie native de la blockchain. Le stake fonctionne comme une caution : tout comme les défendeurs versent une grosse somme d'argent pour les dissuader de se soustraire au procès, les validateurs bloquent un stake pour ne pas tricher. S'ils agissent malhonnêtement, leur stake complet (ou une partie de celui-ci) sera pris.
Le Proof of Stake présente des avantages par rapport au Proof of Work. Le plus notable est la réduction de l'empreinte carbone. Comme il n'est pas nécessaire de disposer de fermes de minage de grande puissance pour le PoS, l'électricité consommée ne représente qu'une fraction de celle consommée en PoW. 

Cela dit, le PoS est loin d'avoir le palmarès du PoW. Bien qu'il puisse être perçu comme énergivore à cause du gaspillage, le minage est le seul algorithme de consensus ayant fait ses preuves à grande échelle. En un peu plus d'une décennie, celui-ci a sécurisé plusieurs milliers de milliards de dollars de transactions. Pour affirmer avec certitude que le PoS rivalise en sécurité avec le PoW, le staking doit être correctement testé à grande échelle. 


Pour conclure

Le Proof of Work était la solution originale au problème de double dépense et a depuis prouvé sa fiabilité et sa sécurité. Bitcoin a prouvé que nous n'avions pas besoin d'entités centralisées pour empêcher que des fonds ne soient dépensés plusieurs fois. Grâce à une utilisation intelligente de la cryptographie, des fonctions de hachage et de la théorie des jeux, les participants à un environnement décentralisé peuvent s'accorder sur l'état d'avancement d'une base de données financière.