Source : Mise à l’échelle efficace d’Ethereum ; Compilation : Communauté chinoise de Starknet
aperçu
Les cumuls ont été un sujet brûlant cette année concernant la mise à l’échelle d’Ethereum. Parmi les différents types de Rollup, nous pensons que Validity Proof Rollup (ci-après dénommé VR, ou zk-rollup) est la solution d’expansion la plus prometteuse pour augmenter le débit d’Ethereum de manière sûre et décentralisée. Le cœur de ce schéma d’expansion est l’utilisation de preuves de validité pour des calculs vérifiables. Voici comment cela fonctionne:
Cumul de la preuve de validité
Remarque : les cumuls de preuve de validité sont souvent appelés à tort cumuls de connaissances nulles (zkRollup), ce qui n’est pas exact. La plupart des preuves de validité Rollup n’utilisent pas de preuves à connaissance nulle et ne sont pas non plus utilisées pour garantir la confidentialité. Par conséquent, le terme “Validity Proof Rollup” est plus précis.
Avant d’aller plus loin, nous devons répondre à la première question : qu’est-ce qu’une machine virtuelle (VM) ? En bref, une machine virtuelle est un environnement dans lequel des programmes peuvent s’exécuter, comme un système d’exploitation Windows exécuté sur un Mac. La VM passe d’un état à l’autre après avoir effectué des calculs sur certaines entrées. La machine virtuelle Ethereum (EVM) est la machine virtuelle qui exécute les contrats intelligents Ethereum.
Une machine virtuelle à connaissance nulle (zkVM) est un environnement d’exécution de programme qui, avec la sortie du programme, génère des preuves de validité facilement vérifiables. La preuve de validité est utilisée pour prouver qu’un programme a été exécuté correctement. Lorsque le terme “zkEVM” est utilisé, il fait généralement référence à un Rollup qui exécute la machine virtuelle Ethereum (EVM) et peut attester de l’exécution de l’EVM. Cette terminologie peut être trompeuse car l’EVM lui-même ne peut pas générer ces preuves ; à la place, les preuves sont produites par un mécanisme de preuve séparé qui prend les résultats d’exécution de l’EVM comme point de départ. De plus, les preuves ci-dessus sont toutes liées à la validité et n’ont rien à voir avec la confidentialité. Par conséquent, cela ne peut pas être appelé une preuve à connaissance nulle pour être précis. Par souci de cohérence, le terme traditionnel “zkEVM” est toujours utilisé dans cet article.
Alors que tous les cumuls de preuve de validité visent à faire évoluer Ethereum avec la preuve de validité, différents schémas font des choix différents sur la façon dont la machine virtuelle exécute les transactions hors chaîne. De nombreuses preuves de validité Rollup ont choisi de répliquer la conception EVM (d’où le nom “zkEVM rollup”), tentant de répliquer Ethereum sur un rollup L2. Starknet utilise Cairo VM (CVM), une toute nouvelle machine virtuelle conçue pour optimiser l’efficacité de la preuve de validité.
Les deux méthodes ci-dessus ont leurs propres avantages et inconvénients et compromis, mais zkEVM sacrifie les performances pour la compatibilité Ethereum, tandis que Cairo VM place les performances au-dessus de la compatibilité et donne la priorité à l’évolutivité.
zkEVM est un cumul de preuve de validité conçu pour introduire pleinement l’expérience Ethereum sur la blockchain L2. Le but est de répliquer l’environnement de développement Ethereum dans Rollup. Avec zkEVM, les développeurs n’ont pas besoin d’ajuster le code ou d’abandonner les outils EVM d’origine (et les contrats intelligents) lors de l’écriture ou du portage de contrats intelligents vers des solutions d’extension.
Cette approche a un défaut majeur, qui réduit l’évolutivité des preuves de validité. En raison de l’accent mis sur la compatibilité avec Ethereum, zkEVM est plus lent et plus gourmand en ressources. Contrairement à CVM, EVM n’est pas conçu avec l’efficacité de la preuve à l’esprit. Cela limite l’utilisation d’optimisations pour améliorer l’efficacité et l’évolutivité, affectant finalement les performances globales du système.
Le principal défi de l’approche zkEVM réside dans le plan original enraciné de l’EVM, qui n’a pas été conçu à l’origine pour fonctionner dans un environnement de preuve de validité. Par conséquent, si tous les efforts sont consacrés à la réalisation des fonctions d’Ethereum, le plein potentiel de la preuve de validité ne peut pas être libéré, ce qui entraîne une efficacité insatisfaisante. Cette inefficacité réduit finalement les performances globales du système. La compatibilité de l’EVM avec les preuves de validité est entravée par :
Par conséquent, différents types de zkEVM sont conçus pour fournir différents niveaux de prise en charge des outils Ethereum, mais plus la compatibilité de zkEVM avec Ethereum est élevée, plus les performances sont faibles. (voir la fin de l’article pour plus de types de zkEVM)
La solution zkEVM a investi beaucoup de temps de développement pour “rendre EVM compatible avec Validity Proof Rollup”, en donnant la priorité à la compatibilité par rapport aux performances et à l’évolutivité à long terme. Il existe une autre option : adopter une nouvelle machine virtuelle dédiée et ajouter une couche supplémentaire pour prendre en charge les outils Ethereum. C’est l’étape que Starknet franchit en lançant un cumul de preuve de validité sans autorisation en novembre 2021. Starknet est le premier cumul de preuve de validité qui implémente une plate-forme de contrat intelligent à usage général dans un réseau entièrement composable.
Starknet adopte Cairo-VM (CVM) et crée le langage de haut niveau Cairo du même nom. Cairo-VM est conçu pour générer efficacement des preuves de validité de l’exécution du programme.
Avec Cairo (VM et langage de programmation) il est possible de :
Le développement d’un langage entièrement nouveau peut être adapté à des besoins spécifiques, peut inclure des fonctionnalités qui n’étaient pas disponibles auparavant et répondre à de nouveaux besoins.
Afin de créer une preuve de la validité d’un calcul, ce calcul doit d’abord être exprimé sous la forme d’une série de contraintes mathématiques décrivant le calcul. Le processus est complexe, la difficulté réside dans l’optimisation des calculs pour l’efficacité, et des outils spécifiques sont nécessaires.
Le langage Cairo a été conçu pour simplifier cette tâche afin que StarkEx puisse facilement ajouter des fonctionnalités et une logique métier complexe. Les programmes Cairo sont compilés en code machine algébrique, une séquence de nombres, exécutés par une seule machine virtuelle fixe. Avec Cairo, le processus complexe de génération de contraintes mathématiques décrivant les calculs (très délicat pour les preuves de validité) est abstrait et exprimé sous la forme d’un ensemble fixe de contraintes (moins de 50 contraintes au total). Cela permet aux développeurs d’étendre les applications avec des preuves de validité en écrivant du code dans une syntaxe familière sans comprendre les mathématiques et l’infrastructure sous-jacentes.
L’engagement de Starknet envers l’innovation est évident dans son approche de la pluralisation du code. Le Caire adopte la technologie STARK pour obtenir des fonctions d’extension optimales, sans se limiter à la rédaction de contrats avec l’environnement local du Caire. Les développeurs peuvent également choisir la méthode la plus appropriée :
Bien que Cairo n’existe pas depuis longtemps, selon les classements TVL, Cairo est le quatrième langage de programmation de contrats intelligents le plus populaire, avec une valorisation de plus de 350 millions de dollars.
zkEVM vise à répliquer l’environnement de développement Ethereum dans Rollup et à permettre aux développeurs d’utiliser des outils Ethereum familiers. Mais cette approche limite le potentiel de preuves de validité et nécessite beaucoup de ressources.
La VM du Caire, conçue pour les preuves de validité, n’est pas soumise aux limitations de l’EVM. La machine virtuelle Cairo prend en charge Cairo 1.0. Inspiré du langage Rust, Cairo 1.0 est plus conforme aux habitudes des développeurs et plus sûr, formant un outil puissant conçu pour utiliser STARK pour prouver une expansion efficace d’Ethereum.
C’est excitant de voir comment Cairo se développe chaque semaine, et les options pour les développeurs comme Kakarot zkEVM et Warp se multiplient. Avec les dApps Starknet en production, démontrant la puissance du Caire, nous croyons fermement qu’à l’avenir, Le Caire engendrera des projets exceptionnels qui n’ont jamais été vus auparavant.
Trois voies pour l’expansion de SATRK ont été décrites ci-dessus, et il y aura sans aucun doute d’autres innovations à venir dans les mois à venir. Les développeurs ont désormais un contrôle sans précédent sur la mise à l’échelle des blockchains.
Vitalik divise zkEVM en quatre types principaux :