Cet article est une soumission de la communauté. L'auteur est Kenny Li, co-fondateur de Manta Network, un protocole de confidentialité programmable de couche 1 alimenté par une technologie de preuve sans connaissance.

Les opinions exprimées dans cet article sont celles du contributeur/auteur et ne reflètent pas nécessairement celles de Binance Academy.

TL;DR

  • Une machine virtuelle Ethereum sans connaissance (zkEVM) est une machine à états Ethereum qui peut exécuter des contrats intelligents d'une manière compatible avec la technologie de preuve sans connaissance (ZKP).

  • Les zkEVM étendent les capacités des rollups sans connaissance (zk-rollups) sur Ethereum pour prendre en charge les applications décentralisées (DApps).

  • Les zkEVM facilitent le déploiement de projets Ethereum existants et nouveaux à l'aide de ZKP pour améliorer l'écosystème Ethereum.

Introduction

Les développeurs originaux d’Ethereum n’avaient pas pris en compte la technologie ZKP lorsqu’ils ont proposé le réseau pour la première fois en 2014. Ces dernières années, cependant, ZKP a attiré l’attention et devrait jouer un rôle beaucoup plus important dans l’espace blockchain. Ainsi, les efforts visant à combiner la technologie ZKP et la machine virtuelle d’Ethereum se sont intensifiés.

Pour comprendre ce qu'est un zkEVM, passons d'abord brièvement en revue ses deux concepts sous-jacents : zk-rollups et EVM.

Que sont les Zk-Rollups ?

Un rollup est une solution de mise à l'échelle qui compile de nombreuses exécutions de transactions en dehors de la chaîne principale et renvoie les données au réseau principal en une seule transaction. Ce processus augmente le débit tout en réduisant le coût d'exécution de ces transactions.

Sur Ethereum, les transactions au sein d'un cumul sont compressées et soumises au réseau principal Ethereum pour le coût de vérification d'une seule transaction. Le réseau principal Ethereum assure le règlement et vérifie les données de transaction contenues dans le rollup.

Un zk-rollup est un type de rollup qui utilise la technologie ZKP, une technologie cryptographique qui permet de vérifier la validité d'une information sans révéler l'information elle-même. Les zk-rollups n'ont pas besoin de publier toutes les données de transaction sur le réseau principal Ethereum ; ils n'ont besoin que de différences d'état (telles que les changements de statut du compte utilisateur) et d'une preuve de validité, réduisant ainsi les frais d'essence.

La sécurité des zk-rollups provient de la cryptographie ZKP, où des moyens cryptographiques sont utilisés pour vérifier la preuve et parvenir à un manque de confiance. Ceci est différent des autres rollups tels que les rollups optimistes, dont la sécurité vient de la théorie des jeux économiques, où les mauvais acteurs sont découragés par les pertes potentielles et les challengers sont motivés par des incitations.

Qu’est-ce qu’EVM ?

L'EVM est une machine à états dans laquelle s'exécutent le système de compte Ethereum et les contrats intelligents. Chaque exécution de contrat intelligent déclenche la transition de l'EVM d'un ancien état à un nouvel état. L'EVM définit la règle de calcul des états nouveaux et valides d'un bloc à l'autre.

L’État est un concept important dans Ethereum. Il s'agit d'une structure de données Merkle Patricia Trie qui représente l'état actuel d'Ethereum et permet à quiconque de retracer les informations de transaction depuis le bloc actuel jusqu'au bloc de genèse.

Tous les nœuds impliqués dans la maintenance d'Ethereum existent pour assurer la continuité et le consensus, ce qui permet à chaque nœud de voir l'état actuel exact. EVM joue un rôle essentiel dans le maintien de cette cohérence.

Comment fonctionne un ZkEVM ?

EVM ne prend pas en charge les ZKP par défaut. zkEVM vise à assurer la continuité de l’état d’Ethereum tout en fournissant la preuve que toutes les informations sont correctes. De cette façon, les différents facteurs impliqués dans le calcul de ces processus sont vérifiés tout en préservant la sécurité et la confidentialité.

