Source : Quatre Piliers ; Compilé par : Baishui, Golden Finance

Résumé

  • En 2023, zkRollups est passé de la recherche à la production, avec des projets tels que Starknet, zkSync, Scroll, Polygon zkEVM et Linea lançant leurs propres solutions.

  • L'écosystème zkRollup devient plus efficace et décentralisé avec le développement de nouveaux concepts tels que les coprocesseurs, les marchés d'attestations, les attestateurs partagés et les couches d'agrégation zk.

  • Le fonctionnement de zkRollup implique trois phases principales : l'exécution, la génération de preuves et la vérification de preuves, avec divers projets axés sur l'optimisation de chaque composant de la chaîne d'approvisionnement de zkRollup.

  • Les zkRollups tels que zkSync, Starknet, Merlin et SNARKnado développent leur infrastructure, mais ils en sont encore aux premiers stades de l'optimisation de leurs chaînes d'approvisionnement.

En 2022, zkRollups est principalement en phase de recherche. 2023 marque le début de leur avenir. De nombreux projets, dont Starknet, zkSync, Scroll, Polygon zkEVM et Linea, mettent leur Rollup en production. Les avantages sont clairs, avec un temps de finalisation plus court, une interopérabilité plus sécurisée et des coûts d'exploitation inférieurs par rapport aux cumuls Optimistic. Malgré ces avancées, les zkRollups sont encore à un stade expérimental par rapport aux rollups Optimistic, et leur feuille de route technologique change fréquemment.

Alors, quel avenir réserve à zkRollups ? De nouveaux termes tels que coprocesseur, marché du prouveur, prouveur partagé et couche d'agrégation zk apparaissent fréquemment dans de nombreux projets. zkRollup est développé de différentes manières et au sein de l'écosystème zkRollup, de nombreux composants sont en cours de construction pour rendre zkRollups plus efficaces et décentralisés. Si nous considérons le fonctionnement de zkRollups, le processus comporte trois étapes : l'exécution, la génération de la preuve de l'exécution et la vérification de la preuve. Il existe des projets correspondants pour chaque étape. Pour résumer brièvement :

  • Exécution : zkVM, coprocesseur

  • Génération de preuves : marchés de preuves, agrégateurs de preuves

  • Vérification de la preuve : couche de règlement

Chacune de ces catégories en est à ses débuts, mais à mesure que cette chaîne d'approvisionnement se développe, l'écosystème zkRollup deviendra plus efficace. Dans cet article, nous explorerons d'abord les bases de zk, puis nous plongerons dans les projets en cours de construction dans la chaîne d'approvisionnement zkRollup, ainsi que certains des principaux zkRollups dans Ethereum et Bitcoin.

1. Connaissance de base de ZKP et zkRollup

Le zkRollup mentionné dans le titre de cet article est une méthode de cumul utilisant une preuve sans connaissance (ZKP). Si vous avez rencontré le terme preuve de connaissance nulle dans l’écosystème blockchain, vous le connaissez probablement (sinon, ne vous inquiétez pas ; cela sera expliqué plus tard). Cependant, si vous demandez pourquoi et comment cette technique est appliquée aux rollups, vous aurez peut-être du mal à répondre tout de suite.

Pour trouver la réponse à cette question, dans ce chapitre, nous explorerons ce que sont les preuves sans connaissance et zkRollup, comment elles fonctionnent et pourquoi la technologie ZKP est bien adaptée aux cumuls.

1.1 Qu'est-ce que le ZKP ?

1.1.1 Aperçu du ZKP

Avant d'entrer dans les détails de ZKP, comprenons d'abord les composants impliqués dans le processus. Il y a deux composants principaux :

  • Prover : Prover détient une déclaration qu'il souhaite prouver au vérificateur pendant le processus ZKP.

  • Vérificateur : le vérificateur participe au processus ZKP et détermine si les déclarations du prouveur sont vraies sur la base des preuves fournies.

Explorons maintenant ZKP en détail. ZKP est une technologie cryptographique dans laquelle un prouveur peut prouver un fait spécifique sans révéler le fait lui-même ni aucune information connexe. ZKP présente trois caractéristiques principales : exhaustivité, fiabilité et connaissance nulle :

  • Exhaustivité : si la déclaration du prouveur est vraie, le vérificateur sera convaincu que la déclaration est vraie.

  • Fiabilité : si la déclaration du prouveur est fausse, celui-ci ne peut pas tromper le vérificateur en lui faisant croire qu'elle est vraie.

  • Connaissance zéro : au cours du processus de preuve, le vérificateur n'obtient aucune information supplémentaire autre que la véracité ou la fausseté de la déclaration.

1.1.2 Exemple ZKP

Ce n'est peut-être pas facile à comprendre simplement en regardant la définition. Utilisons un exemple bien connu « La grotte d'Ali Baba » pour expliquer la preuve de connaissance nulle.

Considérons le scénario suivant : Dans la grotte d'Ali Baba, il y a deux chemins, A et B, qui se rejoignent au fond de la grotte mais sont bloqués par une porte secrète. Le prouveur (P) prétend détenir la clé de la porte secrète, tandis que le vérificateur (V) veut vérifier que P possède réellement la clé.

