Moins visible que le gros débat sur l'EIP-1559, un autre grand changement attend le réseau Ethereum en mai. Les Optimistic Rollups pourront résoudre les problèmes actuels de congestion du réseau et permettre la suite de sa croissance, en attendant le Proof of Stake, prévu pour dans 1 an et demi.
Si Ethereum est bien congestionné depuis des mois par l'utilisation massive des smart contracts, les développeurs ne chôment pas. L'explosion de la BSC et des blockchains concurrentes a, semble-t'il, accéléré les choses. Entre l'EIP-1559 qu'on couvrait la semaine dernière et les Optimistic Rollups, ces deux changements majeurs désormais prévus pour le printemps 2021 pourraient décongestionner massivement le réseau. Si celui-ci était enfin rendu utilisable à nouveau, plus rien n'empêchera le prix de l'Ether de partir en mission lunaire.
Les Layer2 d'Ethereum
Avant de rentrer dans les détails d'Optimistic Rollup, prenons le temps de clarifier un peu les concepts derrière ce terme.
Actuellement, la blockchain Ethereum génère un bloc toutes les 14-15 secondes. Ceux qui savent comment fonctionne une blockchain savent également qu'il faut attendre plusieurs blocs après le bloc contenant notre transaction pour avoir l'assurance que celle-ci est bien validée (en général, 5 ou 6 blocs font l'affaire). Sur Ethereum, ça représente aujourd'hui 3 minutes.
Si on voulait accélérer la vitesse de production des blocs, il faudrait alors simplifier le problème cryptographiques auquel s'attaque les noeuds à chaque nouveau bloc. Cela se ferait, malheureusement, au détriment de la sécurité du réseau, ce qui est hors de question.
Cette vitesse de production de bloc est donc, en soi, incompatible avec certaines applications de la blockchain (comme les jeux, par exemple). Mais pire ! Elle est à la source de la congestion du réseau : il ne produit tout simplement pas assez de blocs pour pouvoir y stocker toutes les transactions en attentes, la taille des blocs étant limitée.
Les solutions dîtes Layer2 sont des technologies destinées à déporter de la charge de travail d'Ethereum vers des blockchains secondaires, tout en inscrivant les transactions dans la blockchain principale (la Layer1), ainsi que les informations nécessaires pour prouver que le boulot a été bien fait sur la chaine secondaire.
Si jusqu'ici, les Zero-Knowledge Proofs (ou preuves à divulgation nulle de connaissance) avaient le vent en poupe dans l'architecture des différentes solutions de Layer2, c'est bien les Optimistic Rollups qui semblent être, à présent, la meilleure voie pour améliorer le cas d'utilisation générale.
Optimistic Rollups : un système d'agrégation
Pour permettre une amélioration massive de la gestion des smart contracts par le réseau, les Optimistic Rollups vont introduire deux nouveaux acteurs clés dans l'écosystème de la blockchain: les agrégateurs et les validateurs.
Leur mission est simple : obtenir ensemble un consensus sur un ensemble de transactions, plutôt que de demander à tout le réseau principal d'obtenir le consensus sur chacune de ces transactions. L'ensemble de transactions qui a alors atteint le consensus des agrégateurs sera alors publié dans un smart contract, sur le réseau principal.
Si la mission est facile en apparence, il y a un hic : qu'est-ce qui nous garantit que les noeuds de la sidechain ne vont pas essayer de "tricher" ? En effet, le niveau de sécurité de la sidechain n'est pas (par définition) le même que celui d'Ethereum (hashrate, adoption, etc), hors on voudrait quand même garantir un niveau de sécurité similaire.
C'est là que les validateurs entrent en jeu. Voici le processus complet :
- Un agrégateur collecte les transactions à exécuter ensemble, et envoie un bloc rollup sur le smart contract des Optimistic Rollups sur la main chain d'Ethereum. Ce bloc n'est ni interprété, ni exécuté, il contient simplement les informations des transactions et des blocs correspondants de la sidechain. Avec sa soumission de bloc, l'agrégateur fournira aussi une garantie en Ether. On y reviendra.
- Le bloc contient un état racine, l'arbre de Merkle de l'état de la sidechain. Si cet état est invalide, n'importe qui peut le prouver facilement (dans une certaine limite de temps), il suffit de rejouer l'historique des transactions. Pour ce qui est des appels aux smart contract, l'ensemble des paramètres d'appels ont été enregistrés, on peut donc relancer tout le calcul et vérifier si on arrive au même résultat.
- A partir de là, deux scénarios sont possibles. a) Quelqu'un (un validateur) arrive à fournir une preuve de fraude avant la fin du délai, auquel cas le bloc et tout les blocs suivants sont invalidés. La garantie de l'agrégateur est saisie, une partie viendra récompenser le validateur qui a prouvé la fraude, et rembourser les frais de transaction aux autres utilisateurs impactés. Le reste sera brulé. b) Personne n'a fourni une preuve de fraude avant la fin du délai, le bloc est validé, la garantie et la récompense de bloc sont fournies à l'agrégateur. Les fonds peuvent être désormais retirés.
Et voila ! Si la mécanique de base du système n'est pas très compliquée, celle-ci implique de nombreux détails techniques un peu plus pointus qu'on ne détaillera pas maintenant (comme par exemple, le fait que la machine virtuelle d'Optimistic, l'OVM, devra être simulée dans l'EVM pour vérifier les transactions. C'est possible parce que l'EVM est turing-complète). Pour ceux qui sont friands de détails techniques, je vous recommande cet excellent article (en anglais, malheureusement).
En bref
Les Optimistic Rollups seront, comme toutes les solutions Layer2, à implémenter par les dApps pour performer mieux. Il ne s'agit pas d'un déploiement qui décongestionnera instantanément le réseau, mais simplement d'une nouvelle option de Layer2 disponibles pour les dApps.
Ceci dit, à la différence des autres solutions Layer2 (à part peut-être les ZK Rollups), les OR ont l'avantage de pouvoir bénéficier du même niveau de sécurité qu'Ethereum, ce qui n'est pas une petite affaire.
Si les différentes dApps travaillent depuis longtemps sur des solutions Layer2 pour retrouver leur utilisabilité (on peut citer par exemple l'expérience d'Unipig, le proof of concept d'Uniswap sur les ZK Rollups), les Optimistic Rollups sont très attendus à ce stade, car la sécurité n'est pas une option lorsqu'on gère des milliards de TVL. Les principaux projets DeFi participent d'ailleurs activement au développement de la solution.
Les mises à jour respectives de ces dApps décongestionneront peu à peu le réseau, et celles-ci ne se feront pas attendre très longtemps : il ne faut pas oublier qu'elles sont en concurrence les unes avec les autres. D'autre part, rien qu'Uniswap, qui participe au processus de développement, pourrait influencer grandement l'état du réseau, avec ses 55 000 utilisateurs (12x plus que la 2e dApp du classement) !
D'après Vitalik, le réseau devrait suivre approximativement cette roadmap :
Selon lui, le réseau ETH1 avec rollups atteindrait entre 1000 et 4000 TPS (un bon x100 par rapport au réseau actuel), avant de prendre tranquillement la route des 25k-100k TPS avec le sharding et le proof of stake, dans 1 an et demi (ou 2 ans). Ne vous y trompez pas, le réseau est à la traine actuellement, mais n'allez pas croire qu'Ethereum est mort, loin de là. Les développeurs d'Ethereum sont toujours présents, et ne cessent de trouver de nouvelles astuces ingénieuses pour améliorer le réseau.