ZK Rollup, Optimistic Rollup : les solutions de seconde couche à la rescousse d’Ethereum

Trading du coin Recevez notre sélection de cryptos en surveillance

Cela fait maintenant plusieurs semaines que nous explorons diverses solutions de seconde couche, ayant pour objectif de réduire la charge supportée par la blockchain Ethereum. Comme toujours dans le monde de la technologie, plusieurs solutions coexistent, avec chacune ses avantages et inconvénients. Parmi les solutions technologiques les plus médiatisées sur Ethereum, nous retrouvons les rollups. Qu'ils soient Optimistic ou Zero-Knowledge, découvrons ensemble leur fonctionnement !

Tous les ETH partent dans les frais

Chaque semaine, la même rengaine. Au cours des différents épisodes sur les solutions de seconde couche, telles qu'Optimism ou Loopring, nous avons mis en avant les problèmes de congestion rencontrés par Ethereum depuis bientôt un an.

Sans entrer une énième fois dans les détails, Ethereum fait face à une augmentation drastique du nombre d'utilisateurs ainsi que du nombre de smart contracts déployés et activement utilisés. De ce fait, la chaîne s'en retrouve congestionnée et un concours pour savoir qui aura les plus gros (on parle des frais de transaction) fait rage.

Ainsi, il est devenu courant de dépenser de plusieurs dizaines à plusieurs centaines de dollars pour interagir avec un smart contract : par exemple, pour effectuer un swap sur Uniswap. Une situation intenable qui nécessite que des mesures soient prises.

Rollup, la solution miracle ?

Cela fait plusieurs mois que Vitalik Buterin, co-fondateur d'Ethereum, milite en faveur d'une démocratisation des solutions de seconde couche. Celles-ci permettraient de réduire la charge supportée par Ethereum, en déportant une partie du traitement hors de la chaîne principale, en attendant la sortie d'Ethereum 2.0.

Parmi ces solutions, les rollups reviennent souvent comme étant l'un de remèdes les plus rapides à mettre en place. Évidemment, les rollups représentent une famille de solutions, en fait une véritable arborescence de sous-solutions, à savoir les Optimistic-Rollups et les ZK Rollups.

Avant d'entrer les spécificités de chacune de ces solutions, revenons sur ce qu'est le concept de rollup !

À l'instar des solutions de seconde couche de type sidechain qui évoluent en parallèle de la blockchain mère, les rollups sont des solutions hybrides qui allient données off chain (hors de la chaîne Ethereum) et données on chain (données stockées sur la chaîne Ethereum).

« Les rollups, en revanche, sont une représentation ‘hybride' de couche 2. Les rollups déplacent le calcul (et le stockage de l’état) hors chaîne, mais conservent certaines données par transaction sur la chaîne. »

Article de Vitalik Buterin, traduit par Ethereum France

En plus de déporter une partie du calcul et des validations hors de la chaîne, les données stockées on chain sont compressées pour réduire leur taille et, de ce fait, leur consommation de gas. Ainsi, alors qu'une transaction classique coute en moyenne 45 000 gas sur la chaine principale d'Ethereum, celle-ci ne coûte que 300 gas lorsqu'elle est déportée et compressée dans un rollup.

Comment fonctionnent les rollups ?

Comme souvent dans le monde des blockchains et notamment d'Ethereum, les rollups fonctionnent grâce aux arbres de Merkle. Par conséquent, l'ensemble des données d'un rollup peut être contenu dans un arbre de Merkle, qui agit comme référence de l'état du rollup.

Chaque solution de rollup dispose alors d'un smart contract sur la chaîne principale d'Ethereum contenant l'état racine du rollup – en d'autres termes le solde des comptes, le code du contrat et toute autre donnée dans le rollup. Cet état racine, considéré comme valide, sert de référence pour évaluer les états futurs.

De ce fait, seule la racine de l'état est publiée sur la chaîne principale et chacun est en mesure de recalculer l'ensemble des branches et des feuilles de cet arbre en partant de cette base.

Rollu-up arbre de Merkle
Publication de l'état d'un Rollup – Source : Article de Vitalik Buterin

Par la suite, lorsque de nouvelles transactions sont enregistrées en seconde couche, les utilisateurs ont la possibilité de publier un bloc, à savoir un ensemble de transactions sous la forme d'un arbre de Merkle, ainsi que la racine de l'ancien et du nouvel état. Le smart contract du rollup on chain va vérifier la validité de l'état racine proposé et son état précédent et, s'ils correspondent, le nouvel état racine devient l'état actuel du rollup.

Ajout de nouvelles transactions dans un Rollup
Publication de nouvelles transactions – Source : Article de Vitalik Buterin

Cependant, il s'agit désormais de savoir ce qu'il se passe lorsqu'un acteur malveillant publie un état racine frauduleux et qui ne devrait pas être accepté par le réseau. Pour ce faire, plusieurs solutions existent et c'est à ce stade que plusieurs types de rollups font leur apparition, les principaux étant les ZK Rollups et les Optimistic Rollups.

ZK Rollup : késako ?

Héritant des propriétés propres aux rollups, les ZK Rollups ou Zero-Knowledge Rollups permettent d'agréger des centaines de transactions ayant eu lieu off chain et de publier une preuve cryptographique de l'état des soldes à la fin de ces transactions sur la blockchain Ethereum.