Le processus de vérification suit ces étapes : P Entrez dans la grotte et sélectionnez le chemin A ou B. V ne sait pas quel chemin P a pris, mais peut demander à P de sortir par un chemin spécifique. Si P a une clé, P peut sortir de n’importe quel chemin. Après avoir répété ce processus plusieurs fois, V peut être sûr que P possède la clé. Cependant, V n’apprendra rien sur la forme ou les propriétés de la clé.

Appliquez ceci aux caractéristiques des preuves sans connaissance :

  • Intégrité : si P suit systématiquement les instructions de V sur plusieurs itérations, V peut être sûr que P possède la clé.

  • Fiabilité : si P possède réellement la clé, mais ment à ce sujet, il y aura inévitablement une situation dans laquelle P sera incapable de suivre les instructions de V, prouvant ainsi que l'affirmation de P est fausse.

  • Connaissance nulle : V est convaincu à travers de multiples itérations que P possède la clé, mais ne sait rien de l'apparence ou des propriétés de la clé.

1.2 Alors, que sont Rollup et zkRollup ?

Jusqu’à présent, nous avons exploré de A à Z les preuves sans connaissance. Cependant, il est important de se rappeler que cet article se concentre sur les zkRollups. Voyons maintenant ce que sont les rollups et les zkRollups.

1.2.1 Aperçu rapide du cumul

Rollup est une solution de mise à l'échelle de couche 2 qui traite les transactions sur la blockchain de couche 2, puis publie l'état du rollup sur la blockchain de couche 1 pour l'enregistrement et la gestion.

De nombreuses propositions ont déjà été faites pour résoudre les problèmes d’évolutivité d’Ethereum. Le premier est le sharding, qui divise le réseau Ethereum en plusieurs « fragments » plus petits pour augmenter considérablement le débit des transactions. De la même manière que plusieurs ordinateurs traitent des tâches simultanément, le partitionnement permet au réseau Ethereum de traiter davantage de transactions rapidement et efficacement.

Malgré les nombreux avantages, les développeurs d’Ethereum ont abandonné le partage direct en raison de préoccupations concernant une centralisation potentielle et de défis techniques, entraînant des retards. Au lieu de cela, ils ont adopté une approche de partitionnement indirect via une solution de couche 2. Dans cette approche, le processus de transfert des données de transaction vers la couche 1 par lots est appelé rollup. Actuellement, les Optimistic Rollups et les zkRollups sont les deux principaux types à la tête de l'écosystème.

1.2.2 Pourquoi ZK Proof et Rollup vont parfaitement bien

Les zkRollups diffèrent des cumuls optimistes en ce sens qu'ils utilisent des preuves de validité au lieu de preuves de fraude. Les zkRollups utilisent zk-SNARK ou zk-STARK pour compresser un grand nombre de transactions en une seule petite preuve, qui est enregistrée et vérifiée sur la blockchain de couche 1. Contrairement aux cumuls optimistes, cette approche améliore considérablement la vitesse et l’efficacité du traitement et ne nécessite pas de période de contestation en cas de résultats erronés.

La nature non interactive des preuves sans connaissance est cruciale pour l'efficacité et la commodité de zkRollups. Il permet aux rollups de gérer indépendamment le processus de rollup, maximisant ainsi l'efficacité en regroupant et en envoyant les données de transaction à la couche 1 selon leur propre calendrier. Cette approche non interactive évite les retards et les inefficacités potentiels qu'un processus plus interactif entre la couche 1 et le cumul pourrait créer.

La simplicité est un autre facteur clé de l'efficacité de zkRollups. Les zk-SNARK et zk-STARK sont capables de compresser de grandes quantités de données en petites preuves, ce qui garantit une efficacité économique lors de l'envoi de données de transaction vers la couche 1, plus coûteuse mais plus sécurisée. Cette capacité de compression permet à zkRollups de traiter plusieurs transactions en un seul lot, améliorant considérablement l'évolutivité de la couche 1 tout en offrant aux utilisateurs une infrastructure blockchain plus rentable dans un environnement de cumul.

1.2.3 Fonctionnement de zkRollup

Explorons plus en détail le fonctionnement de zkRollup et les composants impliqués. zkRollup est principalement exploité par deux composants :

  • Séquenceur : le séquenceur collecte et traite les transactions qui se produisent dans la couche 2 et soumet les résultats du traitement à la couche 1. Bien que certains projets de cumul aient des entités distinctes pour commander et générer des preuves de validité, par souci de simplicité, nous les traitons ici comme des rôles combinés.

  • Contrat de cumul : un contrat de cumul est un contrat intelligent sur la couche 1 qui détermine le statut et les transactions d'un cumul. Il reçoit, stocke et valide les données soumises par le séquenceur, assurant un stockage et une gestion appropriés une fois les données validées.

