L'une des technologies les plus prometteuses au sein de l'écosystème Ethereum est zkEVM ou Zero-Knowledge EVM, un projet qui vise non seulement à améliorer les performances de la machine virtuelle Ethereum, mais aussi à faire un énorme saut technologique qui se traduira, non seulement par une plus grande vitesse de fonctionnement, mais aussi en ajoutant des améliorations qui protégeront notre vie privée lorsque nous interagissons avec les contrats intelligents qui sont exécutés à l'aide de ce nouvel EVM.
ECe projet est promu par les développeurs de zkSync, une société nommée Matter Labs qui, depuis 2018, cherche à créer une solution d'évolutivité et de confidentialité unique en son genre. De plus, parce qu'il s'agit d'une solution de type logiciel libre, elle peut être adaptée à tous les projets dérivés d'Ethereum, favorisant ainsi le développement de cet écosystème en quête de nouveaux horizons.
zkEVM, la puissance de ZKP atteint les contrats intelligents
Pour comprendre ce qu'est zkEVM, il faut connaître les deux technologies que ce projet cherche à unir. Tout d'abord, l'acronyme zk signifie que ce projet utilise le célèbre Preuves de connaissance zéro ou preuves de connaissance zéro pour sa fonctionnalité. Cette fonctionnalité vous permet d'ajouter des fonctions uniques visant à offrir un environnement plus privé à l'exécution des contrats intelligents qui se produisent sur l'EVM et qui sont stockés sur la blockchain.
Rappelons qu'à chaque interaction que nous réalisons avec un contrat intelligent (par exemple lorsque nous effectuons un échange dans Uniswap), ce processus génère une série de données qui sont stockées dans la blockchain Ethereum (ou le réseau que nous utilisons).
Toutes ces informations sont publiques et pseudo-anonymes, et peuvent être vérifiées et suivies à tout moment. Le pseudo-anonymat protège en tout cas assez efficacement notre vie privée, mais il laisse toujours des traces que d'autres peuvent utiliser pour suivre notre activité et nous identifier dans la vraie vie. Avec ZKP, il est possible, non seulement d'éviter cette faiblesse, mais en même temps de faire en sorte que les opérations cryptographiques prennent moins de place, soient également vérifiables et auditables, en plus d'ouvrir la possibilité de gérer les états informatiques de manière beaucoup plus efficace et efficiente façon.
Maintenant, si nous unissons les ZKP et les intégrons dans l'EVM, nous avons la capacité de transformer des réseaux comme Etheruem et ses dérivés en des espaces beaucoup plus sécurisés, puissants et évolutifs, précisément les objectifs que le zkEVM cherche à atteindre :
- Réduisez les commissions sur les opérations, en raison de la réduction du coût de calcul des opérations.
- Maintenir un fonctionnement sans confiance des réseaux mettant en œuvre des zkEVM.
- Améliorez la confidentialité et la sécurité du réseau sur lequel le zkEVM est déployé.
- Activez les nouvelles technologies qui peuvent être appliquées aux contrats intelligents. Par exemple, la possibilité d'améliorer l'expérience d'utilisation des jetons NFT ou d'autres fonctions avancées pour d'autres normes.
zk, une technologie qui change tout
Maintenant, expliquons un peu plus en profondeur certains concepts avant de continuer :
C'est quoi zk ?
Lorsque nous voyons zk au nom de zkEVM, nous devrions penser comme nous l'avons déjà mentionné dans le ZKP ou Zero Knowledge Proofs.
Un protocole Zero Knowledge, ou ZKP, est un protocole cryptographique avancé utilisé pour créer des systèmes distribués hautement sécurisés et anonymes. Les protocoles ZKP permettent de partager et de vérifier les informations sans révéler de données inutiles, maintenant ainsi un très haut niveau de sécurité.
Fondamentalement, ce mécanisme de cryptographie cherche à créer un moyen de montrer au monde qu'il existe un secret, quelque chose de si secret que seule la personne qui a le secret en sa possession sait exactement de quoi il s'agit.
Mais comment montrer qu'on a un secret sans le révéler ? Eh bien, pour cela, ZKP utilise une série de données mathématiques qui permettent à d'autres personnes de vérifier que le secret existe réellement et est en possession de celui qui prétend l'avoir, mais à aucun moment aucune information sur ledit secret ou son contenu n'est révélée. , ni quoi que ce soit qui permette de relier les informations données pour vérification à la nature du secret lui-même.
Ainsi, ZKP vous permet de révéler un secret sans le révéler réellement, simplement en offrant une preuve mathématique que le secret existe et que vous pouvez faire confiance à sa réalité. L'avantage de ce type de cryptographie est qu'il est non seulement sécurisé contre les attaques actuelles, mais également contre les attaques futures (ex : ZKP résiste à l'informatique quantique), ainsi qu'il est plus efficace en termes de calcul en termes d'exécution et d'espace utilisé par leurs preuves cryptographiques. Pour cette raison, de nombreux projets s'intéressent à ce type de technologie pour améliorer l'efficacité, la sécurité et l'évolutivité des réseaux blockchain.
zk-Rollup, l'évolution des Rollups
Alors que les ZKP sont extrêmement puissants, si nous combinons ce pouvoir avec les Rollups, les choses changent radicalement pour le mieux. Les rollups sont une technologie d'évolutivité sidechain qui a une opération assez simple. L'idée est de regrouper une série de transactions (ex : toutes les opérations d'un bloc) et d'en générer une transaction unique qui est publiée sur le mainnet du réseau auquel ladite sidechain est rattachée.
Ainsi, un rollup fonctionne comme un récapitulatif des opérations publié sur un réseau principal, alors qu'il est lié à un ensemble d'opérations sur une sidechain et où il peut être vérifié de manière claire et sécurisée. Ce n'est pas une nouvelle technologie, en fait, le Lightning Network utilise un système très similaire, puisque les opérations des canaux LN finissent par être synthétisées en une seule opération au sein de Bitcoin.
Les rollups sont très utiles, mais il y a un problème : la cryptographie actuellement utilisée dans la blockchain (cryptographie asymétrique) génère de grandes preuves qui sont inefficaces en calcul et avec quelques problèmes de fongibilité (ex : dans les rollups optimistes, il est possible de manipuler économiquement les opérations).
Ainsi, dans le but d'améliorer cette technologie, sont nés les zk-Rollups, qui présentent non seulement tous les avantages des Rollups et des ZKP, mais résolvent également les problèmes de sécurité de certaines implémentations de Rollup.
Architecture et fonctionnement du zkEVM
Or, réaliser le processus qui permet au zkEVM de fonctionner est assez complexe, celui sur lequel les développeurs de Matter Labs travaillent depuis 2018.
Comprendre le fonctionnement de l'EVM
Examinons d'abord le fonctionnement normal de l'EVM : tNous avons les contrats intelligents qui sont tous ces programmes écrits en Solidity que nous pouvons voir dans la blockchain et les référentiels logiciels des projets DApps que nous connaissons. On peut dire que ce code est ce qui fait fonctionner Dapps, bien que ce ne soit pas tout à fait correct. L'EVM n'exécute pas directement le langage Solidity, car l'EVM n'interprète pas directement le langage.
Ainsi, nous arrivons au deuxième point, la compilation de contrats intelligents. Chaque contrat intelligent écrit en Solidity (ou compatible) est compilé et à partir de celui-ci est généré un bytecode, un code machine que l'EVM est capable de gérer. Ce bytecode est connu sous le nom de Smart Contract Bytecode, et est le prélude à l'exécution de contrats intelligents sur le réseau.
Bien entendu, ce bytecode est composé d'une série de OP_CODE ou codes d'opération, qui sont des instructions précises que l'EVM a mises en œuvre et peut exécuter pour faire fonctionner les contrats intelligents. Cet OP_CODE généré donne les instructions précises que l'EVM doit exécuter pour faire son travail : nous permettre d'utiliser les Dapps ou toute opération au sein du réseau. Cet OP_CODE peut être examiné en détail dans la spécification trouvée dans le Papier jaune Ethereum.
Enfin, les nœuds du réseau, tous dotés d'un EVM, exécutent ce code, vérifient que tout est correct et ajoutent les transactions et les états à la blockchain, en laissant un consensus clair entre eux et une preuve vérifiable de ces opérations.
Améliorer l'EVM avec zkEVM
L'opération ci-dessus est ce que nous pouvons voir dans l'EVM et ses dérivés, et cela inclut le zkEVM. La différence la plus fondamentale entre EVM et zkEVM est que ce dernier génère un environnement d'exécution sécurisé protégé contre les agents externes, même s'ils appartiennent au même réseau.
Par exemple, dans l'EVM, un opérateur de nœud peut voir les opérations en cours d'exécution. Vous pouvez les « voir » dans le sens où il est possible de tracer les données d'entrée et de sortie de ces opérations, y compris leurs états intermédiaires. Ceci est possible car l'EVM dispose d'un environnement d'exécution ouvert, la cryptographie utilisée dans le processus n'est là que pour protéger certaines sections du code (telles que les adresses et l'autorisation de traitement des jetons).
Mais dans zkEVM, cela change radicalement. Dans un environnement ZKP, nous pouvons voir les données d'entrée, mais ce ne sont pas réellement les données réelles, mais une série de données générées par la cryptographie ZKP. Ainsi, fondamentalement, l'entrée de données est une série de données qui permet au zkEVM de vérifier que ce que nous disons est vrai, mais sans jamais révéler les informations réelles qui ont donné lieu à ces données.
Ces données d'entrée sont accompagnées de données d'exécution et d'une série de données de jeton, que le zkEVM agrège. Après les avoir regroupés, le zkEVM a tout le nécessaire pour appliquer le processus qui lui permettra de savoir si les données d'entrée sont correctes, et si c'est le cas, le zkEVM génère les changements de statut qui indiquent au réseau que le contrat intelligent a été exécuté et, En plus de cela, des tests sont générés qui indiquent que ces données et leur exécution sont correctes.
Au final, selon le déploiement de zkEVM (par exemple : il est natif – L1, ou il est à l'intérieur d'une sidechain – L2), ces données peuvent être envoyées aux nœuds du réseau afin que des étapes de vérification supplémentaires soient exécutées, se terminant ainsi par le processus .
Faciliter le développement
Maintenant pourquoi s'embêter à compliquer la conception de l'EVM ? Eh bien, tout d'abord, le zkEVM permet non seulement de rendre l'exécution des contrats intelligents plus privée, mais nous donne également la possibilité d'utiliser plus efficacement les ressources de calcul des nœuds.
zkEVM a été spécialement conçu pour être une solution de sidechain, plus précisément sur zkSync et ses fameux zk-Rollups. Celui-ci a trois objectifs :
- Étant sidechain, certains processus de consensus peuvent être assouplis pour augmenter l'évolutivité. Cependant, la connexion de la sidechain est directe vers L1, chaque transaction dans le zkEVM génère des preuves uniques et vérifiables qui sont enregistrées non seulement dans la sidechain mais aussi dans L1 sous forme de cumul. Cela vise à maintenir un haut niveau de sécurité tout en augmentant l'évolutivité, non seulement avec les sidechains, mais aussi avec le sharding.
- Le langage de programmation avec zkEVM peut évoluer. Alors que Solidity peut être utilisé par convention et compatibilité, zkEVM peut utiliser d'autres langages compatibles LLVM, et cela inclut des langages comme C/C++, Zinc (un langage de développement et un framework inspirés et construits sur Rust). Cela signifie que zkEVM peut fonctionner de manière plus efficace en termes de calcul en utilisant plus directement les ressources de nœud, même avec la possibilité d'atteindre le parallélisme.
3. Il facilite le développement d'applications ZKP, puisque le framework Zinc aide à générer en toute sécurité des applications ZKP pour cette machine virtuelle.
D'autres projets à l'horizon
zkEVM de Matter Labs est le projet qui a lancé tout ce développement ZKP en plus d'EVM, mais d'autres projets ont déjà rejoint cette initiative. Par exemple, Polygon (MATIC) a également annoncé sa propre solution zkEVM, également connue sous le nom de Polygon Hermez, un projet qui a été présenté en mars 2021. Bien sûr, Polygon zkEVM fonctionne complètement différemment du zkEVM de Matter Labs.
De même, nous avons des projets comme Scroll ou StarkNet, deux projets axés sur l'offre de solutions zk-Rollups uniques et puissantes qui cherchent à devenir des solutions d'évolutivité de premier ordre pour Ethereum et d'autres réseaux compatibles.
Ce sont actuellement les projets les plus importants et les plus développés, mais nous verrons sûrement d'autres projets de cette nature sortir et être présentés au monde. Au final, le développement de la blockchain semble imparable et des projets comme zkEVM le démontrent très clairement.