zkEVM fait cela en répliquant l'environnement Ethereum sous forme de zk-rollups. Il prend l'état initial, calcule toutes les transactions, puis génère un nouvel état mis à jour avec un ZKP qui l'accompagne. Cette preuve est soumise à un contrat intelligent vérificateur qui vérifie l’exactitude de la sortie initiale et du nouvel état sans avoir à vérifier toutes les transactions individuellement.

Étant donné que les zkEVM sont basés sur l'EVM, les développeurs peuvent facilement porter les DApps et les contrats intelligents Ethereum vers les zkEVM sans avoir à effectuer de travail de développement ZKP. En d’autres termes, les zkEVM permettent aux zk-rollups d’exécuter des contrats intelligents, en plus des échanges de jetons et des paiements auparavant pris en charge sans zkEVM.

Grâce à la fonctionnalité de compatibilité d'EVM, les développeurs peuvent créer de nouveaux produits à l'aide des outils EVM et du langage de programmation existants, Solidity, tout en bénéficiant de la sécurité améliorée fournie avec zkEVM. Les mêmes avantages s'appliquent également aux utilisateurs : ils peuvent continuer à utiliser les mêmes DApps et outils familiers, mais avec une sécurité et une confidentialité accrues.

Compatibilité EVM et équivalence EVM

Lorsqu'une blockchain est qualifiée de compatible EVM, cela signifie qu'elle offre un environnement capable de déployer des DApp écrites dans le langage de programmation Solidity. Solidity est conçu pour développer des contrats intelligents fonctionnant sur le réseau Ethereum.

En fait, les développeurs d'Ethereum peuvent copier et coller le code des DApps existantes d'Ethereum et le déployer sur d'autres chaînes compatibles EVM avec des modifications minimes. Pour les utilisateurs, toute adresse de chaîne compatible EVM est la même que leur adresse Ethereum.

Cela signifie que les adresses sont compatibles avec les portefeuilles grand public tels que Metamask et Trust Wallet. Actuellement, les principales chaînes compatibles EVM incluent BNB Chain, Avalanche C-Chain et Polygon.

La compatibilité EVM ne doit pas être confondue avec l'équivalence EVM, ce qui signifie que du point de vue du développeur DApp, les cumuls de couche 2 sont presque identiques à la couche 1 Ethereum.

Pour utiliser une analogie avec le système d’exploitation, l’équivalence EVM s’apparente à la restauration de fichiers et de paramètres via Apple Cloud si l’ancien ordinateur et le nouvel ordinateur d’un utilisateur fonctionnent tous deux sur le système d’exploitation Apple.

En revanche, la compatibilité EVM signifie que si un nouvel ordinateur passe à un système Windows, les fichiers d'origine doivent être téléchargés via le stockage cloud et convertis pour récupérer les paramètres préférés et les anciens fichiers.

Différents types de ZkEVM

La génération et la vérification des ZKP directement à l’aide d’EVM sont extrêmement lentes car Ethereum n’a pas été initialement conçu pour prendre en charge la technologie ZKP. Dans certains cas, cela peut prendre plusieurs heures. Cependant, il est impératif de trouver un équilibre entre la compatibilité EVM et l’efficacité du ZKP.

Le fondateur d'Ethereum, Vitalik Buterin, a classé les zkEVM dans les quatre types suivants. Semblable au trilemme de la blockchain, ils présentent chacun des compromis différents entre l’efficacité des performances du ZKP et la compatibilité EVM.

Type 1 : équivalence au niveau du consensus – zkEVM complètement équivalent à Ethereum

Au niveau du consensus, un zkEVM de type 1 – également connu sous le nom de rollup consacré – est équivalent à Ethereum, et l'état de la chaîne zkEVM et les transactions sont identiques à ceux d'Ethereum. Ils peuvent vérifier mutuellement les blocs et être directement utilisés avec les clients d’exécution Ethereum.