Le processus de fonctionnement de zkRollup est le suivant :

  • [Séquenceur <> L2] Traitement par lots de transactions et calcul des changements d'état : regroupez plusieurs transactions exécutées sur la couche 2 dans un lot, exécutez chaque transaction dans le lot et générez une racine d'état qui enregistre les nouveaux changements d'état.

  • [Séquenceur <> L2] Génération de preuve de validité : utilisez la nouvelle racine d'état pour générer une preuve de validité afin de prouver l'exactitude de la racine d'état. Cette preuve garantit que toutes les transactions du lot ont été exécutées correctement sans révéler les détails de chaque transaction.

  • [Séquenceur <> L2] Soumission de la racine d'état et de la preuve de validité : la preuve de validité générée, la racine d'état et les données de transaction cachées sont soumises au contrat de cumul de couche 1. Le contrat Rollup vérifie les données soumises.

  • [Séquenceur <> Contrat de cumul (L1)] Validation et mise à jour : le contrat de cumul de couche 1 reçoit la preuve de validité, la racine de l'état et les données de transaction de vérification du séquenceur. Il valide les données, met à jour la racine de l'état et, s'il n'y a aucun problème, stocke les données de transaction validées. Si un problème est détecté, la validation et les procédures stockées ne sont pas exécutées.

2. Aperçu de la chaîne d'approvisionnement de zkRollup

D'un point de vue d'oiseau, jetons un coup d'œil au fonctionnement de l'ensemble de la chaîne d'approvisionnement de zkRollups. zkRollups implique trois processus principaux : l'exécution, la génération de preuves et la vérification.

  • Exécution : cela se produit hors chaîne, avec des transactions exécutées par lots sur un réseau de cumul distinct, mettant ainsi à jour l'état du cumul.

  • Génération de preuves : compilez les entrées telles que les lots de transactions et les racines d'état. La route de preuve traite les transactions, générant des preuves zk concises qui prouvent cryptographiquement la validité des transitions d'état sans révéler de données.

  • Vérification de la preuve : le certificat zk et les données associées sont soumis au contrat du validateur sur la couche de règlement (principalement Ethereum) pour vérification. S'il est valide, le contrat de cumul mettra à jour son état pour refléter le nouveau post-état et attendra un court laps de temps pour terminer le changement.

Il existe des projets dédiés à chaque processus pour rendre zkRollups plus efficace. Dans la section suivante, examinons de plus près ce qu’implique chaque processus et quels projets les gèrent.

2.1 Exécution - exécution dans la route ZK

Les couches d'exécution et de règlement sont effectuées séparément, les calculs sont effectués sur des machines distinctes et la preuve d'exécution est générée dans la route zk. Cet environnement d'exécution peut être divisé en deux parties : zkVM et Co-Processor.

2.1.1 zkVM

Source : Foresight Ventures : zk, zkVM, zkEVM et leur avenir Auteur : Foresight Ventures Medium |

zkVM (machine virtuelle à connaissance nulle) est une machine virtuelle spécialisée conçue pour effectuer des calculs et générer des preuves à connaissance nulle afin de vérifier l'exactitude de ces calculs sans révéler les données sous-jacentes. Il existe plusieurs types de zkVM, chacun étant adapté à une machine virtuelle et un langage de programmation spécifiques. Voici quelques détails de ces projets :

  • zkEVM : il est conçu pour répliquer l'environnement EVM tout en intégrant des capacités de preuve sans connaissance. Cela permet aux contrats intelligents Ethereum et aux dApps existants d'être portés de manière transparente vers un Rollup basé sur zkEVM. Cependant, l'EVM pur présente des problèmes de compatibilité en raison de la complexité du développement de routes zk pour EVM et de ses mises à niveau fréquentes.

  • ZkVM universel basé sur RISC-V et MIPS : zkRISC est une implémentation spécifique de zkVM développée par RISC Zero. Il est conçu comme un zkVM à usage général capable d'effectuer des calculs arbitraires et de générer des preuves sans connaissance. Il permet de déployer des langages de programmation tels que C, Python et Rust et de générer des preuves d'exécution.

  • CairoVM : Cairo VM est conçu pour optimiser la génération de preuves de validité d'exécution de programme. Contrairement aux solutions zkEVM qui visent à rendre EVM compatible avec les cumuls de validité, Cairo VM est conçu dès le départ pour maximiser l'efficacité des preuves STARK. Cette approche permet de meilleures performances et évolutivité sans être contrainte par les limitations EVM. Cependant, il existe des obstacles à la création de dapps, car les développeurs doivent apprendre un nouveau langage.

2.1.2 Coprocesseur

Source : Phala's Path to 2024 : coprocesseurs de Blockchain – AI, Hooks et DePin

Les coprocesseurs sont développés en tant que processeurs hors chaîne pour faciliter des calculs spécifiques. Par exemple, les unités de traitement graphique (GPU) gèrent le calcul parallèle massif requis pour le rendu 3D, permettant au processeur central de se concentrer sur le traitement général. En ce sens, les coprocesseurs permettent aux blockchains d’effectuer des exécutions complexes, ce qui serait coûteux sur les blockchains. Chaque type de coprocesseur est conçu pour maximiser l'efficacité de la gestion de sa charge de travail spécialisée.

