
Aperçu des solutions zkEVM : analyse simplifiée de zkSync, StarkNet, Polygon zkEVM et Scroll
TechFlow SélectionTechFlow Sélection

Aperçu des solutions zkEVM : analyse simplifiée de zkSync, StarkNet, Polygon zkEVM et Scroll
Les progrès réalisés dans la conception des zkEVM sont notables, et 2023 pourrait être l'année décisive pour cette technologie.

Rédaction : Filippo Armani
Traduction : TechFlow
Les ZK Rollups, également appelés rollups de validité, constituent une méthode révolutionnaire pour étendre Ethereum, permettant le traitement des transactions en dehors de la chaîne principale et leur agrégation sous forme d'une seule transaction compressée sur la chaîne principale. Ce processus augmente le débit des transactions, réduit les frais tout en conservant la sécurité et la décentralisation de la chaîne principale.
L'utilisation des preuves à connaissance nulle (ZKP) est l'une des caractéristiques marquantes des ZK Rollups. Ce type de preuve cryptographique permet à un prouveur de démontrer à un vérificateur qu'une affirmation est correcte sans divulguer d'information supplémentaire.
Dans le cas des ZK Rollups, les ZKP garantissent l'intégrité des transactions hors chaîne, permettant au prouveur de démontrer la validité d'un lot de transactions sans en révéler les détails spécifiques, ni obliger le vérificateur à examiner chaque transaction avant d'accepter un nouvel état.
Comparés aux Optimistic Rollups, les ZK Rollups offrent un niveau de sécurité supérieur car ils n'introduisent aucune hypothèse de confiance supplémentaire au-dessus d'Ethereum, s'appuyant uniquement sur Ethereum et les mathématiques pour assurer la sécurité. Les Optimistic Rollups reposent sur la théorie des jeux et l'hypothèse du nœud honnête 1/n, ce qui signifie que pour chaque lot de transactions, il devrait toujours y avoir au moins un nœud honnête capable de contester une transaction malveillante.
En revanche, les opérateurs des ZK Rollups, aussi appelés séquenceurs et prouveurs, n'ont aucun moyen de compromettre les fonds des utilisateurs, leur rôle étant « simplement » de regrouper les lots de transactions et de générer les preuves ZK, tandis que les fonds des utilisateurs restent sur Ethereum L1, qui a finalement pour fonction de valider les preuves ZK soumises par la couche 2 et d'exécuter les transactions sous-jacentes.
Les preuves de validité sont générées par des calculs polynomiaux complexes appliqués aux données d'état. Si les données d'état sont invalides, aucune preuve de validité ne peut être produite. Le vérificateur sur L1 utilise ces données d'état pour valider la preuve ; ainsi, si le prouveur modifie les données d'état, le vérificateur rejettera la preuve.
Par rapport aux Optimistic Rollups, les ZK Rollups présentent deux autres avantages : une finalité plus rapide et une meilleure efficacité en matière de disponibilité des données.
Premièrement, ils permettent une finalité plus rapide. Dès lors qu'une preuve de validité est fournie, la transaction est confirmée sur Ethereum ; alors que les Optimistic Rollups nécessitent une période d'une semaine pour s'assurer qu'aucun défi n'est lancé, avant que la transaction soit considérée comme valide et définitive.
Deuxièmement, concernant la disponibilité des données, les ZK Rollups sont plus efficaces. Ils n'ont besoin que de publier les différences d'état, car il n'est pas nécessaire de reconstruire toutes les transactions pour la vérification. À l'inverse, les Optimistic Rollups doivent publier toutes les données afin que quiconque puisse les reconstruire et potentiellement les contester.
Par conséquent, les ZK Rollups utilisent moins de bande passante de données sur Ethereum (ressource rare partagée par tous les rollups, quel que soit le système utilisé pour exécuter les transactions, y compris les circuits ZK), permettant aux utilisateurs d'obtenir des frais encore plus bas (voire nuls).
Les zk-rollups sont considérés comme la solution ultime pour l'évolutivité d'Ethereum, mais leur mise en œuvre est difficile car la machine virtuelle Ethereum (EVM) n'a pas été conçue pour supporter les circuits ZK. Pour résoudre ce problème, de nombreuses organisations et chercheurs tentent de créer une machine virtuelle nommée zkEVM, capable d'exécuter des contrats intelligents d'une manière compatible avec les calculs de preuves à connaissance nulle.
Les quatre catégories de zkEVM proposées par Vitalik
Vitalik a décrit dans son article de blog quatre types de zkEVM basés sur leur compatibilité avec Ethereum.
Il convient de noter que :
Plus un zkEVM se rapproche des fonctionnalités d'Ethereum, plus la génération des preuves Zk est lente et coûteuse.
Inversement, plus une blockchain ou un rollup respecte les normes et spécifications d'Ethereum, plus il est facile pour les développeurs d'y construire des applications et de s'intégrer à l'écosystème Ethereum.
En somme, une blockchain hautement compatible avec Ethereum pourrait présenter un avantage concurrentiel.
Première catégorie : zk rollups entièrement équivalents à Ethereum, reproduisant fidèlement Ethereum dans tous ses aspects (hachage, arbres d'état, arbres de transactions, précompilations ou toute autre logique de consensus). À ce jour, aucun zkEVM n’a atteint cette équivalence complète avec Ethereum.
Deuxième catégorie : zk rollups entièrement équivalents à l’EVM, cherchant à correspondre exactement à l’EVM mais pas totalement à Ethereum. Ils sont pleinement compatibles avec les applications existantes, mais apportent de légères modifications à Ethereum pour faciliter le développement et accélérer la génération des preuves. Scroll et Polygon zkEVM relèvent théoriquement de cette catégorie ; en pratique, ils appartiennent actuellement au groupe suivant.
Troisième catégorie : presque équivalents à l’EVM, sacrifiant davantage d’éléments et d’équivalences pour accélérer la génération des preuves. Polygon zkEVM et Scroll appartiennent actuellement à cette catégorie, souvent considérée comme une étape intermédiaire vers la deuxième catégorie.
Quatrième catégorie : équivalence au niveau du langage de haut niveau, signifiant qu’ils acceptent tous les contrats intelligents écrits en Solidity, puis les convertissent en un autre langage personnalisé adapté aux zk. zkSync et StarkNet relèvent de cette catégorie, bien que zkSync envisage d’ajouter progressivement la compatibilité avec le bytecode EVM et évolue potentiellement vers des types supérieurs.
Bien que la classification de Vitalik soit actuellement la plus populaire et la plus impartiale, d'autres approches existent également.
Les quatre catégories proposées par Immutable
Immutable, une couche 2 basée sur StarkWare et spécialisée dans les NFT, propose dans l’un de ses articles de blog la classification suivante :

Ces catégories, comparées à celle de Vitalik, clarifient davantage selon quel niveau spécifique de la pile (langage de haut niveau, bytecode ou environnement d’exécution) chaque zkEVM atteint sa compatibilité ou équivalence avec Ethereum.
Compatible Solidity. La compatibilité avec Ethereum est réalisée au niveau du langage de haut niveau Solidity, ce qui signifie que les développeurs peuvent continuer à utiliser le langage habituel d’Ethereum pour écrire leurs contrats intelligents. Cependant, ces rollups convertissent immédiatement Solidity en une représentation intermédiaire propre, puis compilent en bytecode et exécutent dans un environnement personnalisé. Plus précisément, ces L2 utilisent des transpileurs pour convertir le code Solidity en un code lisible par leur VM personnalisée (Cairo pour StarkWare, LLVM-IR pour zkSync). Ces outils ne supportent pas certaines fonctionnalités Solidity, obligeant parfois les développeurs à ajuster leurs contrats. Exemples : zkSync et StarkNet.
Compatible EVM. Du point de vue du langage, ces rollups sont compatibles avec l’EVM, mais disposent de leur propre bytecode. Cela signifie que Solidity peut être directement compilé en opcodes / bytecode EVM, puis converti en bytecode personnalisé avant exécution sur leur VM personnalisée. En pratique, ces rollups sont compatibles avec la plupart des programmes Ethereum, mais certaines applications peuvent nécessiter une réécriture. De plus, certaines fonctionnalités de bytecode (comme les précompilations) ne sont pas supportées. Exemple : Polygon zkEVM.
Équivalent à l’EVM. Ces rollups créent un circuit de vérification zk capable de lire directement les opcodes et le bytecode EVM, même si la VM elle-même diffère de l’EVM. Ces rollups sont entièrement compatibles avec les applications existantes, mais peuvent inclure de légères modifications d’Ethereum pour faciliter le développement et accélérer la génération des preuves. Exemple : Scroll.
Équivalent à Ethereum. Cela signifie reproduire fidèlement Ethereum dans tous ses composants, similaire à ce que fait Polygon. À ce jour, aucun zk Rollup n’appartient à cette catégorie.
En combinant ce cadre avec celui proposé par Immutable, et en ajoutant d’autres informations, on peut dresser le diagramme suivant, mettant en lumière, en l’absence de données de performance disponibles, certaines différences et similarités de conception à considérer lors de la comparaison des différentes implémentations de zkEVM :

zkSync 2.0
zkSync 2.0 (récemment renommé zkSync Era avant son déploiement sur mainnet) est une solution d’évolutivité pour le réseau Ethereum, entièrement compatible avec le langage de programmation Solidity. Avec zkSync, les utilisateurs peuvent choisir entre deux types de disponibilité des données : zkSync Rollup et zkSync Porter. Le premier publie directement les données sur Ethereum, offrant une sécurité équivalente à celle d’Ethereum L1, tandis que le second stocke les données hors chaîne, offrant des transactions plus rapides et moins coûteuses, mais avec un niveau de sécurité moindre.
zkSync est compatible EVM car il convertit le code de contrat intelligent écrit en Solidity en Yul, puis Yul en LLVM-IR, avant de le recompiler en un ensemble de bytecode personnalisé compatible avec le circuit zkSync EVM. Bien que cela implique des étapes intermédiaires, cela permet aussi d’ajouter des fonctionnalités non-EVM comme l’abstraction de compte. De plus, Matter Labs, l’entreprise derrière zkSync, prévoit progressivement d’améliorer la compatibilité avec l’écosystème Ethereum, et compte lancer son premier prototype de couche 3, zkSync Opportunity, dans le domaine de l’évolutivité et de l’interopérabilité, dans le cadre de ses ambitions, déjà disponible sur testnet.
Au moment de la rédaction, zkSync Era vient juste d’être lancé, rendant prématuré tout jugement sur ses performances. zkSync 1.0 (désormais appelé zkSync Lite), qui ne supportait que des transactions simples, était l’un des plus grands zk rollups, avec plus de 83 millions de dollars verrouillés selon le TVL, et plus de 19 millions de transactions cumulées, contre seulement plus de 19 millions de dollars de TVL et 4 millions de transactions cumulées pour StarkNet.
StarkNet
StarkNet est un zk-rollup de type 4 / compatible Solidity, utilisant un type différent de preuve à connaissance nulle appelé STARKs (Scalable Transparent ARgument of Knowledge) pour garantir l’intégrité des transactions hors chaîne. Les STARKs sont considérés comme plus efficaces et évolutifs que les SNARKs, mais peuvent nécessiter une configuration technique plus complexe.
Bien que StarkNet supporte aussi les contrats intelligents, ses capacités sont relativement limitées en raison de l’utilisation des STARKs, et parce que les contrats StarkNet et le système d’exploitation StarkNet sont écrits en langage Cairo. Pour faciliter le développement, StarkWare a récemment mis à jour vers Cairo 1.0, qui imite Rust. Comme zkSync Era, StarkNet peut être classé comme « compatible Solidity », car il n’exécute pas les programmes dans l’EVM, mais crée une VM entièrement nouvelle et personnalisée, utilisant un bytecode propre. StarkWare utilise le transpileur Warp pour convertir le code Solidity en bytecode de la VM Cairo.
Toutefois, contrairement à zkSync Era et aux autres implémentations zkEVM, l’équipe de StarkNet ne vise pas la compatibilité avec l’EVM ou d’autres composants Ethereum, mais cherche plutôt à rendre la VM de StarkNet aussi efficace que possible via des API clientes personnalisées, des bibliothèques JavaScript et un système de portefeuille, ce qui oblige les outils compatibles Ethereum à ajouter manuellement le support de StarkNet. Bien que Cairo 1.0 ait introduit Sierra — une représentation intermédiaire sécurisée — comme couche intermédiaire entre Cairo 1.0 et le bytecode Cairo, le transpileur Warp ne prend pas en charge certaines fonctionnalités Solidity et reste loin derrière zkSync Era en termes de compatibilité EVM.
Polygon zkEVM
Polygon zkEVM est un zk-rollup utilisant un langage personnalisé, zkASM, pour interpréter le code zkEVM et valider l’exécution des contrats intelligents dans un environnement d’exécution non-EVM. Ce projet a commencé en 2021, après l’acquisition de Hermez Network pour 250 millions de dollars, afin de développer un système équivalent à l’EVM combinant sécurité et efficacité grâce à STARK et SNARK. Bien que les STARK soient utilisés pour générer des preuves de validité des états de transaction, les SNARK servent à évaluer la justesse des preuves STARK. Cette combinaison offre sécurité, rapidité et frais de transaction faibles.
En juillet 2022, Polygon a annoncé le renommage de Polygon Hermez en Polygon zkEVM, qui vient juste d’être lancé au moment de la rédaction. La dernière version du testnet de Polygon zkEVM introduit une fonctionnalité récursive permettant d'utiliser une preuve de validité ZK pour vérifier d'autres lots de preuves ZK, chaque preuve pouvant valider plusieurs transactions. Cette fonctionnalité repose sur Plonky2, un SNARK récursif 100 fois plus rapide que les alternatives existantes, nativement compatible avec Ethereum.
Outre Polygon zkEVM, Polygon développe aussi Polygon Avail, une blockchain optimisée uniquement pour la disponibilité des données. Ce réseau sera sans permission, permettant à quiconque de participer comme validateur, contrairement aux DAC (comités de disponibilité des données) existants, et comptera des centaines de nœuds collaborant à la sécurité du réseau. Avail fonctionnera conjointement avec Polygon Hermez (Rollup), en recevant les données d’état depuis Hermez au lieu de les publier sur Ethereum, offrant ainsi une solution intermédiaire entre Validium et Rollup.
Bien que certains experts indiquent que les spécifications fournies par Polygon correspondent mieux à une compatibilité EVM, l’équipe travaille activement à créer la première solution entièrement équivalente à l’EVM.
Scroll
Scroll est un zk-rollup équivalent à l’EVM, développé conjointement par l’équipe Scroll et le groupe PSE (Privacy and Scaling Explorations) de la Fondation Ethereum, actuellement en phase de testnet Pre-Alpha. Il vise une compatibilité totale au niveau du bytecode avec la machine virtuelle Ethereum (EVM), ce qui signifie que les développeurs peuvent créer des contrats intelligents avec n’importe quel langage compatible EVM et les déployer sur Scroll. Bien que Scroll ne supporte pas actuellement les opcodes EVM, il prévoit de mettre en place un mappage 1:1 et d’accepter directement les opcodes EVM sans compilateur.
L’architecture de Scroll comprend un nœud de sérialisation centralisé et un réseau de preuve décentralisé. Le nœud centralisé s’occupe de trier les transactions, créer les blocs et soumettre les données transactionnelles sous forme de calldata au contrat Rollup sur Ethereum pour la disponibilité des données. Scroll prévoit de décentraliser progressivement ce nœud. D’autre part, un générateur de preuves décentralisé appelé Roller produit les preuves et les publie sur le réseau L1, exploitant le calcul distribué. Les Rollers sont choisis aléatoirement et peuvent générer simultanément plusieurs preuves pour différents blocs, augmentant ainsi la vitesse.
*Note : Bien que seul le mode disponibilité des données sur chaîne soit actuellement supporté, la conception initiale de Scroll inclut aussi un mode Validium.
Effectivement, Scroll et Polygon adoptent tous deux une approche au niveau du bytecode pour construire leurs zkEVM. Cette méthode élimine complètement l’étape de transpilation, signifiant que ces zkEVM ne convertissent pas le code Solidity en un autre langage avant compilation et interprétation. Toutefois, alors que la seule différence entre Scroll et Ethereum réside dans l’environnement d’exécution, Polygon a créé une VM personnalisée optimisée, puis convertit le bytecode EVM en bytecode de cette VM. Contrairement à Scroll, l’environnement d’exécution de Polygon (« zkExecutor ») exécute des opcodes « zkASM » personnalisés (micro-opcodes sur le schéma) au lieu des opcodes EVM, afin d’optimiser l’interprétation EVM (réduisant le nombre de contraintes plutôt que de prouver directement l’EVM). Polygon zkEVM pourrait ne pas être compatible à 100 % avec le code Solidity, les outils et les applications, bien que la majorité le soit.
Bien que ces projets soient les plus remarquables dans le lancement d’implémentations zkEVM généralistes, d’autres projets applicatifs spécifiques utilisent également la technologie zk en pratique.
Loopring est un zk-rollup applicatif spécialisé, dédié aux protocoles d’échange décentralisé (DEX). Loopring est aussi une plateforme permettant à quiconque de construire un DEX à l’aide de preuves zk. Immutable X est un autre zk-rollup applicatif basé sur StarkWare, destiné aux transactions de NFT et aux jeux. Aztec est un zk-rollup basé sur Ethereum axé sur la confidentialité, qui chiffre les données tout en maintenant leur transparence et disponibilité pour le protocole, protégeant ainsi la vie privée des utilisateurs. De plus, Aztec a inventé le système de preuve PLONK, également utilisé par zkSync et d’autres projets.
Plusieurs protocoles, dont Immutable X, Sorare, rhino.fi, ApeX et dYdX, sont construits sur StarkEx. Dans les projets utilisant le ZK-Rollup StarkEx, les données sont envoyées à Ethereum sous forme de calldata et publiées sur chaîne. En mode Validium, les données sont stockées hors chaîne, seul le hachage étant conservé sur chaîne. Bien que le mode Rollup assure une sécurité supérieure (l'utilisateur peut recréer l'état du registre en interagissant uniquement avec Ethereum), le mode Validium permet des coûts inférieurs et une meilleure confidentialité.
Globalement, bien que zkSync Lite soit le plus grand zk rollup, StarkWare possède l’écosystème le plus vaste, incluant les projets construits sur StarkEx, avec le plus grand TVL et la plus grande part de marché.

Conclusion
En résumé, les zk-rollups représentent une solution prometteuse pour l’évolutivité des blockchains, offrant diverses implémentations répondant à différents besoins. Bien que plusieurs classifications existent, elles restent approximatives, faute d’un consensus clair sur les définitions et différences techniques.
Comme l’a admis Sandy Peng, cofondateur de Scroll : « Aucune définition ne bénéficie d’un consensus clair. “Toute l’équipe de recherche de Scroll” penche vers une certaine narration ou perspective, mais ce n’est pas une affaire tranchée. Notre équipe de recherche n’a même pas consensus sur la signification exacte de chaque chose. »
Néanmoins, certaines tendances communes émergent parmi les implémentations zk rollup :
Premièrement, elles adoptent toutes une approche hybride pour la disponibilité des données, offrant à la fois une version rollup traditionnelle avec stockage des données sur chaîne et une version validium avec stockage hors chaîne. Anurag Arjun, PDG d’Avail, a déclaré à Blockworks : « Personnellement, je pense que chaque rollup aura bientôt une version rollup et une version validium. »
Deuxièmement, la plupart évitent de rendre leur code entièrement open source avant le déploiement effectif, ce qui est aussi lié à la forte concurrence des rollups optimistes comme Arbitrum et Optimism. Les zk-rollups promettent une meilleure efficacité, mais sont techniquement plus difficiles à réaliser.
Troisièmement, comme le montre clairement le tableau ci-dessus, les rollups optimistes, notamment Arbitrum, bénéficient d’un avantage de pionnier et dominent actuellement le marché en termes d’applications, volume de transactions et part de marché. S'ils réussissent, ils pourraient intégrer le modèle de preuve de validité à leur base d'utilisateurs déjà établie (par exemple, la mise à niveau Bedrock d'Optimism pourrait introduire des preuves de validité).
Quatrièmement, bien que toutes les implémentations débutent avec un séquenceur centralisé pour gagner en efficacité, elles visent toutes à décentraliser progressivement ce composant pour répondre aux préoccupations liées à la centralisation. Curieusement, la décentralisation du séquençage pourrait nécessiter une incitation économique via un jeton natif, une étape que tous les projets mentionnés devront probablement franchir.
Enfin, les progrès impressionnants accomplis par ces implémentations zkEVM au cours de l’année écoulée ont suscité un regain d’intérêt pour la technologie zk en général, poussant les entreprises à investir dans divers domaines, notamment le développement de nouveaux matériels zk pour accélérer la génération des preuves.
Malgré les défis restants, les avancées réalisées en matière de conception zkEVM en un peu plus d’un an sont remarquables, et 2023 pourrait bien être l’année charnière pour cette technologie.
Bienvenue dans la communauté officielle TechFlow
Groupe Telegram :https://t.me/TechFlowDaily
Compte Twitter officiel :https://x.com/TechFlowPost
Compte Twitter anglais :https://x.com/BlockFlow_News














