Ethereum 2.0 : le dilemme de la diversification des clients

Les développeurs d’Ethereum ont récemment annoncé la date fatidique du passage au Proof of Stake. Une mise à jour extrêmement attendue par la communauté et qui marquera un tournant dans le déploiement d’Ethereum 2.0. Cependant, le manque de diversification dans les clients utilisés sur Ethereum 2.0 inquiète certains acteurs de l’écosystème.

Ethereum 1.0 face à la congestion

Lancé en 2015, le réseau Ethereum a été le berceau de nombreuses innovations au cours des dernières années. À l’origine, Ethereum se démarque avec son concept de smart contracts. Ces contrats permettent aux développeurs de programmer des transactions et comportements complexes sur la blockchain.

Ce sont ces derniers qui ont permis l’émergence d’écosystèmes complexes, tels que la finance décentralisée (DeFi) ou les NFT. Cette émulsion innovatrice a attiré des milliers d’utilisateurs. Ainsi, entre janvier 2020 et janvier 2022, le nombre d’adresses uniques sur Ethereum a été multiplié par deux.

Qui dit plus d’utilisateurs, dit plus de transactions. À partir de janvier 2020, le nombre de transactions quotidiennes sur Ethereum n’a cessé d’augmenter. Depuis juillet 2020, celui-ci n’est que très rarement tombé en dessous du million.

Evolution du nombre de transactions quotidiennes réalisées sur Ethereum
Évolution du nombre de transactions quotidiennes réalisées sur Ethereum – Source : Etherscan.

Malheureusement, en l’état, le réseau Ethereum n’est pas armé pour traiter autant de transactions. Cet engouement a entrainé d’importants problèmes de congestions, impliquant de facto une augmentation proportionnelle des frais de transactions.

De surcroit, cela a rendu Ethereum extrêmement peu attractif pour les petits portefeuilles, voyant leurs rendements balayés par les frais en gas.

Ethereum 2.0 : la solution tant attendue

Plusieurs solutions ont été imaginées pour résoudre les problèmes de congestion rencontrés par Ethereum. Nous pouvons notamment citer les diverses solutions de seconde couche (layers 2), permettant de déporter une partie des transactions hors de la blockchain principale.

En parallèle, une mise à jour de taille ambitionne de régler ce problème une fois pour toutes : Ethereum 2.0. En pratique, Ethereum 2.0 correspond à une série de mises à jour visant à résoudre le problème de mise à l’échelle rencontré par Ethereum. Ainsi, Ethereum 2.0 se décompose en trois grandes phases.

Phase 0 : la Beacon Chain

La phase 0 réfère au déploiement de la Beacon Chain. En bref, la Beacon Chain représente la colonne vertébrale d’Ethereum 2.0. C’est elle qui assure l’une des fonctionnalités les plus fondamentales : le consensus.

Ainsi, la Beacon Chain est une blockchain en Proof of Stake, évoluant en parallèle du réseau Ethereum tel qu’on le connait, souvent désigné comme « Ethereum 1.0 ».

Celle-ci a été lancée en décembre 2020, et comptabilise plus de 280 000 validateurs actifs, un chiffre qui grandit de jour en jour.

Evolution du nombre de validateurs sur Ethereum 2.0
Évolution du nombre de validateurs sur Ethereum 2.0 – Source : Beaconcha.in

La Beacon Chain sera également le lieu de synchronisation des différents shards, une fois que la phase 2 sera déployée.

Phase 1 : The Merge

La phase 1, The Merge, est la prochaine sur la liste des avancées pour Ethereum 2.0. Ainsi, celle-ci marquera la transition du Proof of Work au Proof of Stake. Celle-ci clôturera définitivement l’ère des mineurs sur Ethereum pour passer à l’air des validateurs.

En pratique, cette mise à jour vise à raccorder la couche applicative d’Ethereum 1.0, à savoir l’ensemble des applications décentralisées et de l’activité ayant lieu sur Ethereum, avec la couche consensus d’Ethereum 2.0, à savoir la Beacon Chain.

Fusion des couches applicatives et consensus d'Ethereum 1.0 et Ethereum 2.0
Fusion des couches applicatives et consensus d’Ethereum 1.0 et Ethereum 2.0 – Source : Consensys.

Le testnet Kintsugi, déployé en décembre 2021, permet actuellement de tester la fusion de ces deux entités. Selon les dernières estimations, les développeurs prévoient son déploiement sur le mainnet aux alentours du 22 juin 2022.

Notons tout de même que le passage au Proof of Stake n’aura que peu d’incidence sur les frais de transactions. Une déception pour une partie de la communauté, mais retenons tout de même que The Merge est une pierre angulaire dans la résolution du problème de frais.

Phase 2 : les Shards Chains

Une fois qu’Ethereum sera passé en Proof of Stake, il sera temps de finalement déployer la dernière pierre de l’édifice Ethereum 2.0, à savoir les Shards Chains.

Les shards chains permettront de découper le réseau Ethereum en une multitude de sous-réseaux, chacun en charge du traitement des transactions qui lui seront propres.

L’ensemble de ces « sous-chaines » sera ensuite synchronisé par la beacon chain, afin de s’assurer que l’état général du réseau et les données soient communs à l’ensemble des shards.

Dans les faits, c’est cette mise à jour qui est la plus prometteuse pour résoudre définitivement les problèmes de congestion rencontrés par Ethereum. En effet, celle-ci devrait en théorie permettre de multiplier par un facteur 10 000 les performances du réseau.

sharding ethereum
Le sharding : une fragmentation de la blockchain grâce aux preuves cryptographiques – Image de Hsiao-Wei Wang.

Il faudra cependant prendre son mal en patience. Les shards chains ne sont pas prévues avant l’année 2023, à condition que le déploiement de The Merge ait bien lieu dans les délais annoncés.

Le problème de la diversité des clients sur Ethereum

À l’approche du déploiement de The Merge, un débat vieux comme Ethereum a refait surface : celui de la diversité des clients. Pour faire simple, les clients sont les programmes qui permettent d’exécuter le code d’Ethereum.

« Ethereum est un réseau distribué d’ordinateurs exécutant des logiciels (appelés nœuds) qui peuvent vérifier les blocs et les données de transaction. Vous avez besoin d’une application, appelée client, sur votre ordinateur pour opérer un nœud. »

Site officiel d’Ethereum

Le cas d’Ethereum 1.0

La version actuelle d’Ethereum est hautement dépendante du client geth. Pour rappel, Goi Ethereum est l’un des clients historiques, développé dans le langage Go, entièrement open source et sous licence GNU LGPL v3. Ainsi, 83% des noeuds sur le réseau utilisent le client geth.

Diversification des clients sur Ethereum 1.0
Diversification des clients sur Ethereum 1.0 – Source : Ethernodes.

Ce manque de diversification dans les clients engendre un sérieux problème de centralisation. En effet, une paralysie totale du réseau pourrait éventuellement survenir, si un problème venait à être rencontré sur le client majoritaire.

En novembre 2020, les développeurs du client geth ont effectué une mise à jour du logiciel corrigeant une faille dormante. Malheureusement, de nombreux opérateurs de nœuds ont manqué la mise à jour. Cela a créé une chaine parallèle à hauteur du bloc 11 234 873. Parmi les opérateurs de nœuds n’ayant pas fait la mise à jour, nous retrouvions le géant Infura, pierre angulaire d’Ethereum et garant du bon fonctionnement d’une grande part des applications décentralisées. Les conséquences furent importantes et le réseau s’est retrouvé totalement paralysé jusqu’à la mise à jour des nœuds en cause.

Plus récemment, un second fork sauvage a été provoqué par un bug présent sur une ancienne version de geth. Deux chaines ont alors évolué en parallèle, l’une issue des nœuds opérant la version v1.10.8 et la seconde soutenue par le reste des nœuds du réseau.

Le cas d’Ethereum 2.0

Évidemment, cette problématique reste d’actualité dans le cadre d’Ethereum 2.0. Le débat a été récemment relancé par Michael Sproul, travaillant pour Sigma Prime, l’entreprise à l’origine du client Lighthouse.

Ce dernier est revenu dans un thread Twitter sur le problème, avec un état des lieux et les implications possibles d’une centralisation sur Ethereum 2.0.

Thread sur la diversification des clients ETH 2.0
Thread sur la diversification des clients ETH 2.0 – Source : Twitter.

Son constat : Ethereum 2.0 est hautement centralisé autour du client Prysm. Ainsi, 68% des nœuds opèrent Prysm, 22% seulement le second client principal Lighthouse. Les client Teku et Nimbus ne représentent quant à eux qu’une infime partie des nœuds.

Malheureusement, cette situation ne vas pas en s’arrangeant. En effet, dans un précédent thread publié en octobre 2021, Michael Sproul rapportait que 64,8% des nœuds opéraient Prysm, soit presque 4% de moins qu’aujourd’hui.

Ce sont principalement les grosses pools de staking qui sont à l’origine de ce manque de diversification. En effet, ces dernières ont une grande influence sur le réseau et représentent une majorité des validateurs. Malheureusement, ces dernières ont majoritairement tendance à utiliser le client Prysm.

Une ombre qui pèse sur Ethereum 2.0

L’impact d’une telle centralisation est exacerbé sur Ethereum 2.0, en comparaison à Ethereum 1.0. En effet, dans le cadre du Proof of Stake, les validateurs sont hautement dépendant des nœuds complets.

Dans sa courte existence, Ethereum 2.0 a d’ores et déjà été face au problème de la diversité des clients. En effet, lors du testnet Medalla, 80% des nœuds validateurs ont subitement disparu du réseau. La cause ? Le client Prysm, évidemment !

Ainsi, un bug dans le code du client a engendré une désynchronisation massive des nœuds. Cela a scindé la chaine en une multitude de forks. De surcroit, le réseau devenu fou a commencé à accepter des blocs défaillants. Un bug aux conséquences minimes dans le cadre d’un testnet, mais dont les conséquences pourraient se chiffrer en milliards de dollars dans le cadre du mainnet.

Cette situation ne peut durer. Ainsi, à travers l’écosystème de nombreux membres influents appellent les opérateurs de nœuds à changer de client. C’est notamment le cas du consultant en santé communautaire de la chaîne Beacon d’Ethereum, qui a déclaré sur Twitter :

« Ceci n’est pas acceptable. Si vous êtes un opérateur de nœud solo, une pool, un échange – et que vous utilisez Prysm, et je suppose que vous attendez que quelqu’un d’autre prenne la responsabilité de la diversité des clients, quand vous choisissez de ne pas le faire : Vous mettez le réseau en danger. Vous êtes négligent. »

Tweet publié par @superphiz
Tweet publié par @superphiz – Source : Twitter.

Quoi qu’il en soit, l’année s’annonce riche en rebondissements pour le réseau Ethereum. Espérons cependant que le problème de diversité des clients ne vienne pas entacher le lancement de The Merge en juin prochain. En attendant, Vitalik Buterin continue de chercher une solution au problème de congestion en proposant une nouvelle révision du mécanisme de frais sur Ethereum.

Renaud H.

Ingénieur en software et en systèmes distribués de formation, passionné de cryptos depuis 2013. Touche à tout, entre mining et développement, je cherche toujours à en apprendre plus sur l’univers des cryptomonnaies et à partager le fruit de mes recherches à travers mes articles.