En tirant parti de ZKP, les coprocesseurs peuvent permettre des calculs hors chaîne sans confiance et vérifiables, garantissant l'exactitude et l'intégrité des résultats sans fuite de données sensibles. Certains projets connus incluent :

  • Axiom : Axiom développe un système de « coprocesseur ZK » qui permet aux contrats intelligents d'interroger les données historiques de la blockchain et d'effectuer des calculs complexes hors chaîne, tout en préservant la confidentialité et l'intégrité des données via ZKP.

  • Phat Contracts (Phala Network) : Phat Contracts est un coprocesseur qui améliore l'évolutivité, permet une expérience sans gaz, prend en charge la fonctionnalité multi-chaînes et fournit aux dApps un accès sécurisé aux données hors chaîne.

2.2 Génération de preuves - générer des preuves sans connaissance

Pour prouver la validité d'une transition d'état, l'opérateur de cumul (prover) génère un ZKP. Cette preuve confirme que la nouvelle racine d’état est correctement calculée à partir de l’état précédent. Étant donné que la génération de ZKP nécessite des ressources informatiques importantes, le processus de preuve de génération présente des limites, en particulier pour les gros lots de transactions ou les contrats intelligents complexes. Cela peut limiter le débit de zkRollups et les types d'applications qu'ils peuvent prendre en charge efficacement.

De plus, étant donné que les entités générant des preuves zk nécessitent une expertise dans le domaine et doivent maintenir le matériel à jour, les coûts de gestion peuvent être élevés, sans parler des risques de centralisation. En conséquence, certains progrès ont été réalisés dans ce domaine pour le rendre plus efficace. L'approche est divisée en deux parties : établir un marché de génération de preuves pour externaliser le processus de génération et créer une couche d'agrégation pour le rendre plus rentable.

2.2.1 Marché de la génération de preuves

Source : Gévulot Introduction |

Les principales fonctionnalités fournies par le marché de la preuve comprennent la génération décentralisée de preuves, les mécanismes d'enchères, ainsi que l'utilisation du matériel et la rentabilité. Les applications soumettent des demandes d'attestation au réseau et le prouveur répond à l'aide d'un matériel de génération d'attestation, garantissant ainsi que les demandes d'attestation sont traitées efficacement. Un mécanisme d'enchères associe ces demandes à des attestateurs, permettant ainsi une tarification d'attestation compétitive. De plus, le prouveur utilise du matériel dédié, ce qui réduit le coût de la preuve, et le marché décentralisé permet l'agrégation des demandes de preuves provenant de différentes applications, améliorant ainsi l'utilisation du matériel et la rentabilité.

Le marché de la preuve garantit également une résistance à la censure et une finalité rapide, et met en œuvre un mécanisme de jalonnement. Le marché garantit une résistance à la censure à court terme afin que les offres des prouveurs ne soient pas injustement bloquées ou ignorées. Les prouveurs sont tenus de miser sur le réseau pour empêcher les activités malveillantes et garantir la fiabilité et l’intégrité du réseau.

Enfin, les marchés profitent des économies d'échelle. La génération coordonnée de ZKP à grande échelle réduit les coûts pour les utilisateurs finaux. Le regroupement du flux de commandes d’épreuves permet aux prouveurs d’investir et d’exploiter une infrastructure plus efficace. Les applications peuvent également bénéficier de coûts de vérification en chaîne réduits puisque les preuves peuvent être regroupées pour l'optimisation. Certains projets incluent :

  • Réseau Succinct : Succinct Labs développe un marché de prouveurs décentralisé dans le cadre de son réseau Succinct pour créer un protocole unifié pour ZKP. Ce marché permettra aux applications d'externaliser leur génération de preuves à un réseau dédié de prouveurs, offrant ainsi une solution plus efficace et plus rentable pour les systèmes basés sur ZKP. Le marché des certificateurs fonctionnera grâce à un mécanisme d’enchères qui associe les demandes d’attestation d’une application à un ensemble diversifié de certificateurs.

  • = nul ; Fondation : = nul ; Foundation a développé un Proof Market, un système distribué décentralisé conçu pour servir de marché au comptant pour ZKP. Ce marché permet aux demandeurs de preuves (par exemple, les applications) d'externaliser la génération de zkProof à des producteurs de preuves dédiés. Le Proof Market fonctionne sur =nil ; le système de gestion de base de données de la Fondation et fonctionne plus comme un « Proof DEX » que comme un service centralisé.

  • Gevulot : Gevulot n'est pas un marché de preuves traditionnel, mais une couche de preuve décentralisée d'une pile modulaire. Il s'agit d'une blockchain de couche 1 sans autorisation et programmable, spécialement conçue pour déployer des systèmes de preuve en tant que programmes en chaîne. Contrairement aux marchés de preuves classiques, Gevulot permet aux utilisateurs de déployer des programmes de preuves et de vérification directement sur la blockchain, de la même manière que le déploiement de contrats intelligents sur Ethereum. Cette approche permet aux applications de bénéficier de preuves décentralisées sans amorcer leur réseau de prouveurs ni s'appuyer sur des solutions centralisées.

