ViaBTC Capital|ZK-EVM : Le Saint Graal des ZK-Rollups

CoinEx French
8 min readAug 15, 2022

--

Récemment, plusieurs projets ZK-Rollup ont annoncé qu’ils prévoyaient de créer leur propre réseau principal ou réseau de test qui prendra en charge le ZK-EVM. Entre-temps, début août 2022, le fondateur d’Ethereum, Vitalik, a publié un blog comparant les différents types de ZK-EVM. Le Saint Graal du ZK-Rollup, qui pourrait être un outil puissant pour la mise à l’échelle d’Ethereum, est revenu sous les projecteurs du marché.

La mise à l’échelle d’Ethereum, un sujet fréquemment abordé, est attendue par de nombreux utilisateurs de crypto-monnaies. Il existe une idée fausse très répandue selon laquelle la fusion d’Ethereum prévue fin septembre permettra non seulement de faire passer le réseau de PoW à PoS, mais aussi d’améliorer ses performances. En fait, la fusion ne modifiera pas la taille des blocs, et le temps moyen de blocage ne passera que de 13 à 12 secondes. Par conséquent, l’amélioration des performances sera très limitée. En tant que tel, à court terme, Ethereum devra compter sur les Rollups pour la mise à l’échelle. Parmi les deux principaux types de rollups, à savoir les rollups optimistes et les rollups ZK, de nombreux utilisateurs préfèrent ces derniers car les rollups ZK peuvent également réduire les frais de transaction en regroupant plusieurs transactions hors chaîne, mais surtout, ils peuvent calculer une preuve de validité par le biais d’une preuve de connaissance zéro et la soumettre à Ethereum pour hériter des propriétés de sécurité du réseau, sans avoir à mettre en place une période de défi comme les rollups optimistes.

Les ZK-Rollups à paiement uniquement

Cela dit, au début, les ZK-Rollups ont surtout été critiqués pour leur incompatibilité avec les fonctions des EVM et des smart contracts. Par exemple, zkSync 1.0, la principale méthode de paiement pour faire des dons en Gitcoin, ne prend en charge que les fonctions de base telles que le transfert. À l’heure actuelle, les applications ZK existantes, comme dYdX, sont des applications personnalisées qui ne prennent pas en charge l’utilisation générale, ce qui les rend difficiles à développer et à modifier. En outre, comme les différentes applications ZK sont dotées de circuits spécifiques, elles n’interagissent pas entre elles, ce qui rend leur composition difficile. Par conséquent, il existe un besoin urgent d’applications ZK-Rollups qui prennent en charge les contrats intelligents basés sur Ethereum. De plus, la compatibilité avec les machines virtuelles qui supportent la preuve à connaissance zéro est la clé. Heureusement, plusieurs projets ZK-Rollup ont récemment annoncé leur intention de prendre en charge le mainnet ou le testnet de ZK-EVM. Aujourd’hui, nous allons nous plonger dans EVM, ZK-EVM, les principaux projets ZK-EVM et leurs différences.

Qu’est-ce que l’EVM ?

Fonctionnant comme le moteur d’exécution, EVM (Ethereum Virtual Machine) est l’environnement d’exécution des contrats intelligents sur Ethereum. Les développeurs écrivent la logique commerciale (code) au moyen de langages de haut niveau tels que Solidity, puis le compilateur compile le code en un bytecode de bas niveau. Ensuite, l’EVM analyse le bytecode en instructions lisibles par la machine (opcodes) et exécute la commande correspondante pour modifier l’état du système. L’EVM est une machine à pile ; c’est une machine virtuelle basée sur une structure de pile, elle doit donc interagir avec la pile, la mémoire et le stockage lors de l’exécution des opcodes.

Pour Ethereum, les protocoles de mise à l’échelle et ses rivaux de la chaîne publique, EVM est presque devenu synonyme de l’écosystème Ethereum. EVM représente les développeurs, les applications et les outils de l’écosystème Ethereum. Si une chaîne publique ne prend pas en charge EVM, elle devra alors former les développeurs de son propre écosystème en partant de zéro, et ces développeurs devront développer de nouvelles applications et de nouveaux outils. Quelqu’un a un jour comparé Optimism et Arbitrum, les deux géants du Rollup optimiste, et a fait remarquer que l’un est compatible à 99 % avec EVM, tandis que l’autre l’est à 100 %. Cela dit, dans le bouillonnant écosystème Ethereum, même une différence de 1 % se traduit par des avantages et des inconvénients évidents. Cela montre également que la compatibilité d’un projet avec EVM détermine directement sa compatibilité avec l’écosystème Ethereum, et que seuls les projets compatibles avec EVM peuvent permettre une migration transparente des contrats Ethereum existants, ainsi qu’un accès fluide aux nombreux outils disponibles dans l’écosystème Ethereum.

