Casper, la preuve d’enjeu pour Ethereum

 

ethereum et casper, la preuve d'enjeu (pos)

 

Depuis sa création, Ethereum utilise pour fonctionner un mécanisme de validation par preuve de travail (proof-of-work) : des mineurs mettent à disposition leur puissance de calcul pour sécuriser la chaîne de blocs et sont récompensés en éthers pour cela. La méthode de validation est assez similaire à Bitcoin, à la seule exception que l’algorithme de preuve de travail utilisé, appelé Ethash, favorise le minage par carte graphique (GPU) au détriment des circuits intégrés spécialisés (ASIC).

Cependant, il est prévu depuis le début qu’Ethereum adopte à un moment donné une autre méthode de consensus appelée preuve d’enjeu (proof-of-stake). Une bombe de difficulté a d’ailleurs été intégrée à cet effet au sein du protocole : le minage par preuve de travail devient de plus en plus difficile, et si rien n’est fait la sécurité du réseau pourrait en pâtir.

La preuve d’enjeu dans Ethereum devrait voir le jour avec un algorithme appelé Casper. Dans cet article, nous allons voir plus en détail de quoi il s’agit.

 

Qu’est-ce que Casper ?

Casper est le nom de l’algorithme de preuve d’enjeu qui est en cours développement et qui a pour objectif de remplacer Ethash comme mécanisme de validation de la chaîne d’Ethereum. Casper est né de l’adaptation d’un algorithme développé pour de la preuve de travail permettant de réduire le temps entre chaque bloc et qui est déjà implémenté partiellement dans Ethereum : GHOST ou Greedy Heaviest Observed SubTree. D’où son nom, qui est une référence directe au dessin animé Casper, the Friendly Ghost.

Le projet a été officialisé en août 2015. Deux versions concurrentes de Casper sont actuellement développées en parallèle : la version « originelle » de Vlad Zamfir, intitulée The Friendly GHOST: Correct-by-Construction et couramment désignée sous le nom de Casper CBC ; la version de Vitalik Buterin appelée The Friendly Finality Gadget et abrégée en Casper FFG. Il était initialement prévu que Casper FFG soit une solution de transition hybride qui complète la preuve de travail, mais ce n’est plus le cas depuis juin 2018. La différence principale entre ces deux versions est que CBC semble posséder de meilleures propriétés tandis que FFG devrait être plus facile à implémenter.

 

Vlad Zamfir

Vlad Zamfir

Vitalik Buterin

Vitalik Buterin

© Epicenter

 

Avec le partitionnement (sharding), Plasma et eWASM, Casper constitue l’un des principaux éléments de Ethereum 2.0, l’évolution d’Ethereum vers plus d’efficacité et de scalabilité qui devrait voir le jour avec la mise à niveau Serenity.

 

Qu’est-ce que la preuve d’enjeu ? (Proof-of-Stake)

La preuve d’enjeu, ou Proof-of-Stake, est une méthode de validation de chaîne de blocs dont le principe est de reproduire le processus de minage de manière virtuelle en se basant non plus sur la puissance de calcul, mais sur la possession de jetons. Les validateurs ne sont alors plus des mineurs, mais ce qu’on appelle des forgeurs.

Un forgeur construit un bloc de transactions et le signe pour prouver qu’il est effectivement propriétaire de jetons. Plus il a de jetons, plus il a de chances que son bloc soit accepté comme solution et qu’il gagne la récompense. Puisqu’il est lié économiquement au protocole, il est incité à être honnête. Dans le cas d’Ethereum, le jeton à posséder est l’éther (ETH).

 

Preuve de travail et preuve d'enjeu

 

Historiquement, l’idée derrière la preuve d’enjeu est plus ancienne que le concept de preuve de travail. C’est grâce au succès de Bitcoin que la recherche à propos de la preuve d’enjeu a connu une résurrection. L’idée de preuve d’enjeu pour une chaîne de blocs a été introduite par Sunny King et Scott Nadal en 2012. Le peercoin (PPC), lancé en 2013, a été la première cryptomonnaie à l’implémenter : son mécanisme de consensus utilisait en effet un modèle hybride de preuve de travail et de preuve d’enjeu.

La preuve d’enjeu présente certains avantages majeurs par rapport à la preuve de travail. Le principal d’entre eux est sa consommation d’énergie réduite, ce qui peut être intéressant d’un point de vue écologique, mais importe surtout au niveau économique. En effet, puisque les validateurs ont besoin d’utiliser beaucoup moins de ressources, leur récompense (constituée de l’émission des jetons et des frais de transactions) peut être considérablement réduite.