Les zkEVM de type 1 rendent Ethereum lui-même plus évolutif et peuvent être directement introduits sur le réseau principal Ethereum. L'inconvénient est que l'efficacité du ZKP est extrêmement faible et nécessite une grande quantité de calculs pour être vérifiée. La solution consiste à utiliser à l’avenir des validateurs parallèles à grande échelle ou des circuits intégrés spécialisés pour les zk-SNARK.

Les zkEVM de type 1 avec une efficacité ZK élevée seraient la forme la plus idéale de zkEVM. Actuellement, de nombreux projets construisent ou explorent ce type de zkEVM.

Type 2 : équivalence au niveau du bytecode – complètement équivalent à EVM

Le type 2 est tout à fait équivalent à l’EVM mais pas à Ethereum. Il diffère d'Ethereum en termes de structures de données (telles que la structure des blocs et l'arborescence des états) et supprime certaines opérations de pile qui ne sont pas compatibles avec ZK.

Il est entièrement compatible avec les DApps, les outils de débogage et l'infrastructure de développement existants d'Ethereum. L'équivalence au niveau du bytecode peut accélérer les temps de preuve, mais pas de manière significative. Un inconvénient évident du type 2 est qu'il est cher, non synergique avec le ZK, avec une efficacité faible et coûteuse.

Type 2.5 : similaire au type 2 mais avec des modifications aux frais de gaz

Le type 2.5 partage les avantages et les inconvénients du type 2, mais ses frais de gaz sont légèrement inférieurs.

Type 3 : équivalence au niveau du bytecode – presque équivalent à EVM

Basé sur le type 2, le type 3 sacrifie davantage la compatibilité pour une efficacité ZK améliorée. Il supprime les fonctions difficiles à implémenter sur zkEVM, telles que les précompilations, donc certains codes utilisés dans les DApp qui nécessitent cette fonction doivent être réécrits.

Type 4 : équivalence au niveau du langage de développement – langage de haut niveau équivalent à EVM

Les EVM de type 4 ont les performances ZK les plus élevées mais une compatibilité relativement inférieure.

Pensées finales

L'objectif principal de l'implémentation de zkEVM est d'étendre la prise en charge du calcul ZKP à l'exécution de contrats intelligents et, ce faisant, d'étendre les DApp à tous les protocoles compatibles EVM. Mais les applications des ZKP ne s’arrêtent pas là.

La technologie ZKP peut potentiellement être compatible avec les cas d'utilisation Web2. La combinaison de divers cas d'utilisation du Web2 avec ZKP pourrait rendre les applications Web3 plus fluides et plus conviviales. Cela permettrait également aux utilisateurs déjà habitués aux navigateurs Internet traditionnels d'accéder au Web3 et, par conséquent, favoriserait l'adoption du Web3.

Lectures complémentaires

Avis de non-responsabilité et avertissement de risque : ce contenu vous est présenté « tel quel » à des fins d'information générale et éducatives uniquement, sans représentation ni garantie d'aucune sorte. Il ne doit pas être interprété comme un conseil financier, juridique ou autre conseil professionnel, et il n’est pas non plus destiné à recommander l’achat d’un produit ou d’un service spécifique. Vous devriez demander votre propre avis auprès de conseillers professionnels appropriés. Lorsque l'article est rédigé par un contributeur tiers, veuillez noter que les opinions exprimées appartiennent au contributeur tiers et ne reflètent pas nécessairement celles de Binance Academy. Veuillez lire notre clause de non-responsabilité complète ici pour plus de détails. Les prix des actifs numériques peuvent être volatils. La valeur de votre investissement peut augmenter ou diminuer et vous ne récupérerez peut-être pas le montant investi. Vous êtes seul responsable de vos décisions d'investissement et Binance Academy n'est pas responsable des pertes que vous pourriez subir. Ce matériel ne doit pas être interprété comme un conseil financier, juridique ou autre conseil professionnel. Pour plus d’informations, consultez nos conditions d’utilisation et nos avertissements de risque.