Le prochain ZK-EVM

Malgré le rôle clé joué par EVM dans l’écosystème Ethereum, le développement de ZK-EVM implique un processus très complexe. Les projets ZK-EVM sont compatibles avec EVM et permettent aux développeurs de générer des preuves ZK. Avec de tels projets, les développeurs peuvent directement déployer et exécuter des smart contracts Ethereum sans avoir à faire de modifications. En même temps, la validité des calculs concernant le fonctionnement des programmes peut être prouvée par la connaissance zéro. Les développeurs d’EVM n’ont pas tenu compte de la ZK au tout début, car lorsque EVM a été construit, la ZK n’avait pas fait de percées et n’était donc pas reconnue par le courant dominant. En 2016, Zcash a adopté zk-SNARK, qui marque la première adoption d’un algorithme de preuve à connaissance zéro. Certaines opérations de l’EVM ne sont pas compatibles avec l’algorithme ZK. En d’autres termes, la génération de preuves ZK avec EVM est difficile ou inefficace, ou les preuves ZK générées sont trop grandes.

Le développement de la ZK, bien connu pour sa barrière importante, nécessite une expertise en cryptographie, en mathématiques et en matériel. Le développement de la ZK-EVM est encore plus difficile car les ZK-EVM doivent être à la fois compatibles avec les EVM et compatibles avec la ZK. Heureusement, le domaine de la ZK a connu une augmentation des percées majeures au cours des dernières années, et des projets tels que Starkware, zkSync 2.0, Polygon, et Scroll sont tous en train d’accélérer la R&D des ZK-EVMs. En particulier, ces trois derniers projets ont récemment annoncé des plans de lancement de testnet.

Le 19 juillet, Scroll a lancé le testnet pré-alpha, où les utilisateurs peuvent essayer des programmes de démonstration tels que Uniswap (version fork) et Metamask. Le 20 juillet, Matter Labs a annoncé que zkSync 2.0, compatible avec EVM, serait mis en ligne sur le réseau principal aux alentours de novembre et a publié la feuille de route. Le même jour, Polygon a annoncé que son testnet ZK-EVM serait également lancé prochainement.

Une comparaison entre différents ZK-EVM

Comme il n’existe pas de spécifications ou de critères de conception unifiés pour le ZK-EVM, chaque équipe de projet élabore sa solution en faisant des compromis entre la compatibilité EVM et le soutien au ZK sous différents angles. À l’heure actuelle, la plupart des projets ZK-EVM adoptent l’une des deux approches suivantes :

  1. Prise en charge au niveau du langage : concevoir des opcodes EVM personnalisés ; construire de nouvelles machines virtuelles avec des architectures différentes en extrayant les opérations compatibles avec ZK ; transposer Solidity dans les opcodes des nouvelles machines virtuelles par le biais du compilateur.
  2. Support au niveau du bytecode : support des opcodes EVM natifs.

Les projets qui adoptent la première approche comprennent StarkNet de Starkware et zkSync 2.0. StarkNet, qui est la solution polyvalente ZK-Rollup de Starkware, peut exécuter n’importe quelle application numérique Ethereum. Les développeurs peuvent utiliser un compilateur pour compiler Solidity en Cairo (le langage de contrat intelligent de StarkNet), puis déployer la dApp sur sa VM compatible ZK. Comme Starkware, zkSync 2.0 réalise les fonctions ZK-EVM en développant deux compilateurs frontaux : Yul et Zinc. Yul est une représentation Solidity intermédiaire qui peut être compilée en bytecode pour différents backends, tandis que Zinc est un langage basé sur Rust pour les smart contracts et les circuits de preuve à connaissance zéro à usage général. Comme ils sont tous deux basés sur le framework LLVM open-source, ils génèrent le bytecode zkEVM le plus efficace.

Ces projets sont compatibles avec Solidity au niveau du langage, et les développeurs peuvent déployer et exécuter des contrats intelligents écrits dans Solidity par migration. Cependant, leur architecture VM sous-jacente n’est pas EVM. À proprement parler, ces projets utilisent un type de zkVM. En outre, comme ils sont dotés de commandes de machine virtuelle sous-jacente différentes, certains outils de développement existants ne peuvent pas être utilisés directement. Cela dit, ces projets sont favorables à ZK et peuvent générer des preuves à connaissance zéro plus efficacement.

Les projets qui adoptent la deuxième approche comprennent Polygon ZK-EVM et Scroll. Polygon ZK-EVM est appelé uVM, qui est une VM optimisée par zkCircuit avec des opcodes sur mesure pour optimiser l’interprétation EVM. Le bytecode EVM est d’abord compilé en “Micro opcode” et ensuite exécuté dans uVM. Prévoyant de prendre en charge tous les opcodes EVM, Polygon ZK-EVM est une solution de mise à l’échelle ZK entièrement compatible avec Ethereum : elle fonctionne de manière transparente avec tous les smart contracts, outils de développement et portefeuilles existants. Comme Polygon, Scroll concevra un circuit pour chaque bytecode, ce qui implique de vérifier chaque étape effectuée par EVM, notamment le chargement du bytecode, l’exécution de l’opcode, la mise à jour du stockage, etc.

Dans son billet de blog, Vitalik divise les ZK-EVM en plusieurs types. En particulier, les ZK-EVM de type 1 sont développés directement sur Ethereum, ce qui implique un processus de développement excessivement compliqué et inefficace, et la Fondation Ethereum se penche actuellement sur la question. Les ZK-EVM de type 2, de type 2.5 et de type 3 sont des équivalents des EVM. Scroll et Polygon Hermez se rapprochent des ZK-EVM de type 2, voire de type 2.5, mais pour le moment, les deux projets doivent être considérés comme des ZK-EVM de type 3. Les ZK-EVM de type 4, comme Starkware et zkSync, sont compatibles avec les langages de haut niveau. Ces types ne sont pas sans ambiguïté “meilleurs” ou “pires” que les autres types, et il n’existe pas de critères unifiés pour évaluer les ZK-EVM. Comme le dit Vitalik : “Théoriquement, il n’est pas nécessaire qu’Ethereum se standardise sur une seule implémentation de ZK-EVM pour l’utilisation de L1 ; différents clients pourraient utiliser différentes preuves, nous continuons donc à bénéficier de la redondance du code.”

Conclusion

Les codes n’étant pas encore open-source, les conceptions ZK-EVM ne sont pas catégoriquement meilleures ou pires que les autres conceptions car nous ne pouvons pas comparer leur efficacité à ce stade. Ethereum, la plus grande plateforme de contrats intelligents, bénéficie d’un écosystème solide et d’une grande influence sur le réseau. Il convient de noter que ZK-EVM est le Saint Graal des ZK-Rollups, et que les ZK-Rollups ne peuvent faire bon usage de l’écosystème et de l’influence d’Ethereum que par le biais de ZK-EVM, qui leur permet d’hériter de la sécurité d’Ethereum et d’accéder plus facilement à un écosystème de développeurs dynamique, ainsi qu’à des bases de code et des outils éprouvés. Au début de l’année 2021, Vitalik a déclaré dans un billet de blog que “à court terme, les rollups optimistes sont susceptibles de l’emporter pour les calculs EVM à usage général et les rollups ZK sont susceptibles de l’emporter pour les paiements simples, les échanges et d’autres cas d’utilisation spécifiques à une application, mais à moyen et long terme, les rollups ZK l’emporteront dans tous les cas d’utilisation à mesure que la technologie ZK-SNARK s’améliorera”. Au fur et à mesure que le testnet/mainnet des différents projets ZK-EVM se met en place, la mise à l’échelle de la couche 2 d’Ethereum va être fascinante dans un avenir proche.

Références :
Aperçu du ZK-EVM-p1,https://drive.google.com/file/d/1dhZ5GtSK4sHCNcklGzNHfR-lSzplpD8J/view
https://vitalik.ca/general/2022/08/04/zkevm.html
https://starkware.co/starknet/
https://blog.matter-labs.io/zksync-2-0-hello-ethereum-ca48588de179
https://polygon.technology/solutions/polygon-ZK-EVM/
https://blog.hermez.io/introducing-hermez-ZK-EVM/

--

--

CoinEx French
CoinEx French

Written by CoinEx French

Fondé en décembre 2017, CoinEx est un fournisseur de services d’échange de pièces numériques mondial et professionnel. Website: https://www.coinex.com/fr/

No responses yet