Cet article fait partie du dossier-série qui a pour but de présenter les principaux algorithmes de consensus utilisés dans la blockchain : le Proof of Work (preuve de travail), le Proof of Stake (preuve d’enjeu) et le Delegated Proof of Stake (preuve d’enjeu déléguée).
Pour bien comprendre les propos qui suivent, lisez l’introduction à ce dossier, Les algorithmes de consensus dans la blockchain, et l’article Comprendre le Proof of Work (Preuve de travail).

Le PoW et le PoS étant les algorithmes les plus connus, on les compare (voire les oppose) souvent.

Le Proof of Stake (PoS), l’algorithme de consensus écolo ?

Alors que le Proof of Work (PoW) implique une compétition entre les noeuds, le Proof of Stake (PoS) fonctionne très différemment : bienvenue dans l’algorithme de consensus basé sur la loterie !

Cela peut paraître surprenant mais dans le PoS, c’est pourtant bien un tirage au sort qui détermine quel noeud aura le droit de créer le nouveau bloc de la blockchain. Ce processus s’appelle le “mintage”, à ne pas confondre avec le “minage” dans le PoW.

Fonctionnement du Proof of Stake (PoS)

Pour participer à la loterie, ce n’est évidemment pas gratuit. Dans chaque algorithme de consensus, les noeuds doivent « payer » pour participer. Dans le cadre du Proof of Work, il faut payer le matériel nécessaire au minage, ce qui représente un investissement certain.

Pour le PoS, il faut simplement posséder des monnaies de la blockchain en question, qui sont bloquées et servent de caution.

Plus simplement, si vous possédez 100 unités d’une crypto-monnaie fonctionnant avec le PoS, vous pouvez décider de bloquer 50 unités, qui vous permettent d’être éligible à la loterie.

Évidemment, plus vous bloquez un nombre conséquent d’unités, plus vous avez de chances d’être tiré au sort. Autrement dit, quelqu’un qui met de côté 1000 unités a 1000 fois plus de chances d’être tiré au sort que quelqu’un qui ne bloque qu’une seule unité de la crypto-monnaie.

Les avantages du Proof of Stake

En opposition au grand problème rencontré par le PoW, le premier avantage du PoS est que l’énergie consommée pour valider les blocs dans la blockchain est bien moindre par rapport au PoW. En effet, ici il ne s’agit plus d’une compétition où celui qui achète le meilleur équipement informatique rafle la récompense.
Il suffit de posséder des unités de crypto-monnaie et de les bloquer, pour ensuite être tiré au sort. Pas besoin de faire tourner des machines surpuissantes monotâches qui consomment beaucoup d’énergie.

Le second avantage du PoS est également de taille : il limite le risque de centralisation. Dans le PoW, si vous investissez 10 fois plus que quelqu’un d’autre dans un ordinateur pour miner, vous aurez au moins 10 fois plus de puissance de calcul que lui. Pourquoi “au moins” ? Parce qu’il existe des économies d’échelle. C’est comme lorsqu’au lieu d’acheter vos yaourt par 4, vous décider de dépenser deux fois plus d’argent et les prendre par 8 car vous en avez deux en bonus. En dépensant 2 fois plus vous n’avez pas obtenu 8 mais 10 yaourts.
Dans le PoW ce phénomène est le même. Pour 10 fois plus d’investissement qu’un autre mineur vous allez potentiellement avoir 13 fois plus de puissance de calcul.

Cela favorise la centralisation puisque les plus gros mineurs peuvent investir davantage et accumuler une puissance de calcul de plus en plus importante par rapport à la concurrence.

Ici, l’avantage du PoS vient simplement du fait que posséder 10 fois plus d’unités de cryptomonnaies qu’un autre minter vous octroie exactement 10 fois plus de chances d’être tiré au sort.

Enfin, le troisième avantage du PoS réside dans les unités de cryptomonnaies bloquées, nécessaires pour participer à la loterie. Comme elles servent de caution, il est possible de mettre en place des systèmes de pénalité dans le cas où le noeud n’agirait pas dans l’intérêt de la blockchain.

Cela permet de penser à différentes formes de PoS (en fonction des pénalités mises en place). Ces pénalités servent en fait simplement à s’assurer que les minters se comportent de la manière qui est optimale pour l’efficacité de la blockchain, ce qui est le but final des algorithmes de consensus.

Les limites du Proof of Stake

La principale faille du Proof of Stake est le « Nothing at Stake » (« rien à perdre). Le Nothing at Stake repose sur le fait que dans le PoS, initialement, il y a une récompense pour créer un bloc supplémentaire mais qu’il n’existe aucune forme de pénalité pour les noeuds. C’était par exemple un cas de figure observé dans les premières applications de cet algorithme de consensus.

Dans cette situation, lorsque deux chaînes entrent en concurrence à la suite d’un embranchement, qu’il soit apparu accidentellement ou qu’il provienne d’une attaque malicieuse, les noeuds ne sont pas incités à agir dans l’intérêt de la blockchain.

Lorsque dans une blockchain, deux blocs sont créés à la suite du dernier bloc, les noeuds sont normalement incités à choisir le bloc par dessus lequel ils vont créer le bloc suivant. C’est ensuite la chaîne la plus longue qui fait office de chaîne valide.

Dans la situation 1 du schéma ci-dessous, on voit bien que les blocs se sont ajoutés à la chaîne de droite, en faisant ainsi la chaîne du consensus, l’autre embranchement étant abandonné.

Les noeuds sont censé ajouter un bloc à la chaîne qu’ils valident. Mais étant donné qu’ils n’ont rien à perdre dans le cadre du Proof of Stake puisqu’il n’existe aucune forme de pénalité et qu’ajouter un bloc ne coûte rien, ils ont alors intérêt à ajouter un bloc sur chacune des deux chaînes de façon à s’assurer que, quelque soit la chaîne qui gagne, ils recevront leur récompense. On se retrouve alors dans la situation 2 du schéma, avec deux chaînes qui coexistent.

Si tous les noeuds se comportent de la sorte, deux problèmes apparaissent :

Aucun consensus n’est trouvé, puisque les chaînes coexistent.

Il est possible qu’un acteur effectue une double dépense. Si 99% des noeuds agissent en Homo œconomicus, alors 99% des noeuds ajouteront un bloc à chaque chaîne pour optimiser les chances de gain. Si un noeud possède le 1% restant d’unités de crypto-monnaie bloquées pour participer à la loterie, il peut effectuer une dépense qu’une des deux chaînes validera, profiter du service en échange de ce paiement puis, une fois que vient son tour de créer un bloc, il le créera sur la chaîne n’ayant pas enregistré son paiement. Il profitera ainsi de nouveau de ses cryptomonnaies alors qu’il les a déjà dépensé.

Pour palier ce problème d’autres formes de PoS ont été créées, comme le  Delegated Proof of Stake (variante la plus connue), le Proof of Hold, le Proof of Stake per Time…

Sources :

Qu’est ce que la preuve d’enjeu, Ethereum-france.com

Preuve d’enjeu, Wikipédia


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *