Ethereum 2.0 : ce qu'il faut savoir

Ethereum 2.0 : ce qu'il faut savoir

Vers plus de sérénité

IMPORTANT : depuis la rédaction de cet article, la roadmap d’Ethereum a évolué et les principales phases de développement ont été modifiées. Pour plus d’informations : https://ethereum.org/fr/upgrades/

Ethereum est un protocole d’échange décentralisé initié en 2015 par Vitalik Buterin, permettant aux utilisateurs de s’échanger de la valeur, créer des Smart Contracts et développer des applications décentralisées (dApps). Ce protocole utilise l’unité de compte Ether (ETH) pour réaliser des transactions sur le réseau. L’Ether est aujourd’hui la deuxième plus importante cryptomonnaie derrière le Bitcoin, avec plus de 60 milliards de dollars de capitalisation.

L’écosystème Ethereum est vaste ; de nombreux projets, entreprises et associations participent à son développement. Ethereum s’est notamment fait connaître avec l’essor des ICO (Initial Coin Offering) eOn 2017 et des projets de finance décentralisée (DeFi). Cependant, Ethereum présente aujourd’hui des limites au niveau de sa scalabilitée ; plus le réseau est utilisé, plus les transactions sont lentes et plus les frais sont élevés. Ces problèmes de performances sont de véritables freins à l’adoption du protocole.

Ethereum est en constante évolution. Il va connaître plusieurs mises à jour qui ont pour objectifs d’améliorer le protocole en termes de performances, sécurité et décentralisation. Cette évolution globale du protocole, si elle arrive à terme, va aboutir à la version Serenity d’Ethereum, aussi appelée Ethereum 2.0. Les différentes phases de la migration de Ethereum 1.0 à Ethereum 2.0 sont décrites dans une Road Map, prévue depuis le début du projet. Dans cet article, nous allons nous intéresser aux principaux changements apportés par la mise à jour Serenity.

   

Phase 0 : le passage à la preuve d’enjeu (2020)

La validation des blocs

Depuis sa création, Ethereum fonctionne avec un système basé sur la preuve de travail (Proof of Work ou PoW), avec l’algorithme Ethash. Les mineurs sont en compétition et mettent à profit de la puissance de calcul pour espérer résoudre une équation mathématique complexe, permettant de valider les blocs de transactions. Le mineur qui trouve la solution se voit récompensé en Ethers. La récompense ayant plus de valeur que la puissance de calcul engagée, cela permet d’inciter les mineurs à participer au réseau.

La preuve de travail permet de sécuriser le réseau et notamment de le protéger contre les attaques Sybil. Cependant, ce système limite la scalabilitée du réseau et consomme une part d’énergie importante. Comme alternative à la preuve de travail, Ethereum 2.0 va implémenter un système basé sur de la preuve d’enjeu.

La preuve d’enjeux a les mêmes objectifs que la preuve de travail, mais elle se base sur la possession de cryptomonnaies (Ether) et non pas sur la puissance de calcul. L’équivalent des mineurs, appelés forgeurs (stakers), doivent mettre en jeu une somme importante pour avoir le droit de valider les blocs de transactions ; c’est le staking. Sur Ethereum 2.0, cette somme est de 32 ETH.

Avec la preuve d’enjeu, la validation des blocs n’est plus une compétition. Les validateurs sont sélectionnés aléatoirement et doivent proposer un nouveau bloc à intégrer à la chaine. Le probabilité d’être selectionné dépend du nombre d’Ethers mis en jeu. Si les forgeurs respectent les règles et proposent des blocs de transactions corrects, ils sont récompensés en Ether. Au contraire, s’ils ne respectent pas les règles, ils sont sanctionnés directement sur leur stock mis en jeu. La sanction peut aller jusqu’à la totalité de leurs 32 ETH.

Casper

Ce mécanisme de validation des blocs de transactions va être implémenté par l’algorithme Casper. Aujourd’hui, il y a deux implémentations de Casper en cours de développement :

  • Casper FFG (Friendly Finality Gadget): proposé par Vitalik Buterin

Cet algorithme se base sur une version hybride entre preuve de travail et preuve d’enjeu. Les blocs sont toujours minés via de la PoW, mais tous les 100 blocs, il y a une validation par PoS. Les validateurs devront alors proposer au réseau un bloc de transactions. Si au moins 2/3 des validateurs proposent un même bloc, celui-ci est ajouté à la chaine de blocs.

  • Casper CBC (Correct-by-Construction) : proposé par Vlad Zamfir

Cette implémentation est inspirée de Ghost, un algorithme ayant pour but d’augmenter la fréquence de validation des blocs avec la preuve de travail. À chaque validation, un bloc représente un potentiel fork de la chaine. Les validateurs doivent choisir le “bon” fork, c’est-à-dire la chaine avec les blocs de transactions corrects. La chaine avec les nouveaux blocs est finalisée lorsque 2/3 des validateurs la choisisse.

Lors de la phase 0, Ethereum devrait implémenter la version de Casper FFG. La version CBC a un objectif plus long terne, et permettrait le passage au PoS à 100%.

Beacon Chain

Le démarrage de la phase 0 correspond au lancement de la Beacon Chain (chaine de balises), aussi appelée chaine Eth2. La Beacon Chain a pour objectif d’introduire le staking (PoS) et de coordonner les shards et validateurs (nous y reviendront plus tard).

Les utilisateurs peuvent devenir validateurs (staker) sur Ethereum, soit en déposant 32 ETH sur sur le Smart Contract dédié, soit en déposant moins de 32ETH via une pool de staking (une association de plusieurs validateurs).

Une liste des différents services de staking est disponible ici. Les gains potentiels peuvent être estimés sur le site web StackingRewards.com.

Il y a deux choses à savoir :

  • La Beacon Chain sera lancée à partir du 1er décembre 2020, s’il y a au moins 16 384 validateurs, soit 524 288 ETH déposées. Vous pouvez suivre le total des dépôts ici : Ethereum Launchpad

  • Une fois déposé, les fonds et les récompenses ne pourront pas être récupérés avant la fin de la phase 1 d’Ethereum, donc pas avant plusieurs mois voir années. Cela représente un engagement et un risque considérable, en vue du cours actuel de l’Ether.

La Beacon Chain va d’abord exister séparément de la chaine d’Ethereum 1.0 (Eth1). À l’avenir, elle servira de chaine “maitresse”, pour coordonner les shards du réseau et valider les blocs de la chaine principale via un système à preuve d’enjeu.

   

Phase 1 : l’architecture en shards (2021)

Concept

L’architecture en shards (fragments) est une évolution qui devrait permettre d’améliorer considérablement la scalabilitée et la capacité du réseau Ethereum.

Le Sharding permet d’organiser de manière horizontale la répartition des données sur un système de stockage d’informations. Dans Ethereum, cela permettrait de réduire la congestion du réseau et augmenter le nombre de transactions par seconde en créant de nouvelles chaines de blocs en parallèle, appelées shards. Il devrait y avoir jusqu’à 64 shards en parallèle, mais théoriquement cela pourrait aller jusqu’à 1024.

Répartition de la charge

Actuellement, les validateurs doivent avoir l’ensemble des données de la Blockchain sur leur noeud. Avec une architecture en shards, ils auraient seulement besoin d’avoir les données correspondantes au shard qu’ils valident. Cela permettrait de réduire le stockage d’information sur leur noeud, et donc d’augmenter la vitesse de traitement et réduire les exigences matérielles. Un noeud pourrait tourner facilement sur un ordinateur ou un smartphone, ce qui rend la possibilité de participer au réseau accessible au plus grand nombre. Un plus grand nombre de participants implique une plus grande décentralisation, et donc une sécurité accrue.

Amélioration des performances

Dans une première version, les shards ne gèreraient pas directement de transactions ni de Smart Contracts ; ils fourniront seulement des données supplémentaires au réseau. Ils permettraient néanmoins d’augmenter le nombre de transactions par seconde (estimé jusqu’à 100 000 tx/s) avec les Rollups. Les Rollups consiste à regrouper plusieurs transactions sur un shard, et de fournir à la chaine principale une preuve cryptographique de l’ensemble des transactions. Cela reprend le principe du Ligning Network sur Bitcoin.

Dans une seconde version, les shards pourront gérer des transactions et Smart Contracts, tous comme la chaine principale. L’implémentation de cette deuxième évolution est toujours en discussion dans la communauté Ethereum, car elle n’est peut-etre pas nécessaire vu les capacités que la version 1 devrait apporter.

Le rôle de la Beacon Chain serait de gérer la synchronisation et la sécurité des shards, en coordonnant leur création et les validateurs. L’implémentation de l’architecture en shards devrait débuter lors de la phase 1.

Phase 1.5 : la connexion de la chaine principale avec Eth2 (2021-2022)

Suite à la mise en place de l’architecture en shards, la chaine principale Eth1 fonctionnera toujours avec la preuve de travail, et la Beacon Chain Eth 2 avec de la preuve d’enjeu et l’architecture en shard. Les deux chaines tourneront donc séparément.

Il est prévu que la chaine principale fusionne avec la Beacon Chain : c’est la phase 1.5, aussi appelée The Docking. Cela marquera officiellement la fin de la preuve de travail pour Ethereum. Une fois la fusion réalisée, la chaine Eth1 et tout son historique seront alors vus comme un shard du réseau.

Phase 2 : une nouvelle machine virtuelle (2022)

La phase 2 d’Ethereum 2.0 correspond au remplacement de la machine virtuelle permettant l’exécution des Smart Contracts.

Actuellement, la machine virtuelle utilisée est EVM (Ethereum Virtual Machine). Celle-ci sera remplacée par eWASM (Ethereum WebAssembly).

Le WebAssembly (WASM) est un standard du web développé par la W3C, qui est utilisé pour créer des applications. C’est un type de code bas niveau, performant, qui est conçu pour fonctionner en lien avec JavaScript et pour être exécuté par des navigateurs web.

eWASM est une version modifiée de Wasm, spécifique à Ethereum. Cette machine virtuelle devrait apporter de nombreuses améliorations en termes de performances, mais aussi en termes d’utilisation. Le code devrait être plus lisible et compréhensible, et donc plus facilement debuggeable.

L’un des plus grands défis est le développement d’un transcompiler EVM, qui permettra de rendre compatible sur eWASM le code des Smart Contracts réalisés sous EVM. Le langage Solidity pourra toujours être utilisé pour développer des Smart Contracts, mais les développeurs souhaitent aussi permettre l’utilisation du Langage C et de Rust.

À terme, le passage à eWASM rendra le développement de Smart Contracts, et donc des applications décentralisées (dApps), plus performant, accessible et sécurisé.

Phase 3 : l’amélioration continue (2022 - x)

Arrivée à cette phase, les principales évolutions d’Ethereum 2.0 auront été implémentées, et le protocole continuera à évoluer et être amélioré. Les objectifs de cette phase ne sont pas encore réellement définis et dépendront du résultat obtenu suite aux phases précédentes. De nombreux EIP (Ethereum Improvement Proposals) seront développés et implémentés pour rendre le système plus fiable.

Un projet ambitieux

Ethereum 2.0 est un projet très ambitieux qui, s’il répond à ses promesses, risque de dépasser de loin la concurrence. Ethereum deviendrait la plateforme d’applications décentralisée avec des niveaux de décentralisation, scalabilité et sécurité jamais atteints.

Néanmoins, le développement de la mise à jour Serenity se fait attendre et reçoit de nombreuses critiques par rapport à sa faisabilité technique et son mode de gouvernance. En effet, le risque de bugs et de défaillance est loin d’être nul, et les conséquences pourraient être dramatiques pour Ethereum. Aujourd’hui, c’est un protocole utilisé par de nombreuses applications avec un écosystème puissant, mais une faille sur le réseau pourrait avoir des conséquences importantes sur les utilisateurs et leurs fonds.

La preuve d’enjeu est aussi un aspect critiqué. Certains la jugent moins sûre que la preuve de travail et moins décentralisée. La validation des blocs de transactions serait réservée à ceux qui ont le plus d’Ethers, donc aux plus fortunés, malgré la possibilité de staker au sein de pool. De plus, pour devenir validateur, les conditions sont strictes et nécessitent d’avoir un noeud connecté 24h/24 sous peine de recevoir des pénalités. Cela poussera donc les validateurs à recourir à des services d’hébergement centralisés (AWS, OVH, etc). D’autres critiquent la politique “monétaire” d’Ethereum ; la preuve d’enjeu ne nécessite pas d’énergie pour fonctionner, donc les Ethers émis n’ont pas de coûts de production liée à cette dépense énergétique (contrairement à Bitcoin). Quoi qu’il en soit, la proposition de valeur d’Ethereum est unique, et cela provoquera des débats intéressants dans l’écosystème Blockchain.

En tant qu’utilisateur ou investisseur, miser 32 ETH aujourd’hui représente un risque considérable, car ils ne seront pas récupérables avant la fin de la phase 1. Quand au cours de l’Ether, le prix reste toujours le résultat de l’offre et de la demande. Ce n’est pas parce qu’un projet est fondamentalement très bien, que son prix est élevé. Cependant, en cas de réussite Ethereum risque de voir son utilisation augmentée, et donc la demande d’Ether aussi. De plus, une certaine hype, ou effet de mode, peut gonfler la demande et faire monter le prix. Dans le cas contraire, s’il y a une faille, les possesseurs d’Ethers peuvent se mettre à vendre leurs actifs et donc le prix pourrait chuter.

J’espère que ce récapitulatif sur Ethereum vous aura intéressé. Nous restons à votre disposition pour échanger autour du sujet, et nous vous donnons rendez-vous le 1er décembre prochain pour voir si le lancement de la phase 0 a bien lieu.

LinkedIn
Reddit
Telegram
Steve
Steve Développeur & passionné par les technologies Blockchain