La consommation d’énergie réduite entraîne aussi une moins grande centralisation de la validation. Dans le cas d’Ethereum, la preuve d’enjeu permettrait donc d’augmenter drastiquement la capacité transactionnelle du réseau sans en impacter la décentralisation.

Le problème est que, si la preuve d’enjeu peut séduire de prime abord, elle pose un série de problèmes qui sont difficiles à résoudre : il est nécessaire de recourir à des moyens complexes pour qu’elle fonctionne convenablement. Le projet Casper, sujet de recherche depuis plus de quatre ans, a fait des avancées significatives et pourrait être sur le point de réussir à concrétiser ce défi.

 

Que résout Casper ?

Il est prévu dès le début qu’Ethereum passe à la preuve d’enjeu : c’était le souhait de Vitalik Buterin à sa création. Cependant, la tâche s’avère plus difficile qu’elle n’en a l’air. Comme on l’a dit, la preuve d’enjeu repose sur un principe simple, mais son implémentation pratique est une chose complexe à mettre en place.

Tout d’abord, une implémentation naïve de la preuve d’enjeu conduit à un problème connu sous le nom de problème du Nothing-at-Stake ou du « rien à perdre ». Dans le cas de la preuve de travail, si un embranchement (fork) de la chaîne se produit, un mineur doit nécessairement choisir une des deux versions. S’il choisit la mauvaise, il est puni : il a dépensé de l’énergie pour rien. Cela incite les mineurs à se focaliser sur une chaîne unique, et, ce faisant, à maintenir le consensus.

Dans le cas de la preuve d’enjeu, un forgeur n’est pas soumis aux mêmes contraintes. Il peut en effet valider deux versions concurrentes de la chaîne puisqu’il possède le même nombre d’éthers sur les deux. Pire : il doit le faire s’il veut maximiser ses gains.

La solution à ce problème est d’instaurer un modèle de pénalité, qui punirait les forgeurs qui ne suivraient pas la « bonne chaîne », copiant ainsi la situation de perte d’énergie qui a lieu dans le minage. Cette résolution a été implémentée dès 2014 par Vitalik Buterin dans Slasher, un algorithme punitif de preuve d’enjeu antérieur à Casper.

Dans Casper, cela a été résolu par un système de dépôts de sécurité que les validateurs doivent mettre en jeu pour participer. L’idée est que la taille du dépôt doit être très grande par rapport à celle de la récompense : si le validateur joue le jeu, il gagne un peu ; s’il triche, il perd tout.

Ce système de dépôts permet également de résoudre un autre problème, qui est celui de la corruption en particulier dans le cas d’une attaque de long terme (long-range attack). L’idée derrière cette attaque est qu’un individu malintentionné soudoie des détenteurs d’éthers pour obtenir leur clés privées en échange d’un pot-de-vin. Ces détenteurs envoient leurs fonds sur une autre adresse et les vendent. Une fois qu’il a récupéré assez de clés, l’attaquant peut alors utiliser ces fonds historiques pour construire une chaîne « fictive » qui serait la plus longue et donc celle devant être acceptée par le réseau.

Dans Casper, cette faille a été résolue en rendant finaux tous les retraits de la part des validateurs, c’est-à-dire en interdisant aux nœuds de revenir sur un retrait. Cela se fait par l’intermédiaire d’une liste de validateurs liés. Bien sûr ceci pose d’autres problèmes comme celui de la subjectivité faible, mais il est admis que ce problème est bien moins impactant que celui qu’il résout.

Finalement, en reprenant les idées des algorithmes traditionnels de tolérance aux fautes byzantines (BFT), les dernières évolutions de Casper pourraient lui permettre de fonctionner dans des situations oligopolistiques, c’est-à-dire que le système pourrait marcher même avec un nombre très restreint de validateurs. Comme le dit Vlad Zamfir :

À aucun moment nous ne voulions prendre pour hypothèse de sécurité que “la moitié des jetons étaient honnêtes”.

 

Conclusion

Casper est l’algorithme qui doit faire passer Ethereum de la preuve de travail vers la preuve d’enjeu : la recherche derrière le projet est encore en cours mais les résultats sont encourageants. Cette forme de méthode de validation pourrait apporter beaucoup à Ethereum en terme de scalabilité. Casper constitue en cela l’un des éléments centraux de la prochaine grande mise à niveau : Serenity.

 


Ludovic

Ludovic est fasciné par les cryptomonnaies et par l'impact qu'elles pourraient avoir sur le monde. De formation scientifique, il s'attache à décrire leur fonctionnement technique de la façon la plus fidèle possible.

facebook-cryptoast twitter-soothsayerdata

 




Poster un Commentaire

avatar