Tous les articles

Une exploration du zkEVM et du Polygon zkEVM

·
4 oct. 2022
·
6 min de lecture
·
••• vues
·
••• j'aime

Traduit de l'article original en anglais. Lire en anglais

Une exploration du zkEVM et du Polygon zkEVM

Introduction

Par conception, le Polygon zkEVM est un zk-rollup compatible EVM. Il vise à améliorer le débit, les performances et l'efficacité. En s'appuyant sur Plonky2 (une technologie de mise à l'échelle zk de pointe), il est capable de générer des preuves légères et de faciliter aussi la vérification récursive de SNARKs, ce qui permet aux utilisateurs de vérifier des preuves rapidement.

En plus d'un temps de génération des preuves réduit, le zkEVM permet désormais des transactions bien moins chères, ce qui rend chaque application décentralisée sur le zkEVM plus économique.

Le problème de scalabilité d'Ethereum

Aujourd'hui, essayer de construire sur Ethereum des applications décentralisées utilisées par le grand public n'est pas réaliste, car les transactions mettent beaucoup de temps à être traitées et coûtent assez cher, ce qui crée une mauvaise expérience utilisateur et freine une adoption significative.

La raison de ce problème est que chaque nœud participant au réseau doit traiter absolument chaque transaction, ce qui fait que seules 13 transactions sont traitées par seconde.

Le rôle des ZK-rollups

Les zk-rollups sont le deuxième type de rollups après les optimistic rollups. Ils se distinguent de leurs homologues optimistes parce qu'ils génèrent des preuves cryptographiques, appelées zk-proofs, pour vérifier les transactions regroupées en lots, au lieu d'utiliser le mécanisme de période d'attente qu'utilisent les optimistic rollups, ce qui rend les zk-rollups plus rapides.

Les zk-rollups coûtent bien moins cher parce qu'ils regroupent les transactions dans un seul lot et ne publient que les preuves de ces transactions. Jusqu'à présent, les ZK-rollups qui prenaient en charge les smart contracts obligeaient les développeurs à quitter l'écosystème Ethereum, car ils n'étaient pas compatibles avec l'EVM.

Polygon est allé plus loin en construisant un ZK-rollup doté d'un environnement d'exécution de code qui prend en charge le bytecode Ethereum, appelé le Polygon zkEVM. Cela évite aux développeurs de devoir écrire du code à partir de zéro, ils peuvent simplement migrer leurs smart contracts vers le zkEVM.

Une exploration du zkEVM et du Polygon zkEVM
Architecture du zk-rollup Hermez.

Pourquoi le zkEVM est l'avenir

Avant de voir en quoi le zkEVM est meilleur que l'EVM traditionnelle, il faut comprendre comment fonctionne l'EVM traditionnelle.

L'Ethereum virtual machine (EVM) est une machine virtuelle Turing-complète qui sert d'environnement d'exécution pour les smart contracts. Lorsqu'une transaction a lieu, tout le bytecode du contrat est compilé depuis la source et chargé dans le stockage de l'EVM, et c'est là que les nœuds pair-à-pair entrent en jeu pour l'exécuter. Les nœuds s'assurent d'arriver au bon résultat en utilisant les mêmes entrées de transaction.

Ensuite, les codes d'opération de l'EVM (opcodes) interagissent avec les différents états de l'EVM, lisent les valeurs depuis le stockage d'état et envoient les nouvelles valeurs vers le stockage de l'EVM.

Pour finir, les nouvelles valeurs sont répliquées par les nouveaux nœuds et l'état est conservé jusqu'au traitement d'une autre transaction.

Une exploration du zkEVM et du Polygon zkEVM
Ethereum Virtual MachineIllustration du modèle d'exécution de l'EVM.

Le zkEVM fonctionne sur ce même principe, mais va plus loin pour s'assurer que les données sont mieux contrôlées. En plus des étapes décrites pour l'EVM, le zkEVM vérifie aussi que le bytecode chargé est correct et qu'il provient de la bonne adresse. Il s'assure également que les données de la blockchain correspondent aux données de l'EVM.

Architecture du Polygon zkEVM

Tout comme l'EVM, la fonction principale du zkEVM est de prendre en charge les smart contracts. Il compile les transactions L2, effectue les transitions d'état et atteste de la validité de ces changements d'état en générant des preuves de validité.

Le zkEVM comporte 5 composants principaux :

Aplatir le contrat
Illustration du smart contract PoE

Séquenceurs

Les séquenceurs collectent les transactions L2 des utilisateurs du réseau, puis les regroupent dans un lot et proposent ce lot au smart contract PoE. Le rôle de séquenceur est permissionless, tout le monde peut devenir séquenceur à condition de faire tourner le logiciel zkNode sur sa machine. Cela améliore la décentralisation du réseau.

Un séquenceur qui veut proposer un lot sur la L1 doit payer les frais de gas de la L1 et déposer des frais supplémentaires en tokens. Cela aide à se protéger contre le spam et incite aussi les séquenceurs à ne proposer que des transactions valides. Les frais de lot payés par les utilisateurs constituent la rémunération des séquenceurs.

Les lots proposés sont publiés sur la L1 sous forme de calldata. Tout nouveau nœud permissionless reconstruira les données puis synchronisera son état. Une fois la transaction minée, les transactions L1 déterminent l'ordre dans lequel les transactions L2 sont exécutées. Un nouvel état déterministe est alors créé, mais ce nouvel état n'est établi qu'une fois la preuve de validité envoyée à la L1. C'est là qu'intervient le rôle des agrégateurs.

Aplatir le contrat
Comment fonctionnent les séquenceurs

Agrégateurs

Le rôle d'un agrégateur est de générer des preuves de validité pour les lots de transactions L2 proposés par les séquenceurs. Lorsque des lots sont proposés, ils sont classés selon leur position et ils contiennent les données des transactions.

Les agrégateurs sont alors en concurrence pour créer les preuves de validité de chaque lot à l'aide d'un matériel spécialisé appelé zkProver. Le premier agrégateur à générer cette preuve est récompensé avec les frais en Matic déposés par les séquenceurs.

Le rôle d'agrégateur est lui aussi ouvert à tous, à condition d'avoir installé le logiciel zkNode et de pouvoir faire tourner le zkProver.

Aplatir le contrat
Comment fonctionnent les agrégateurs

Caractéristiques de la conception du zkEVM

Équivalent à l'EVM - Le zkEVM de Polygon offre une compatibilité « au niveau du bytecode ». Cela signifie qu'il est entièrement compatible au niveau des opcodes de l'EVM et au niveau du langage Solidity. Tous les outils et smart contracts qui tournent sur Ethereum n'ont besoin d'aucune modification pour tourner aussi sur le zkEVM. Sécurisé - Le zkEVM hérite de la majeure partie de sa sécurité d'Ethereum, mais il utilise aussi des preuves à divulgation nulle de connaissance comme les zk-STARKs et les zk-SNARKs pour garantir que, lorsque des changements d'état se produisent, ils sont effectués correctement, que des preuves attestant de ces changements d'état sont générées, et que ces preuves sont mises à disposition on-chain pour vérification. Décentralisé et permissionless - Tout le monde peut participer au réseau, à condition de disposer des outils nécessaires selon le rôle qu'il souhaite jouer. Efficace - Comme l'efficacité est essentielle aux performances du réseau, ce sont les agrégateurs les plus efficaces qui fournissent les preuves de validité et sont récompensés, et tous les calculs sont effectués off-chain, seules les zk-proofs et les données nécessaires étant conservées on-chain.


Conclusion

Le zkEVM est la version améliorée des machines virtuelles classiques, qui exécute les transactions plus rapidement et de manière plus sûre. L'ensemble du projet sera rendu open source par Polygon et pourra être utilisé par toute personne qui cherche un moyen meilleur, moins cher et plus rapide d'utiliser Ethereum.

C'est une technologie très complexe, mais nous construisons à toute vitesse et nous avons hâte de vous montrer ce sur quoi nous travaillons.

•••
Partager cet article :

Restez informé

Recevez les derniers articles dans votre boîte mail.