2.2.2 Prouver l'agrégation

Source : Prouvez-le : prouveurs partagés, agrégations de preuves et marchés des prouveurs - Delphi Digital

L'agrégation ZKP est une technique qui combine plusieurs ZKP en une seule preuve, réduisant ainsi le coût global de validation de ces preuves en chaîne. Ceci est particulièrement avantageux pour les cumuls qui dépendent fortement de ZKP. Certains projets remarquables incluent :

  • Polygon AggLayer : il vise à permettre une interopérabilité fluide entre les solutions L2 dans l'écosystème Polygon en tirant parti du ZKP agrégé et des contrats de pont unifiés (LxLy Bridge). La preuve d'agrégation garantit que les états de chaîne dépendants et les bundles sont cohérents, empêchant ainsi le règlement d'états de cumul invalides sur Ethereum s'ils dépendent d'un état invalide d'une autre chaîne.

  • Nebra : Son produit Universal Proof Aggregation (UPA) est un protocole d'agrégation de ZKP. L'UPA de Nebra peut regrouper des preuves provenant de différents itinéraires, systèmes de preuves et parties pour réduire de plus de 10 fois le coût du gaz de la vérification en chaîne. Nebra travaille avec des projets comme AltLayer pour intégrer UPA dans leurs solutions Rollup, permettant aux utilisateurs d'AltLayer et aux dApp de bénéficier de réductions de coûts significatives.

  • Electron Labs : Electron Labs a développé Quantum, une couche d'agrégation qui exploite la récursion zk pour regrouper les preuves de différents protocoles et divers schémas de preuve en une « super-preuve ». Cette super-preuve est ensuite vérifiée sur Ethereum, répartissant le coût de la vérification sur plusieurs protocoles et fournissant une vérification moins chère pour un seul protocole.

2.3 Vérification des preuves

Le processus de génération de preuves dans zkRollups est coûteux en termes de calcul. Cependant, la validation de ces preuves sur le réseau principal Ethereum est relativement légère, permettant une évolutivité tout en conservant les garanties de sécurité de la blockchain sous-jacente.

Les contrats intelligents vérifiés par zk dans Ethereum utilisent des algorithmes cryptographiques efficaces pour vérifier les preuves de validité. Si elle s'avère valide, la transition d'état proposée est correcte et la nouvelle racine d'état est acceptée, mettant ainsi à jour l'état de cumul sur le réseau principal. Certains projets, comme Aligned Layer, offrent une vérification plus rapide et moins chère en tirant parti des validateurs d'Ethereum.

2.3.1 Couches d'alignement

Source : livre blanc.alignedlayer.com

Aligned Layer est une couche décentralisée de vérification et d’agrégation ZKP conçue spécifiquement pour Ethereum. En tant qu’EigenLayer Active Validation Service (AVS), il exploite la sécurité économique d’Ethereum grâce à un processus appelé « resttaking », garantissant que les ZKP sont vérifiés avec précision et réglés sur la blockchain Ethereum.

Aligned Layer propose deux modes de fonctionnement différents pour répondre à différents besoins. Le mode rapide est optimisé pour un coût de vérification le plus faible et une faible latence, ce qui le rend idéal pour les applications nécessitant une vérification de preuve rapide et rentable. Le mode lent, quant à lui, exploite l’agrégation de preuves pour tirer pleinement parti des garanties de sécurité d’Ethereum, offrant ainsi une sécurité complète. Cette approche bimode permet à Aligned Layer de fournir des solutions flexibles qui équilibrent vitesse et sécurité en fonction des exigences spécifiques des différents cas d'utilisation.

3.Analyse zkRollups

Comme mentionné dans la section 2, divers projets travaillent à l'optimisation de la chaîne d'approvisionnement de zkRollup. Examinons de plus près les projets zkRollup les plus remarquables en production, en particulier les projets compatibles EVM zkSync et Starknet, et les projets compatibles Bitcoin Merlin Chain et SNARKnado.

3.1 zkSync

zkSync est une solution zkRollup développée par Matter Labs pour résoudre les défis d'évolutivité auxquels est confronté le réseau Ethereum. Bien que l’objectif initial de zkSync soit de faire évoluer Ethereum, ses ambitions vont bien au-delà d’une solution L2. Matter Labs considère zkSync comme la base d'un écosystème inter-chaînes complet conçu pour connecter de manière transparente divers cumuls basés sur zkSync. Pour atteindre cet objectif, zkSync développe un environnement inter-chaînes complexe mais convivial qui intègre la technologie zkRollup, ZK Chain et Hyperbridge. Jetons un coup d'œil à chaque concept.

3.1.1 zkRollup——Optimisation de l'efficacité économique

