Qu’est-ce qu’un rollup et comment fonctionne-t-il : optimistic vs zero-knowledge
2 mai, 2023
10 min
Que sont les rollups et comment fonctionnent-ils ? Nous expliquons les caractéristiques des optimistics et zero knowledge (zk), en clarifiant les différences et les caractéristiques communes.
Qu’est-ce qu’un rollup ?
En étudiant Ethereum, vous avez certainement rencontré les termes “rollup“, optimiste ou “zero-knowledge”, mais de quoi s’agit-il et comment cela fonctionne-t-il ? En bref, il s’agit d’une technologie de layer 2 qui augmente l’évolutivité de la blockchain principale en rassemblant plusieurs transactions en un seul “paquet“, améliorant ainsi la vitesse, la finalité et réduisant les frais d’échange.
Vitalik Buterin lui-même a entrepris d’expliquer ce que sont les rollups, car ils représentent une étape clé dans la feuille de route pour la réalisation de “l’ordinateur mondial” qu’il a imaginé. La blockchain Ethereum est en effet conçue pour héberger des applications décentralisées (DApps) de toutes sortes, au-delà du simple échange de valeur de pair à pair. Son réseau devrait donc être capable de gérer d’immenses volumes de trafic, sans sacrifier les performances ni augmenter excessivement les coûts.
Le trilemme de l’évolutivité représente toutefois un défi : les blockchains de la layer 1, c’est-à-dire les infrastructures de base au fonctionnement autonome (comme Bitcoin ou Ethereum), afin d’être plus flexibles et plus performantes, risquent de sacrifier un aspect entre la décentralisation et la sécurité. Il existe toutefois des solutions sans compromis : les couches de support (layer 2 et sidechain) qui fonctionnent en parallèle avec le réseau principal, en déplaçant les charges de travail hors de la chaîne.
Compte tenu de ces prémisses, nous pouvons comprendre ce que sont les roll-ups et comment ils fonctionnent : il s’agit de l’un des modèles possibles pour résoudre le trilemme de l’extensibilité, en plus des canaux d’État (comme dans le Lightning Network) et des chaînes de plasma.
Comment fonctionnent les rollups ?
Les roll-ups, de l’anglais “to roll up”, peuvent être soit optimistes, soit à connaissance zéro, mais ils partagent tous deux une structure de base et certaines étapes fondamentales. Avant de traiter les deux types individuellement, définissons donc en termes généraux ce que sont les roll-ups et comment ils fonctionnent.
Dans les deux cas, les transactions sont d’abord exécutées sur une layer 2 et regroupées en lots par un agrégateur ou un séquenceur. Les informations collectées sont ensuite compressées et envoyées à la blockchain principale (Ethereum), où elles seront traitées comme un seul échange et placées sur un bloc. De cette manière, les rollups augmentent les transactions par seconde (TPS) qui peuvent être traitées par la layer 1, tout en répartissant le coût des frais (gas fees) entre les différents participants.
Pour bien comprendre le fonctionnement des rollups, il faut considérer le rôle de l’ensemble des smart contracts qui reçoivent les blocs sur la blockchain principale. Ces programmes stockent et vérifient les données reçues, de sorte que les changements d’état valides sont enregistrés de manière immuable. Ceux-ci correspondent essentiellement à des mises à jour du solde des portefeuilles impliqués dans les transactions, Ethereum étant basé sur le modèle du compte.
L’état d’un rollup est représenté par la racine d’un arbre de Merkle, une structure de ramification organisée de manière hiérarchique. Cette “racine d’état” est un code de résumé cryptographique, similaire à un hachage : elle représente l’étape “finale” des soldes des expéditeurs et des destinataires, à la suite de toutes les transactions collectées dans le rollup.
Outre les “racines d’état”, les rollups doivent fournir une racine de lot : un autre code cryptographique dérivé d’un deuxième arbre de Merkle qui comprend des informations sur les différentes transactions d’un lot. Il est essentiel de comprendre le rôle de la racine pour comprendre ce que sont les rollups et comment ils fonctionnent : ils permettent à quiconque de reconstituer “l’historique” des transactions, de prouver leur inclusion dans le rollup et de vérifier l’exactitude de l’état final.
En fait, ces codes sont à la base de la production de la “preuve” que toutes les transactions du groupe sont légitimes. Cette étape peut toutefois avoir lieu à deux moments différents, selon qu’il s’agit d’un rollup optimiste ou d’un rollup zk (zero-knowledge) : comparons les deux types.
Des rollups optimistes et à l’épreuve de la fraude
Avant d’entrer dans les détails de ce que sont les roll-ups et de la manière dont fonctionnent les types optimistes et à connaissance zéro, il convient de faire une dernière remarque d’ordre technique. Les nœuds agrégateurs de la layer 2 doivent fournir une garantie pour produire les “paquets” de transactions. Comme dans le cas du Proof-of-Stake, ils doivent déposer un certain montant de pièces ou de tokens pour participer au processus de roll-up. De cette manière, ils sont incités à être dignes de confiance et honnêtes : si un bloc de rollup contenait des informations incorrectes, au point de le rendre invalide, les coins laissées en “gage” seraient détruits ou retirés au nœud frauduleux.
L’exactitude des roll-ups optimistes, est vérifiée à posteriori et uniquement “sur demande” : ils sont appelés optimistes précisément parce qu’ils supposent que les transactions collectées sont valides, envoyant ainsi des blocs sans “preuve” à la blockchain principale. Cependant, il existe un système anti-fraude qui prévoit une période fixe de 7 jours (période de contestation) au cours de laquelle d’autres nœuds de la couche 2 peuvent contester les résultats, fournissant ainsi une preuve de la fraude. Essentiellement, ils réexécutent off-chain les transactions contenues dans le rollup et, s’ils atteignent une “racine d’état” différente, le signalent au smart contract de la couche 1, qui procédera aux vérifications nécessaires.
Pour mieux expliquer ce que sont les rollups optimistes et comment ils fonctionnent, la blockchain principale peut résoudre le litige en un ou plusieurs tours, en déterminant objectivement qui a raison entre l’agrégateur qui a créé le bloc et le nœud challenger qui a généré la preuve de fraude. Dans le cas d’un seul tour de vérification, des informations supplémentaires sont demandées à la couche 2, afin que les transactions contenues dans le rollup puissent être traitées une par une, ce qui nécessite le paiement de gas fees plus élevés.
Par ailleurs, les nœuds en lice peuvent “argumenter” en plusieurs tours, en spécifiant à la layer 1 les informations précises sur lesquelles ils ne sont pas d’accord. Dans le cas des tours multiples, ils procèdent selon un “protocole de bisection” : le rollup est divisé en moitiés de plus en plus petites jusqu’à ce que le challenger reconnaisse celle qui contient l’erreur possible. Si ce dernier remporte le concours, il recevra une partie du staking de l’agrégateur.
En tout état de cause, les utilisateurs doivent attendre la fin de la “période de contestation” avant de retirer les fonds envoyés à la couche 1, même si le rollup ne fait l’objet d’aucune objection. La sécurité de l’ensemble du système est défendue par la possibilité de “critique” pendant cette période. La validité des roll-ups optimistes repose en fait sur l’existence d’au moins un nœud honnête : l’agrégateur ou l’objecteur fournissant la preuve de la fraude.
Roll-ups ZK et preuve de validité
Approfondissons ce que sont les roll-ups et comment ils fonctionnent, en considérant le type de connaissance zéro (ZK). Ces derniers suivent un schéma de vérification différent : les “supernodes” de l’agrégateur accompagnent les roll-ups de preuves de validité, afin de prouver cryptographiquement que les états proposés sont corrects. Cela minimise la quantité d’informations que le rollup doit contenir, car par définition, une preuve à connaissance nulle permet de prouver l’exactitude d’une déclaration sans révéler les données qui la composent.
Curiosité
Il existe deux types de preuves de validité : la ZK-SNARK (Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) et la ZK-STARK (Zero-Knowledge Scalable Transparent Argument of Knowledge).
La layer 1 se contente de vérifier la preuve de validité et de modifier “l’état racine” du contrat intelligent pour refléter les changements provoqués par le rollup. Par rapport aux rollups optimistes, les rollups zk sont donc plus “légers” et finalisés instantanément, car ils n’ont pas besoin de la période de contestation. Cela permet de transférer des fonds à la couche 1 et de les retirer en très peu de temps. En outre, les preuves de zéro connaissance peuvent être récursives, ce qui signifie qu’une preuve de validité peut en vérifier d’autres. Un seul ZK-SNARK ou STARK pourrait en fait agréger plusieurs blocs de rollup, de sorte qu’ils soient envoyés ensemble à la couche 1 et finalisés simultanément, ce qui augmente exponentiellement l’évolutivité.
Cependant, les preuves de validité sont déjà complexes à produire et nécessitent un matériel spécifique. Cela comporte un risque de centralisation et de censure mais, comme pour les roll-ups optimistes, les agrégateurs malhonnêtes sont punis par qui supprime des fonds. Si un utilisateur soupçonne que ses transactions n’ont pas été prises en compte, il peut le vérifier à l’aide des racines Merkle et, éventuellement, les envoyer lui-même au contrat de rollup.
Une dernière caractéristique à prendre en compte pour définir ce que sont les rollups et comment ils fonctionnent est leur compatibilité ou leur équivalence avec la machine virtuelle Ethereum (EVM) : l’environnement de programmation de l’ETH qui possède ses propres fonctions et langages spécifiques. Les couches 2 compatibles avec l’EVM peuvent accueillir des smart contracts conçus pour Ethereum, afin d’améliorer leurs performances grâce à des rollups. Il est plus facile de développer des technologies optimistes compatibles avec l’EVM, comme Optimism et Arbitrum, mais les exemples de connaissance zéro ne manquent pas, comme zkEVM et ZKSync de Polygon.
Les roll-ups sont-ils l’avenir d’Ethereum ?
Outre Polygon, de nombreux autres projets (tels que Consensys et Scroll) développent des solutions pour l’évolutivité de l’ETH. La feuille de route du projet de Vitalik a elle-même changé en raison du succès des rollups : avant le passage au PoS avec laThe Merge, Ethereum devait mettre en œuvre le sharding. La première version de cette solution a été rendue superflue par les rollups de projets tels que Arbitrum et Optimism , mais elle sera réintroduite à l’avenir sous la forme de Danksharding.
Maintenant que nous savons ce que sont les rollups et comment ils fonctionnent, et que nous avons approfondi les modèles optimistes et de connaissance zéro, nous pouvons apprécier leurs premières applications réelles, allant de la vérification de l’identité numérique au play-to-earn (comme les jeux vidéo ImmutableX). Les roll-ups sont-ils la clé de la réalisation du réseau polyvalent imaginé par Vitalik, ou les prochaines mises à jour d’Ethereum les rendront superflues ? La prochaine phase The Surge nous le dira peut-être.