Points clés

  • Un zkEVM est une Machine Virtuelle Ethereum à connaissance nulle qui peut exécuter des contrats intelligents d'une manière compatible avec la technologie de preuve à connaissance nulle (ZKP).

  • Les zkEVM étendent les zk-rollups sur Ethereum pour prendre en charge les applications décentralisées (DApps), pas seulement les simples transferts de tokens.

  • Les développeurs peuvent porter les DApps et contrats intelligents Ethereum existants vers un zkEVM sans avoir besoin d'apprendre la cryptographie à connaissance nulle.

  • Les zkEVM sont classés en quatre types principaux en fonction du compromis entre la compatibilité EVM et l'efficacité des preuves ZK.

Binance Academy courses banner

Introduction

Les développeurs Ethereum n'ont pas conçu le réseau avec des preuves à connaissance nulle (ZKP) à l'esprit lorsqu'ils ont d'abord proposé le réseau en 2014. Au cours des années qui ont suivi, la technologie ZKP a gagné un élan significatif dans l'espace blockchain, et les équipes ont travaillé dur pour apporter des capacités ZKP à Ethereum.

Le résultat est le zkEVM, un type de machine virtuelle qui peut exécuter des contrats intelligents Ethereum tout en générant des preuves cryptographiques de leur justesse. Cet article explique ce qu'est un zkEVM, comment cela fonctionne et quels réseaux ont mis la technologie en pratique.

Que sont les zk-rollups ?

Un rollup est une solution de scalabilité Layer 2 qui traite de nombreuses transactions hors du mainnet Ethereum, puis soumet un résumé compressé à Ethereum en tant que transaction unique. Cette approche augmente le débit et réduit les coûts par rapport à l'exécution de chaque transaction sur Layer 1.

Un zk-rollup est un rollup qui utilise la technologie ZKP pour prouver que toutes les transactions hors chaîne ont été traitées correctement. Au lieu de publier toutes les données de transaction, il soumet une preuve de validité accompagnée d'une mise à jour d'état. Les rollups optimistes prennent une approche différente, s'appuyant sur des preuves de fraude et des incitations économiques plutôt que sur des garanties cryptographiques.

Les premiers zk-rollups étaient limités à des opérations simples comme les transferts de tokens. Un zkEVM étend cela pour couvrir l'ensemble de l'exécution des contrats intelligents, rendant les zk-rollups adaptés aux DApps à usage général.

Qu'est-ce que l'EVM ?

La Machine Virtuelle Ethereum (EVM) est l'environnement d'exécution à l'intérieur d'Ethereum où les contrats intelligents sont exécutés. Chaque fois qu'un contrat intelligent s'exécute, l'EVM passe d'un état à un autre. Tous les nœuds du réseau doivent s'accorder sur cet état pour maintenir le consensus.

L'EVM est définie par un ensemble d'opcodes, qui sont des instructions de bas niveau. Lorsque les développeurs écrivent des contrats en Solidity ou Vyper, ces contrats sont compilés en bytecode EVM que l'EVM peut interpréter. Cette norme partagée est ce qui rend les contrats intelligents Ethereum portables entre les chaînes compatibles.

Comment fonctionne un zkEVM ?

Un zkEVM réplique l'environnement Ethereum à l'intérieur d'un zk-rollup. Il prend un état initial, traite un lot de transactions selon les règles de l'EVM, et produit un nouvel état avec une preuve de validité. Un contrat vérificateur sur le mainnet Ethereum vérifie cette preuve sans réexécuter chaque transaction.

Cette approche signifie que la justesse de chaque transition d'état est garantie cryptographiquement, et non simplement supposée. Les développeurs peuvent déployer des contrats intelligents Ethereum existants sur un zkEVM avec peu ou pas de modifications, car l'environnement d'exécution suit les mêmes règles que le mainnet.

Générer des preuves ZK pour l'exécution de l'EVM est intensif en calcul. L'accélération matérielle et les améliorations algorithmiques des dernières années ont considérablement réduit les temps de génération de preuves pour de nombreuses implémentations, passant de ce qui était autrefois potentiellement plusieurs heures à quelques minutes ou secondes dans certaines configurations, bien que cela varie selon le réseau et la taille du lot.

Compatibilité EVM vs. Équivalence EVM

La compatibilité EVM signifie qu'une blockchain peut déployer et exécuter des contrats basés sur Solidity avec des modifications minimales. De nombreuses chaînes (y compris BNB Smart Chain) sont compatibles avec l'EVM. Les développeurs peuvent généralement copier des contrats Ethereum et les déployer avec seulement de petits ajustements.

L'équivalence EVM va plus loin. Cela signifie qu'un zkEVM se comporte de manière identique à Ethereum à un niveau technique profond, donc les outils existants, les environnements de débogage et l'infrastructure des développeurs fonctionnent sans modification. Plus un zkEVM est proche de l'équivalence totale, plus la migration devient facile, mais plus il est difficile de générer des preuves ZK efficaces.

Différents types de zkEVM

Dans un article de blog, le co-fondateur d'Ethereum, Vitalik Buterin, a catégorisé les zkEVM en quatre types en fonction du compromis entre l'efficacité ZK et la compatibilité EVM.

Type 1 : équivalence au niveau du consensus