zkSync utilise la technologie zkRollup basée sur zk-SNARK, la méthode de génération et de vérification de preuves de zk-SNARK, qui a une petite taille de preuve et une vitesse de vérification rapide. Cependant, à mesure que les avantages de zk-STARK, tels que la résistance quantique et le traitement à grande échelle, sont devenus plus importants, zkSync tente également d'adopter partiellement zk-STARK. Par exemple, un système de génération de preuves appelé « Boojum » utilise zk-STARK. méthode pour générer des preuves.

3.1.2 Composants structurels

  • Séquenceur : le séquenceur de zkSync organise et traite les transactions selon des règles spécifiques. Sequencer inclut Prover, qui génère des preuves et des données de transaction qui ne peuvent pas être visualisées en détail et les envoie à la couche 1.

  • Prover : Prover dans zkSync utilise zk-SNARK pour générer des preuves. Les données utilisées dans le processus de génération de preuves incluent des données de transaction qui ne peuvent pas être visualisées en détail et des données avant et après le changement d'état représentant les changements d'état de la chaîne L2. La preuve générée est vérifiée par le contrat Rollup sur la couche 1.

  • Règlement : zkSync utilise les données générées sur la couche 2 pour la vérification et les mises à jour dans le contrat intelligent de couche 1. Si un problème de validation survient, les transactions du lot concerné ne seront pas mises à jour. Ce processus est modulaire et chaque ZK Chain connecte un ou plusieurs contrats intelligents qui seront présentés ci-dessous.

3.1.3 Chaîne ZK

ZK Chain est une blockchain qui va au-delà de la couche 2 et inclut l'infrastructure fournie par zkSync. Il s'appelle Beyond Layer 2 car zkSync utilise une structure en couches sans restriction, y compris des structures fractales comme L3.

La chaîne ZK la plus connue actuellement est la zkSync Era construite sur zkSync. Il est compatible EVM, permettant le déploiement de simples dapps. Cependant, pour l’objectif ultime de l’écosystème inter-chaînes de zkSync, la relation entre les différentes chaînes ZK est cruciale. zkSync se concentre sur la façon de se connecter à d'autres futures chaînes ZK.

Hyperbridge est un exemple d'environnement qui exploite ZK Chain. Grâce à Hyperbridge, les utilisateurs peuvent facilement envoyer tous les actifs des chaînes connectées vers leurs portefeuilles spécifiques à la chaîne. Les relais facilitent le pontage, la destruction et l'émission d'actifs lorsque les utilisateurs ont besoin d'utiliser leurs actifs en chaîne.

Par exemple, si vous utilisez Uniswap cross-chain et qu'un utilisateur de la chaîne era.zksync souhaite échanger 1 ETH contre 10 000 DAI, le processus est le suivant :

  • Générez la transaction « 1 ETH → 10 000 DAI » à partir du portefeuille de chaîne era.zksync.

  • Le relais transfère 1 ETH à uni.chain, l'échangeant contre 10 000 DAI.

  • Le relais transfère ensuite les 10 000 DAI échangés vers la chaîne era.zksync.

  • De cette façon, les utilisateurs peuvent facilement effectuer des transactions inter-chaînes à l'aide de l'environnement de zkSync sans avoir besoin de connaître les détails des autres chaînes.

3.1.4 Compatibilité EVM

zkSync revendique actuellement une compatibilité de 99 % avec Solidity et Vyper. Initialement, zkSync prend en charge le langage Zinc de type Rust pour implémenter un zkEVM plus adapté et plus efficace. Cependant, ils se sont concentrés sur la compatibilité Solidity, arrêtant le développement de Zinc à partir de septembre 2021 pour garantir une optimisation complète.

3.2 StarkNet

Starknet est similaire à zkSync dans la mesure où il s'agit d'une solution de couche 2 basée sur zkRollup, mais sa pile technologique et sa technologie interne sont différentes. Notamment, il utilise zk-STARK au lieu de zk-SNARK et utilise son propre langage de contrat intelligent, Cairo.

3.2.1 zk Rollup - Focus sur le traitement des cumuls à gros volumes

Starknet utilise zk-STARK pour générer et vérifier les preuves liées au cumul. Semblable à zkSync, il utilise uniquement avant et après les changements d'état pour gérer plus efficacement les données de cumul au niveau de la couche 1.

De plus, comme Starknet utilise zk-STARK, il bénéficie d'un environnement sans confiance et de la capacité de traiter un grand nombre de transactions simultanément. Cela fait de Starknet un premier choix pour les dApps DeFi ou les dApps de jeux avec des volumes de transactions élevés.

3.2.2 Caractéristiques structurelles

Structurellement, Starknet adopte une architecture similaire aux autres zkRollups. Mais ce qui le distingue, c'est l'exploitation active du modèle de preuve à connaissance nulle zk-STARK et le maintien de la compatibilité EVM via son langage de programmation propriétaire, Cairo.

