Ethereum : Vitalik Buterin veut tout vérifier on-chain via The Verge
En novembre 2022, Vitalik Buterin a dévoilé une roadmap en 6 étapes qui comporte l’ensemble des évolutions à venir sur Ethereum dans les prochaines années. Depuis plusieurs semaines, Buterin a entrepris d’expliciter les détails de chacune de ses étapes sur son blog personnel.
Ainsi, après The Merge, The Surge et The Scourge, Buterin explore dans son nouvel article la quatrième étape de la roadmap intitulée The Verge. En bref, The Verge se concentre sur la vérification sans état et les preuves de validités. Autant d’outils destinés à rendre Ethereum plus léger, plus rapide et surtout plus facilement vérifiable. Explorons ensemble les évolutions qui arriveront dans les années à venir.
Stateless verification : Verkle Trees ou STARKs
La décentralisation d’une blockchain peut être mesurée en prenant en compte les ressources nécessaires pour opérer un nœud complet. En effet, plus les ressources sont faibles, plus la barrière à l’entrée est basse.
Malheureusement, comme l’introduit Vitalik Buterin dans son article, le poids de la blockchain Ethereum ne cesse de croître.
« Aujourd’hui, un client Ethereum doit stocker des centaines de gigaoctets de données d’état afin de vérifier les blocs, et cette quantité continue d’augmenter chaque année. Les données d’état brutes augmentent d’environ 30 Go par an, et les clients individuels doivent stocker des données supplémentaires pour pouvoir mettre à jour la table efficacement. »
Pour pallier ce problème, Buterin propose d’avoir recours à des vérifications sans état. Ce concept semble technique, mais l’objectif est relativement simple : réduire la quantité de données que chaque nœud du réseau doit stocker.
Actuellement, les nœuds Ethereum doivent conserver l’intégralité de l’état de la blockchain, c’est-à-dire toutes les transactions passées, les soldes, les contrats intelligents, etc. Mais avec la stateless verification, chaque nœud pourrait vérifier les transactions sans stocker l’état complet du réseau. Par conséquent, les nœuds ne conservent plus l’intégralité de l’état de la blockchain, mais seulement des preuves cryptographiques nécessaires pour valider les transactions.
Ainsi, la vérification sans état vise à alléger la quantité de données stockée par les nœuds, les rendant plus accessibles et facilitant la participation au réseau.
Buterin mentionne deux méthodes principales pour cela : les Verkle Trees et les STARKs.
Verkle Trees
D’une part, les Verkle Trees sont des structures de données qui permettent de compresser l’information. Ils représentent une solution idéale pour générer une preuve de chaque état de façon rapide. Cela rend inutile le stockage complet des données par chaque nœud.
Il s’agit d’une méthode qui permet une meilleure compression que les Merkle Trees, actuellement utilisés. De surcroît, les Verkle Trees réduisent drastiquement les ressources nécessaires pour vérifier une transaction.
Starks
D’autre part, Vitalik Buterin explore l’usage des STARKs, pour « Zero-Knowledge Scalable Transparent ARguments of Knowledge ».
Contrairement aux Verkle Trees, les STARKs reposent sur des preuves cryptographiques dites non interactives. Toutefois, ils offrent également une solution pour la vérification sans état.
Les STARKs ont l’avantage d’être « post-quantum safe », à savoir qu’ils sont sécurisés contre des attaques potentielles des futurs ordinateurs quantiques. De plus, les STARKs permettent d’assurer une meilleure confidentialité.
Les Verkle Trees et les STARKs sont actuellement les deux pistes explorées pour permettre d’introduire la Stateless Verification sur Ethereum. Évidemment, chacune de ces solutions arrive avec ses propres avantages et inconvénients. Néanmoins, ces détails seront discutés en temps et en heure par les développeurs et la communauté Ethereum.
Des preuves de validité pour l’exécution de l’EVM
Dans la suite de son article, Buterin explore la création de preuves de validité permettant de vérifier l’exécution de l’Ethereum Virtual Machine (EVM). Pour rappel, L’EVM, est le moteur d’Ethereum puisqu’elle exécute les contrats intelligents et gère les transactions.
Ainsi, à terme, Vitalik souhaite que pour vérifier un bloc sur Ethereum, il suffise de télécharger le bloc complet ou seulement quelques petites parties (en vérifiant que les données sont bien disponibles), et de valider le bloc en vérifiant une petite preuve de sa validité.
Vitalik explique ici que les validity proofs sont des outils de vérification avancés qui garantissent que les transactions et les opérations effectuées dans l’EVM sont correctes sans nécessiter d’examiner chaque étape de calcul. Ces preuves permettent ainsi de vérifier en une étape que chaque opération respecte bien les règles du protocole.
Les validity proofs permettent ainsi d’améliorer la sécurité en offrant une vérification mathématique de l’exécution de l’EVM, le tout, en réduisant les coûts en ressources nécessaires pour la vérification.
De surcroît, cette intégration native des validity proofs permettrait d’améliorer l’interopérabilité entre Ethereum et ses layers-2.
Des preuves de validité au niveau du consensus
Enfin, la dernière partie de l’article s’attaque à un autre volet fondamental : les validity proofs au niveau du consensus lui-même.
Avec The Merge, Ethereum a finalisé sa transition vers le Proof of Stake. Toutefois, la méthode utilisée par Ethereum n’est pas parfaite et des questions de sécurité et de décentralisation subsistent.
L’ajout de validity proofs de consensus constitue un moyen d’assurer cryptographiquement que les validateurs et autres acteurs du réseau suivent les règles du consensus. Et ce, sans qu’il soit nécessaire de posséder une copie complète de la blockchain pour participer. Comme expliqué par Buterin dans son article :
« Si nous voulons qu’il soit possible de vérifier entièrement un bloc Ethereum avec un SNARK, l’exécution de l’EVM n’est pas la seule partie que nous devons prouver. Nous devons également prouver le consensus : la partie du système qui gère les dépôts, les retraits, les signatures, les mises à jour du solde du validateur et d’autres éléments de la partie preuve d’enjeu d’Ethereum. »
Vous l’aurez compris, au-delà des preuves de validité de l’EVM, des preuves de validité sont nécessaires pour le consensus lui-même.
Ainsi, les validity proofs appliquées au consensus garantissent qu’un nœud ou un validateur peut prouver, de manière cryptographique, qu’il a suivi correctement le processus sans avoir besoin de tout télécharger.
Pour rappel, le consensus d’Ethereum repose sur la Beacon Chain, aussi appelée consensus layer.
Selon Buterin, environ 30 000 validateurs signent actuellement chaque bloc, générant une multitude d’opérations de calcul. Avec la finalité en un bloc (single-slot finality) exploré dans l’étape The Merge, ce nombre pourrait encore augmenter.
Quelles modifications apporter à Ethereum ?
Pour cela, Vitalik propose des solutions pour alléger le processus de validation au niveau du consensus :
- Changer la fonction de hachage : remplacer SHA256 par Poseidon, une fonction plus rapide, pourrait permettre des vérifications jusqu’à 100 fois plus rapides ;
- Agrégation des signatures : des techniques d’agrégation avancées pourraient partager la charge de calcul entre les nœuds, facilitant la tâche du validateur final ;
- Réorganiser les données des validateurs : ranger les informations des validateurs de façon plus efficace pour accéder aux données plus rapidement en cas de besoin.
Une fois de plus, ces solutions sont encore à l’étude par les développeurs. Ces derniers pourraient finalement utiliser une autre méthode que celles abordées ici dans quelques années, en fonction des découvertes qui auront été faites d’ici là.
De leur côté, les développeurs d’Ethereum continuent de plancher sur le prochain hard fork : Pectra. Celui-ci devrait être déployé en deux mises à jour distinctes au début de l’année 2025.