Un zkEVM de Type 1 est entièrement équivalent à Ethereum au niveau du consensus. Il peut vérifier directement les blocs Ethereum. Cela en fait le type le plus compatible, mais la génération de preuves ZK est la plus exigeante en termes de calcul. Un exemple de cela est le mainnet zkEVM de Type 1 de Taiko, lancé à la mi-2024.

Type 2 : équivalence au niveau du bytecode

Un zkEVM de Type 2 est entièrement compatible avec l'EVM mais diffère d'Ethereum dans certaines structures de données internes, comme l'arbre d'état. Il prend en charge toutes les DApps et outils Ethereum existants. Les temps de preuve sont améliorés par rapport au Type 1, mais restent significatifs. Scroll et Polygon zkEVM sont des exemples de réseaux de Type 2.

Type 2.5 : Type 2, avec des coûts de gaz modifiés

Le Type 2.5 est similaire au Type 2 mais ajuste les coûts de gaz pour les opérations qui sont coûteuses à prouver. Cela améliore l'efficacité des producteurs avec un faible impact sur la compatibilité totale.

Type 3 : équivalent proche de l'EVM

Les zkEVM de Type 3 sacrifient une certaine compatibilité pour de meilleures performances ZK. Ils peuvent supprimer certains précompilations ou d'autres fonctionnalités de l'EVM difficiles à prouver efficacement. Certaines DApps peuvent nécessiter de petites modifications pour être déployées.

Type 4 : équivalence au niveau des langages de haut niveau

Les zkEVM de Type 4 compilent des langages de haut niveau comme Solidity directement en bytecode compatible avec ZK, contournant complètement le bytecode EVM. Cela offre les meilleures performances de preuve mais la compatibilité la plus faible. zkSync Era utilise une approche de Type 4.

FAQ

Qu'est-ce qu'un zkEVM ?

Un zkEVM est une Machine Virtuelle Ethereum à connaissance nulle qui traite les contrats intelligents à l'intérieur d'un zk-rollup, puis génère une preuve cryptographique qui montre que toutes les transactions ont été exécutées correctement. Cela permet aux développeurs d'utiliser le code Ethereum existant avec les avantages de sécurité et d'évolutivité ajoutés de la technologie ZKP.

Comment un zkEVM est-il différent d'un zk-rollup ordinaire ?

Les premiers zk-rollups ne prenaient en charge que des opérations simples comme les transferts de tokens. Un zkEVM étend cela à l'ensemble de l'ensemble d'instructions de l'EVM, ce qui signifie que n'importe quel contrat intelligent Ethereum, y compris des protocoles DeFi complexes et des plateformes NFT, peut fonctionner sur un zkEVM avec des modifications minimales.

Quels sont les quatre types de zkEVM ?

Vitalik Buterin a défini quatre types. Le Type 1 est entièrement équivalent à Ethereum au niveau du consensus. Le Type 2 est entièrement compatible EVM mais diffère dans certaines structures de données internes. Le Type 3 sacrifie une certaine compatibilité pour de meilleures performances ZK. Le Type 4 compile des langages de haut niveau directement en bytecode compatible avec ZK, offrant la plus haute efficacité de preuve.

Les zkEVM rendent-ils Ethereum plus sûr ?

Les zkEVM utilisent des preuves de validité cryptographique plutôt que de s'appuyer sur la théorie des jeux économiques pour garantir une exécution correcte. Cela signifie que la justesse de chaque lot est mathématiquement vérifiable, ce qui peut renforcer les garanties de sécurité par rapport aux systèmes qui dépendent de challengers pour détecter la fraude. Cependant, comme tous les systèmes blockchain, les zkEVM comportent des risques de contrats intelligents et d'autres risques techniques que les utilisateurs doivent rechercher de manière indépendante.

Pensées de conclusion

Les zkEVM combinent la sécurité de la cryptographie ZKP avec une compatibilité totale des contrats intelligents, rendant possible l'exécution de DApps à un débit plus élevé et à un coût inférieur sans sacrifier les garanties de sécurité de niveau Ethereum. Il vaut la peine de comprendre les différents types et comment la technologie peut être compatible avec les cas d'utilisation Web2.

Lectures complémentaires

  • Qu'est-ce qu'une preuve à connaissance nulle et comment cela impacte-t-il la blockchain ?

  • Rollups optimistes vs. Rollups à connaissance nulle : Quelle est la différence ?

  • Améliorer la transparence crypto avec des preuves à connaissance nulle

  • Que sont les zk-rollups ? La technique de scalabilité Layer-2

  • Solutions de scalabilité Blockchain Layer 1 vs Layer 2

Avertissement : Ce contenu vous est présenté sur une base "tel quel" à des fins d'information générale et ou d'éducation uniquement, sans représentation ni garantie de quelque nature que ce soit. Il ne doit pas être interprété comme un avis financier, juridique ou autre avis professionnel, ni comme une recommandation d'achat d'un produit ou service spécifique. Vous devriez chercher vos propres conseils auprès de conseillers professionnels appropriés. Lorsque le contenu est contribué 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. Les prix des actifs numériques peuvent être volatils. La valeur de votre investissement peut diminuer ou augmenter et vous pourriez ne pas récupérer 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 encourir. Pour plus d'informations, consultez nos Conditions d'utilisation, Avertissement de risque et Conditions de Binance Academy.