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 Dec 12, 2022
8m

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.