Source : Architecture Starknet : Présentation

  • Séquenceur : Le séquenceur de Starknet joue un rôle crucial dans la gestion de la vérification et de l'exécution des transactions et dans la proposition de blocs. Sa fonction principale est de traiter les transactions par lots. Les transactions qui échouent à la vérification sont restreintes par le séquenceur et seules les transactions vérifiées seront incluses dans le bloc. Le séquenceur comprend également un prouveur chargé d'envoyer les données de cumul terminées à la couche 1.

  • Prouveur : les prouveurs de Starknet utilisent zk-STARK pour générer des preuves. Pendant le processus de génération de preuves, le prouveur enregistre chaque étape d'exécution de la transaction pour créer une trace d'exécution et suit les changements d'état dans la chaîne L2, en enregistrant State Diff. Le processus de génération de preuves nécessite une grande quantité de ressources informatiques et est conçu pour prendre en charge un traitement parallèle, permettant à plusieurs prouveurs de diviser le travail et d'effectuer des tâches simultanément.

  • Règlement : les données générées sur la couche 2 sont transférées vers la couche 1 (par exemple Ethereum), où les composants acceptent les transactions et gèrent les preuves et les différences d'état. Ces composants sont gérés par deux contrats intelligents : le contrat de validation et le contrat principal Starknet. Le contrat du validateur analyse les preuves reçues de la couche 2 et exerce un droit de veto sur la transaction si des problèmes sont détectés. Si la validité de la preuve est confirmée, elle est transférée au contrat principal Starknet, qui met à jour la chaîne de couche 1 avec les changements d'état fournis. Cet état mis à jour sera ajouté au bloc de chaîne de couche 1, et une fois que le bloc aura traversé le processus de couche 1, il sera affecté par la couche 1.

3.2.3 Compatibilité EVM

Starknet développe sa propre voie unique vers la compatibilité EVM via le langage du Caire. Pour déployer des contrats intelligents sur Starknet, vous devez utiliser Cairo. Bien que Cairo ne prenne pas encore en charge de nombreuses fonctionnalités de Solidity, Cairo est toujours à la traîne de Solidity en termes de taille de communauté et d'adoption, bien que le nombre de développeurs de Cairo augmente.

Le langage de contrat intelligent de Starknet, Cairo, hérite des fonctionnalités de Rust. Il est optimisé pour la génération de preuves zk-STARK et peut exécuter et générer efficacement des preuves pour les contrats intelligents. Surmonter les obstacles à l'utilisation de Cairo permet de déployer et d'exécuter des contrats intelligents dans un meilleur environnement, avec des données agrégées en toute sécurité à la couche 1.

Le tableau suivant présente les principales différences entre Cairo et Solidity.

3.3 Chaîne Merlin

Merlin Chain est une solution zkRollup de couche 2 basée sur Bitcoin développée par Bitmap Tech, une société principalement axée sur Ethereum. Merlin Chain est basé sur la technologie de preuve sans connaissance de Polygon et présente l'avantage d'être compatible avec EVM tout en stockant en toute sécurité les données Rollup sur Bitcoin L1. De cette manière, Merlin Chain vise à augmenter la liquidité et à étendre l’écosystème au sein du réseau Bitcoin, y compris BTC, avec le slogan « Make Bitcoin Fun Again ».

3.3.1 zkRollup – Une approche hybride des fonctionnalités Bitcoin

Merlin Chain utilise la technologie zkRollup qui combine zk-SNARK et zk-STARK. Initialement, ZKP ne pouvait pas être directement vérifié sur le réseau Bitcoin en raison des propriétés structurelles incomplètes de Turing du réseau Bitcoin. Cependant, après une mise à niveau de Taproot, une vérification partielle devient possible. Merlin Chain utilise Taproot pour enregistrer les données Rollup et prouver les données générées hors chaîne sur le réseau Bitcoin.

Dans Merlin Chain, zkProver est chargé de vérifier la validité des données de transaction et de générer des preuves basées sur les données vérifiées. Les étapes de ce processus sont les suivantes :

  • Les nœuds de séquence de Merlin Chain stockent les informations sur l'état actuel dans la base de données.

  • Le nœud de séquence envoie la transaction à zkProver.

  • zkProver accède à la base de données pour récupérer les données requises pour la vérification des transactions.

  • Une fois que zkProver a terminé la vérification de la transaction, il génère une preuve et l'envoie au nœud de séquence.

Le processus comporte plusieurs étapes. Tout d'abord, les transactions sont vérifiées et traitées à l'aide de zkEVM basé sur le langage d'assemblage zk (zkASM) développé par l'équipe Polygon zkEVM. Les données résultantes sont ensuite agrégées à l'aide de la puissance de traitement à grand volume de zk-STARK et compressées pour optimiser l'efficacité économique du Rollup. Enfin, zk-SNARK est utilisé pour générer des épreuves qui produisent des tailles d'épreuve cohérentes. Les données et preuves générées sont ensuite vérifiées dans l'environnement réseau décentralisé de Merlin Chain et téléchargées sur le réseau Bitcoin via Taproot.

3.3.3 Futures mises à niveau : preuve de fraude en chaîne