Dans un système utilisant les rollups, nous retrouvons 2 types d'utilisateurs :

  • Les émetteurs (transactors) effectuent des transferts et diffusent leur transaction sur le réseau (L2) ;
  • Les relayeurs (relayers) collectent les transactions et, lorsqu'il y en a suffisamment créés par un rollup, ces derniers vont générer la preuve SNARK, qui représente la différence entre l'état des comptes avant et après le rollup.

Pour devenir relayeur, l'utilisateur doit déposer un collatéral sur le smart contract du rollup, afin d'assurer qu'il n'altérera ou ne retiendra aucune transaction. Si ce dernier commet une faute, une partie de son collatéral sera imputé. En pratique, cette pénalité diffère selon les implémentations.

En théorie, cette solution semble idéale : frais quasi inexistants, plus rapide que Plasma ou les Optimistic Rollups et informations stockées réduites sur Ethereum (augmentant de fait la scalabilité). Cependant, les ZK Rollups, comme toute solution technologique, présentent des désavantages. En effet, les preuves zero-knwoledge sont compliquées à calculer et pourrait réduire les capacités de scalling théoriques. En outre, le design de cette solution la rend vulnérable à certaines attaques, notamment lors de l'initialisation du rollup, à la création du premier état, comme l'explique la documentation Ethhub :

« La configuration initiale d'un ZK Rollup est supposée être un état de confiance, alors que cette confiance ne peut être prouvée. Cela nuit à la décentralisation et introduit le risque d'attaques par ingénierie sociale en convainquant un développeur de manipuler le code ou de fournir des informations sur les vulnérabilités. »

Documentation d'Ethhub

Optimistic Rollup

En parallèle avec les recherches sur les ZK Rollups, d'autres portant sur les Optimistic Rollups avancent à grands pas.

Les Optimistic Rollups suivent à peu près la même logique que leurs frères ZK. Les fonds sont stockés sur un smart contract on chain. Les transactions off chain sont, quant à elles, agrégées et publiées de manière compressée sur la blockchain Ethereum.

Cependant, c'est au niveau de la sécurisation des fonds que les mécanismes changent. Là où les ZK Rollups reposent sur la cryptographie pour assurer la validité des transferts, les Optimistic Rollups se basent sur un « jeu de validité » (ou « validity game »).

Ainsi, dans ce cas nous avons 2 types d'acteurs :

  • Les émetteurs qui effectuent des transferts et publient leurs transactions sur le réseau ;
  • Les agrégateurs qui s'occupent d'agréger les transactions et publier le changement d'état sur la blockchain Ethereum.

En revanche, la publication de ces états ne fait pas l'objet d'une preuve cryptographique, comme c'était le cas pour les ZK Rollups. Dans le cas des Optimistic Rollups, l'agrégateur agrège les transactions et calcule le nouvel état de la racine de l'arbre de Merkel du rollup. Une fois publiée, sa proposition ne sera considérée comme valide qu'après une période de 7 jours.

C'est au cours de cette période que s'opère la vérification. N'importe qui est en mesure de recalculer la racine de l'état publié peut vérifier si celle-ci est correcte. Si personne ne conteste les changements, ceux-ci sont publiés définitivement sur Ethereum au bout de 7 jours. Par contre, si quelqu'un conteste le nouvel état, celui-ci peut défier l'agrégateur en publiant la racine valide et récupère une partie du collatéral déposé par l'agrégateur frauduleux.

Ce mécanisme est présenté comme « optimiste », car il permet d'assurer que le réseau et les états sont fiables s'il existe au moins un validateur non frauduleux, à l'inverse des ZK Rollups, qui assurent les états via la cryptographie.

Les Optimistic Rollups présentent également plusieurs inconvénients. D'abord, ils sont moins efficaces en termes de scalabilité par rapport aux ZK-Rollups ou à Plasma. Ensuite, ces rollups disposent d'un temps de retrait du rollup vers la chaîne principale de 7 jours (le délai de vérification), ce qui peut s'avérer très inconfortable à l'utilisation. Pour terminer, le système de sécurisation optimiste peut lui aussi poser divers problèmes.

« Pour que les Optimistic Rollups fonctionnent, nous devons supposer qu'il existe une majorité honnête de validateurs Ethereum (mineurs dans Eth1, stakers dans Eth2), et qu'il existe au moins un agrégateur qui ne censure pas les transactions. »

Documentation d'Ethhub

ZK Rollup / Optimistic Rollup : le bilan

Comme nous venons le voir, les Rollups, quelqu'ils soient, laissent présager un avenir meilleur pour Ethereum, où les frais exorbitants ne seront plus qu'un lointain souvenir.

Bien qu'ayant quelques incertitudes au niveau de la sécurité, il semblerait que les Optimistic Rollups seront les premiers à être implémentés à grande échelle sur Ethereum. La raison est simple : ces derniers permettent d'exécuter des smart contracts sur une version modifiée de l'EVM d'Ethereum, à savoir l'OVM. De plus, plusieurs entreprises, dont ZkSync, travaillent activement sur le portage des smart contracts sur les ZK Rollups.

En attendant, divers protocoles ont d'ores et déjà annoncé leur migration vers les rollups, dont Uniswap sur Optimism dans les mois à venir. Il va désormais falloir prendre son mal en patience.

Renaud H.

Auteur

Ingénieur en software et en systèmes distribués de formation, crypto-enthousiaste 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.

Toute l’actualité des cryptomonnaies, analyses, vidéos et guides.

Copyright © 2017- 8Decimals - Tous droits réservés.

PARTAGER