Bien que zkRollup semble bien fonctionner pour les solutions L2 dans l'écosystème Ethereum (comme discuté dans la section 3.2.1), il ne peut pas à lui seul garantir parfaitement la validité et l'exactitude des transactions au sein d'un rollup. Afin de combler le fossé causé par les différences dans la structure du réseau Bitcoin, Merlin Chain prévoit uniquement d'introduire un mécanisme de prévention de la fraude en chaîne similaire au cumul optimiste.

Les mécanismes de prévention de la fraude en chaîne fonctionnent dans la relation entre les proposants et les challengers des données cumulées. Les challengers peuvent contester les données de transaction, les informations d'état ZK et les preuves ZK téléchargées sur le réseau Bitcoin s'ils pensent que les données cumulées sont incorrectes. La plupart des transactions L2 n'ont pas besoin d'être revalidées sur le réseau Bitcoin (L1), mais si une contestation des données cumulées précédemment présentées est effectuée, les données et les transactions doivent être réexécutées et vérifiées. Si un personnage est jugé fautif, il sera puni.

3.3.4 Compatibilité EVM

Merlin Chain implémente la compatibilité EVM en utilisant zkEVM basé sur zkASM dans son zkProver. Cela permet d’exécuter des contrats intelligents développés à l’aide des outils et de l’infrastructure de développement Ethereum existants sur le réseau Bitcoin, offrant ainsi l’avantage d’étendre les fonctionnalités d’Ethereum à Bitcoin.

3.4 SNARKnado

SNARKnado est la solution de couche 2 basée sur Bitcoin d'Alpen Labs, mise en œuvre à l'aide de zk-SNARK. Alpen Labs vise à tirer parti de SNARKnado pour permettre aux blockchains de se concentrer davantage sur la vérification plutôt que sur le calcul, permettant ainsi une plus grande évolutivité et efficacité dans l'écosystème Bitcoin.

3.4.1 zkRollup - Successeur de BitVM

SNARKnado est un modèle modifié encore optimisé pour zk-SNARK qui emprunte à la structure prouveur-challenger utilisée dans l'approche BitVM Optimism. Cela améliore ses performances d'environ huit fois par rapport à BitVM. Cependant, il ne présente toujours pas l'avantage de BitVM2 de permettre à quiconque de lancer des défis, car SNARKnado limite actuellement les capacités de défi aux rôles autorisés.

3.4.2 Caractéristiques structurelles

Méthode de vérification de preuve - Polynôme bipartite

L'utilisation de zk-SNARK permet à SNARKnado de gérer les données de cumul et les données de preuve sur Bitcoin avec des tailles de preuve plus petites, mais les limitations de Bitcoin sur les calculs complexes nécessitent une optimisation de la vérification des preuves. SNARKnado résout ce problème en transformant les données de preuve à l'aide de polynômes de bissection. Le processus de vérification s'effectue via un calcul en chaîne activé par la mise à niveau de Taproot.

Lorsqu'un prouveur reçoit un défi, il divulgue certaines données requises pour le défi et passe par le processus de vérification avec le challenger. La méthode polynomiale bipartite est utilisée en vérification pour déterminer quel acteur (prouveur ou challenger) est en faute.

3.4.3 SNARKnado et BitVM ou BitVM2

SNARKnado partage de nombreuses similitudes avec BitVM, apparaissant notamment comme un point médian entre BitVM et BitVM2. Alors, quelle est la différence entre eux ? (Étant donné que BitVM2 est un modèle plus avancé que BitVM, la comparaison se concentrera principalement sur BitVM2.)

Tout d’abord, considérons l’utilisation des ressources internes de Bitcoin. BitVM2 montre intrinsèquement une augmentation linéaire de l'utilisation des ressources en chaîne, tandis que SNARKnado réduit cette augmentation au niveau de la racine carrée, optimisant ainsi l'utilisation des ressources en chaîne. Une autre différence est l'accessibilité des personnages qui peuvent lancer des défis. Alors que SNARKnado limite les défis aux rôles autorisés, BitVM2 permet à quiconque de lancer des défis sans autorisation.

3.4.4 Compatibilité EVM

Selon les derniers enregistrements d'Alpen Labs, la compatibilité EVM n'est pas encore officiellement prise en charge et il n'y a aucun projet futur en matière de compatibilité EVM.

4. Regarder vers l'avenir

En regardant les récents lancements du réseau principal zkRollups, nous avons assisté au lancement de zkSync Era en août 2023 et au lancement de Polygon zkEVM en décembre 2023. Ces projets n’existent pas depuis très longtemps et la plupart sont donc encore en développement actif. De plus, le développement s'étend au-delà de zkEVM. Des coprocesseurs génériques zkVM, zkWasm et hors chaîne sont également en développement pour la partie exécution, en utilisant des routes zk personnalisées.

Des efforts sont en cours pour améliorer l’efficacité de la chaîne d’approvisionnement à mesure que l’exécution de base et la génération de preuves deviennent plus fiables. Les stratégies comprennent la création d'un marché de prouveurs, le regroupement de plusieurs preuves et la création de couches de vérification pour une vérification rentable. On s'attend à ce que la chaîne d'approvisionnement de zkRollups devienne plus efficace et plus abordable à l'avenir.