** Les cumuls de validité sont le moyen le plus prometteur d'augmenter le débit d'Ethereum de manière sécurisée et décentralisée ; zkEVM et Cairo VM (CVM) sont les deux types de machines virtuelles utilisées dans les cumuls de validité. **
**zkEVM se concentre sur la compatibilité Ethereum au détriment des performances et de l'évolutivité. **
** La machine virtuelle Cairo utilisée dans Starknet donne la priorité aux performances et à l'évolutivité plutôt qu'à la compatibilité. **
Les cumuls sont un sujet brûlant cette année lorsqu'il s'agit de faire évoluer Ethereum. Parmi les différents types de rollups, nous pensons que les Validity Rollups (VR), également connus sous le nom de zk-rollups, sont le moyen le plus prometteur d'augmenter le débit d'Ethereum de manière sécurisée et décentralisée. Au cœur de cette solution de mise à l'échelle se trouve un calcul vérifiable à l'aide de preuves de validité. Voici comment ils fonctionnent :
Au lieu de traiter chaque transaction sur le réseau principal Ethereum, les opérateurs déchargent l'exécution des transactions vers un environnement hors chaîne. Cet environnement hors chaîne agit comme la couche 2, c'est-à-dire la couche qui s'exécute au-dessus d'Ethereum.
Après avoir traité un grand nombre de transactions, les opérateurs de couche 2 renvoient des résultats à appliquer à l'état d'Ethereum, ainsi que des preuves de validité pour vérifier l'intégrité de l'exécution hors chaîne. Cette preuve garantit que toutes les transactions d'un lot sont valides et vérifiées de manière autonome par le contrat de validation en chaîne. Cela permet à Ethereum d'appliquer le résultat à son état.
Cumuls de validité
Remarque : les cumuls de validité sont souvent appelés à tort cumuls de connaissances nulles, mais ce n'est pas exact. La plupart des cumuls de validité n'utilisent pas de ZKP et ne sont pas non plus utilisés à des fins de confidentialité. Par conséquent, le terme "Validity Rollup" est plus précis.
machine virtuelle hors chaîne
Avant de continuer, la première question à laquelle nous devons répondre est : **Qu'est-ce qu'une machine virtuelle (VM) ? En termes simples, il s'agit d'un environnement dans lequel les programmes peuvent s'exécuter, tout comme un Mac exécutant le système d'exploitation Windows. Il 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 sans connaissance (zkVM) est un environnement d'exécution de programme qui, avec la sortie du programme, permet de générer des preuves de validité qui peuvent être facilement vérifiées. **Cette preuve de validité certifie que le programme a été correctement exécuté. **Lorsque le terme "zkEVM" est utilisé, il fait généralement référence à une agrégation qui utilise la machine virtuelle Ethereum (EVM) et peut attester de l'exécution de l'EVM. **Cette terminologie peut être trompeuse car l'EVM elle-même ne génère pas ces preuves ; à la place, les preuves sont générées par un mécanisme de preuve distinct qui commence par les résultats de l'exécution de l'EVM. De plus, ces preuves concernent la validité, pas la confidentialité, elles ne sont donc pas exactement des preuves à connaissance nulle. Néanmoins, par souci de cohérence, nous nous en tiendrons au terme traditionnel "zkEVM" tout au long de cet article.
Bien que tous les cumuls de validité visent à faire évoluer Ethereum avec une preuve de validité, ils diffèrent dans le choix des machines virtuelles pour exécuter des transactions hors chaîne. De nombreux cumuls de validité choisissent de répliquer la conception de l'EVM (d'où le terme "cumuls zkEVM"), en essayant de répliquer Ethereum sur les cumuls L2. Starknet utilise un nouveau type de VM - le Cairo VM (CVM) - spécialement conçu pour optimiser l'efficacité de la preuve de validité.
Ces deux méthodes ont leurs propres avantages et inconvénients, mais zkEVM échange les performances contre la compatibilité Ethereum, tandis que Cairo VM donne la priorité aux performances par rapport à la compatibilité et à l'évolutivité.
Approche zkEVM
**zkEVM est un Validity Rollup dont l'objectif est d'apporter pleinement l'expérience Ethereum aux blockchains Layer-2. Il vise à répliquer l'environnement de développement Ethereum sous forme de rollup. **Avec zkEVM, les développeurs n'ont pas besoin de modifier leur code ou d'abandonner leurs outils EVM (et contrats intelligents) lors de la rédaction de contrats intelligents ou du portage de contrats intelligents vers des solutions plus évolutives.
Un inconvénient majeur de cette approche est qu'elle réduit le potentiel d'échelle des preuves de validité. Étant donné que zkEVM vise à être compatible avec Ethereum, il est plus lent et plus gourmand en ressources. Contrairement à CVM, EVM n'a pas été conçu avec l'efficacité de la preuve à l'esprit. Cela limite l'utilisation d'optimisations qui peuvent améliorer l'efficacité et l'évolutivité, affectant finalement les performances globales du système.
Prouvabilité de l'EVM
Le principal défi de l'approche zkEVM est enraciné dans le plan original de l'EVM - il n'a pas été conçu pour fonctionner dans le contexte de la preuve de validité. En conséquence, les efforts pour refléter sa fonctionnalité ne permettent pas de libérer tout le potentiel des preuves de validité, ce qui se traduit par des niveaux d'efficacité sous-optimaux. 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 :
** L'EVM utilise un modèle basé sur la pile, tandis que la preuve d'efficacité est plus efficace pour un modèle basé sur le registre. La nature basée sur la pile de l'EVM rend plus difficile la preuve de l'exactitude de son exécution et la prise en charge directe de sa chaîne d'outils native. **
La disposition du stockage Ethereum repose fortement sur Keccak et un grand arbre Merkle Patricia, qui sont tous deux mauvais pour les preuves de validité et imposent une charge de preuve importante. Par exemple, Keccak est très rapide pour l'architecture x86 (sur laquelle nous exécutons généralement l'EVM), mais prend 90 000 étapes pour prouver (construction spéciale intégrée). Alors que Pedersen (une fonction de hachage compatible avec zk) nécessite 32 étapes. Même avec une compression récursive, l'utilisation de Keccak dans zkEVM signifie beaucoup de ressources de preuve qui sont finalement payées par l'utilisateur.
En conséquence, divers zkEVM sont conçus pour fournir différents niveaux de prise en charge des outils Ethereum - plus un zkEVM est compatible avec Ethereum, plus ses performances sont faibles. (Pour plus d'informations sur les types zkEVM, passez à la fin de l'article.)
Approche Cairo-VM
La solution zkEVM consacre beaucoup de temps de développement à "faire fonctionner l'EVM pour les cumuls de validité", en donnant la priorité à la compatibilité par rapport aux performances et à l'évolutivité à long terme. Il existe une autre option : utilisez une toute nouvelle machine virtuelle dédiée et ajoutez la prise en charge des outils Ethereum en tant que couche supplémentaire. C'est l'approche adoptée par Starknet, un cumul de validité sans autorisation lancé en novembre 2021. Starknet est le premier Validity Rollup à proposer une plateforme de contrats intelligents à usage général sur un réseau entièrement composable.
Starknet utilise Cairo-VM (CVM), un langage de haut niveau du même nom. Cairo-VM est une machine virtuelle conçue pour la génération efficace de preuves de validité de l'exécution d'un programme.
En utilisant Cairo (machine virtuelle et langage), nous avons :
Preuve de l'efficacité de l'optimisation - chaque instruction a une représentation algébrique valide
Un langage de type Rust pour écrire des programmes démontrables
Représentation intermédiaire (Sierra) entre Cairo de haut niveau et assemblage Cairo (instructions VM), permettant une exécution efficace du code Cairo
Développer un nouveau langage permet de l'adapter aux besoins spécifiques qu'il est censé satisfaire et de le doter de fonctionnalités qui satisfont des besoins jusque-là insatisfaits.
Le Caire et le pluralisme des codes
Afin de créer une preuve de la validité d'un calcul, le calcul doit d'abord être exprimé sous la forme d'une série de contraintes mathématiques décrivant le calcul. Le processus peut être délicat en raison du défi d'optimiser les calculs pour l'efficacité et du besoin d'outils spécialisés.
Le langage Cairo a été conçu à l'origine pour simplifier cette tâche et faciliter l'ajout de fonctionnalités et de logique métier complexe à StarkEx. Les programmes Cairo sont compilés en code machine algébrique - une séquence de nombres - qui est exécuté par une machine virtuelle fixe. Avec Cairo, toute la complexité de la génération de contraintes mathématiques décrivant les calculs - un problème épineux de preuves de validité - est abstraite et capturée par un ensemble fixe de contraintes (moins de 50 contraintes au total). En conséquence, les développeurs peuvent tirer parti des preuves de validité pour étendre leurs applications sans avoir besoin de comprendre les mathématiques et l'infrastructure sous-jacentes, simplement en écrivant du code à l'aide d'une syntaxe qui leur est familière.
Starknet est synonyme d'innovation, et cela se reflète dans son approche diversifiée du codage. La capacité du Caire à évoluer de manière optimale avec les STARK ne se limite pas à ceux qui rédigent des contrats en natif au Caire. Les développeurs peuvent choisir la méthode qui leur convient le mieux :
Écrire du code nativement dans Cairo : Avec la sortie de Cairo 1.0, les développeurs peuvent désormais utiliser le langage Rust ergonomique et sûr, ce qui facilite l'écriture de la logique du programme et réduit les risques d'erreurs.
** Compatibilité Solidity : ** Les développeurs Solidity peuvent écrire du code pouvant être utilisé par Cairo VM. Cette approche offre une expérience de développeur similaire à Ethereum et rend les contrats intelligents Solidity portables sur Starknet. Il existe deux façons d'y parvenir :
**Traduction : **La traduction est le processus de conversion du code source écrit dans un langage de programmation vers un autre langage. L'équipe Nethermind a créé le transpileur Warp pour transpiler le code Solidity au Caire. Warp rend les contrats intelligents Solidity portables sur Starknet, ce qui en fait un zkEVM de type 4. Il a été utilisé pour traduire et déployer des contrats Uniswap avec des modifications minimes.
zkEVM sur Starknet : La VM Cairo peut être utilisée pour attester de l'exécution d'une autre VM. Kakarot est un zkEVM écrit au Caire qui peut être utilisé pour exécuter des contrats intelligents Ethereum sur Starknet. Cairo VM et zkEVM ne sont pas des approches concurrentes, nous pouvons avoir à la fois Cairo VM et zkEVM au lieu de choisir entre Cairo VM et zkEVM !
Malgré sa courte existence, Cairo est le quatrième langage de contrat intelligent le plus populaire de TVL et a reçu plus de 350 millions de dollars de financement.
Résumer
**zkEVM vise à répliquer l'environnement Ethereum sous forme de rollup et à permettre aux développeurs d'utiliser des outils Ethereum familiers. Cependant, cette approche inhibe le plein potentiel des preuves de validité et peut nécessiter beaucoup de ressources. **
Cairo VM est conçu pour les systèmes de preuve de validité sans les limitations d'EVM. Il est soutenu par un nouveau langage de programmation sécurisé et ergonomique inspiré de Rust appelé Cairo 1.0, formant un outil puissant visant à gagner une efficacité maximale en faisant évoluer Ethereum avec des preuves STARK.
Il a été passionnant de voir ce que Cairo réalise chaque semaine et la croissance de différentes options pour les développeurs, telles que Kakarot zkEVM et Warp. Alors que la dApp Starknet entre en production, démontrant la puissance du Caire, nous pensons qu'elle sera utilisée pour des projets plus ambitieux à l'avenir.
Grâce aux trois voies de mise à l'échelle STARK décrites ci-dessus, et à d'autres qui seront sans aucun doute mises à disposition dans les mois à venir, les développeurs ont désormais un contrôle sans précédent sur la mise à l'échelle de la blockchain.
Voir l'original
Le contenu est fourni à titre de référence uniquement, il ne s'agit pas d'une sollicitation ou d'une offre. Aucun conseil en investissement, fiscalité ou juridique n'est fourni. Consultez l'Avertissement pour plus de détails sur les risques.
Pourquoi les Validity Rollups sont le moyen le plus prometteur de faire évoluer Ethereum ?
Auteur : StarkWare ; Compilateur : Bumpman
Résumé
Les cumuls sont un sujet brûlant cette année lorsqu'il s'agit de faire évoluer Ethereum. Parmi les différents types de rollups, nous pensons que les Validity Rollups (VR), également connus sous le nom de zk-rollups, sont le moyen le plus prometteur d'augmenter le débit d'Ethereum de manière sécurisée et décentralisée. Au cœur de cette solution de mise à l'échelle se trouve un calcul vérifiable à l'aide de preuves de validité. Voici comment ils fonctionnent :
Au lieu de traiter chaque transaction sur le réseau principal Ethereum, les opérateurs déchargent l'exécution des transactions vers un environnement hors chaîne. Cet environnement hors chaîne agit comme la couche 2, c'est-à-dire la couche qui s'exécute au-dessus d'Ethereum.
Après avoir traité un grand nombre de transactions, les opérateurs de couche 2 renvoient des résultats à appliquer à l'état d'Ethereum, ainsi que des preuves de validité pour vérifier l'intégrité de l'exécution hors chaîne. Cette preuve garantit que toutes les transactions d'un lot sont valides et vérifiées de manière autonome par le contrat de validation en chaîne. Cela permet à Ethereum d'appliquer le résultat à son état.
Cumuls de validité
Remarque : les cumuls de validité sont souvent appelés à tort cumuls de connaissances nulles, mais ce n'est pas exact. La plupart des cumuls de validité n'utilisent pas de ZKP et ne sont pas non plus utilisés à des fins de confidentialité. Par conséquent, le terme "Validity Rollup" est plus précis.
machine virtuelle hors chaîne
Avant de continuer, la première question à laquelle nous devons répondre est : **Qu'est-ce qu'une machine virtuelle (VM) ? En termes simples, il s'agit d'un environnement dans lequel les programmes peuvent s'exécuter, tout comme un Mac exécutant le système d'exploitation Windows. Il 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 sans connaissance (zkVM) est un environnement d'exécution de programme qui, avec la sortie du programme, permet de générer des preuves de validité qui peuvent être facilement vérifiées. **Cette preuve de validité certifie que le programme a été correctement exécuté. **Lorsque le terme "zkEVM" est utilisé, il fait généralement référence à une agrégation qui utilise la machine virtuelle Ethereum (EVM) et peut attester de l'exécution de l'EVM. **Cette terminologie peut être trompeuse car l'EVM elle-même ne génère pas ces preuves ; à la place, les preuves sont générées par un mécanisme de preuve distinct qui commence par les résultats de l'exécution de l'EVM. De plus, ces preuves concernent la validité, pas la confidentialité, elles ne sont donc pas exactement des preuves à connaissance nulle. Néanmoins, par souci de cohérence, nous nous en tiendrons au terme traditionnel "zkEVM" tout au long de cet article.
Bien que tous les cumuls de validité visent à faire évoluer Ethereum avec une preuve de validité, ils diffèrent dans le choix des machines virtuelles pour exécuter des transactions hors chaîne. De nombreux cumuls de validité choisissent de répliquer la conception de l'EVM (d'où le terme "cumuls zkEVM"), en essayant de répliquer Ethereum sur les cumuls L2. Starknet utilise un nouveau type de VM - le Cairo VM (CVM) - spécialement conçu pour optimiser l'efficacité de la preuve de validité.
Ces deux méthodes ont leurs propres avantages et inconvénients, mais zkEVM échange les performances contre la compatibilité Ethereum, tandis que Cairo VM donne la priorité aux performances par rapport à la compatibilité et à l'évolutivité.
Approche zkEVM
**zkEVM est un Validity Rollup dont l'objectif est d'apporter pleinement l'expérience Ethereum aux blockchains Layer-2. Il vise à répliquer l'environnement de développement Ethereum sous forme de rollup. **Avec zkEVM, les développeurs n'ont pas besoin de modifier leur code ou d'abandonner leurs outils EVM (et contrats intelligents) lors de la rédaction de contrats intelligents ou du portage de contrats intelligents vers des solutions plus évolutives.
Un inconvénient majeur de cette approche est qu'elle réduit le potentiel d'échelle des preuves de validité. Étant donné que zkEVM vise à être compatible avec Ethereum, il est plus lent et plus gourmand en ressources. Contrairement à CVM, EVM n'a pas été conçu avec l'efficacité de la preuve à l'esprit. Cela limite l'utilisation d'optimisations qui peuvent améliorer l'efficacité et l'évolutivité, affectant finalement les performances globales du système.
Prouvabilité de l'EVM
Le principal défi de l'approche zkEVM est enraciné dans le plan original de l'EVM - il n'a pas été conçu pour fonctionner dans le contexte de la preuve de validité. En conséquence, les efforts pour refléter sa fonctionnalité ne permettent pas de libérer tout le potentiel des preuves de validité, ce qui se traduit par des niveaux d'efficacité sous-optimaux. 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 :
** L'EVM utilise un modèle basé sur la pile, tandis que la preuve d'efficacité est plus efficace pour un modèle basé sur le registre. La nature basée sur la pile de l'EVM rend plus difficile la preuve de l'exactitude de son exécution et la prise en charge directe de sa chaîne d'outils native. **
La disposition du stockage Ethereum repose fortement sur Keccak et un grand arbre Merkle Patricia, qui sont tous deux mauvais pour les preuves de validité et imposent une charge de preuve importante. Par exemple, Keccak est très rapide pour l'architecture x86 (sur laquelle nous exécutons généralement l'EVM), mais prend 90 000 étapes pour prouver (construction spéciale intégrée). Alors que Pedersen (une fonction de hachage compatible avec zk) nécessite 32 étapes. Même avec une compression récursive, l'utilisation de Keccak dans zkEVM signifie beaucoup de ressources de preuve qui sont finalement payées par l'utilisateur.
En conséquence, divers zkEVM sont conçus pour fournir différents niveaux de prise en charge des outils Ethereum - plus un zkEVM est compatible avec Ethereum, plus ses performances sont faibles. (Pour plus d'informations sur les types zkEVM, passez à la fin de l'article.)
Approche Cairo-VM
La solution zkEVM consacre beaucoup de temps de développement à "faire fonctionner l'EVM pour les cumuls de validité", en donnant la priorité à la compatibilité par rapport aux performances et à l'évolutivité à long terme. Il existe une autre option : utilisez une toute nouvelle machine virtuelle dédiée et ajoutez la prise en charge des outils Ethereum en tant que couche supplémentaire. C'est l'approche adoptée par Starknet, un cumul de validité sans autorisation lancé en novembre 2021. Starknet est le premier Validity Rollup à proposer une plateforme de contrats intelligents à usage général sur un réseau entièrement composable.
Starknet utilise Cairo-VM (CVM), un langage de haut niveau du même nom. Cairo-VM est une machine virtuelle conçue pour la génération efficace de preuves de validité de l'exécution d'un programme.
En utilisant Cairo (machine virtuelle et langage), nous avons :
Preuve de l'efficacité de l'optimisation - chaque instruction a une représentation algébrique valide
Un langage de type Rust pour écrire des programmes démontrables
Représentation intermédiaire (Sierra) entre Cairo de haut niveau et assemblage Cairo (instructions VM), permettant une exécution efficace du code Cairo
Développer un nouveau langage permet de l'adapter aux besoins spécifiques qu'il est censé satisfaire et de le doter de fonctionnalités qui satisfont des besoins jusque-là insatisfaits.
Le Caire et le pluralisme des codes
Afin de créer une preuve de la validité d'un calcul, le calcul doit d'abord être exprimé sous la forme d'une série de contraintes mathématiques décrivant le calcul. Le processus peut être délicat en raison du défi d'optimiser les calculs pour l'efficacité et du besoin d'outils spécialisés.
Le langage Cairo a été conçu à l'origine pour simplifier cette tâche et faciliter l'ajout de fonctionnalités et de logique métier complexe à StarkEx. Les programmes Cairo sont compilés en code machine algébrique - une séquence de nombres - qui est exécuté par une machine virtuelle fixe. Avec Cairo, toute la complexité de la génération de contraintes mathématiques décrivant les calculs - un problème épineux de preuves de validité - est abstraite et capturée par un ensemble fixe de contraintes (moins de 50 contraintes au total). En conséquence, les développeurs peuvent tirer parti des preuves de validité pour étendre leurs applications sans avoir besoin de comprendre les mathématiques et l'infrastructure sous-jacentes, simplement en écrivant du code à l'aide d'une syntaxe qui leur est familière.
Starknet est synonyme d'innovation, et cela se reflète dans son approche diversifiée du codage. La capacité du Caire à évoluer de manière optimale avec les STARK ne se limite pas à ceux qui rédigent des contrats en natif au Caire. Les développeurs peuvent choisir la méthode qui leur convient le mieux :
Écrire du code nativement dans Cairo : Avec la sortie de Cairo 1.0, les développeurs peuvent désormais utiliser le langage Rust ergonomique et sûr, ce qui facilite l'écriture de la logique du programme et réduit les risques d'erreurs.
** Compatibilité Solidity : ** Les développeurs Solidity peuvent écrire du code pouvant être utilisé par Cairo VM. Cette approche offre une expérience de développeur similaire à Ethereum et rend les contrats intelligents Solidity portables sur Starknet. Il existe deux façons d'y parvenir :
**Traduction : **La traduction est le processus de conversion du code source écrit dans un langage de programmation vers un autre langage. L'équipe Nethermind a créé le transpileur Warp pour transpiler le code Solidity au Caire. Warp rend les contrats intelligents Solidity portables sur Starknet, ce qui en fait un zkEVM de type 4. Il a été utilisé pour traduire et déployer des contrats Uniswap avec des modifications minimes.
zkEVM sur Starknet : La VM Cairo peut être utilisée pour attester de l'exécution d'une autre VM. Kakarot est un zkEVM écrit au Caire qui peut être utilisé pour exécuter des contrats intelligents Ethereum sur Starknet. Cairo VM et zkEVM ne sont pas des approches concurrentes, nous pouvons avoir à la fois Cairo VM et zkEVM au lieu de choisir entre Cairo VM et zkEVM !
Malgré sa courte existence, Cairo est le quatrième langage de contrat intelligent le plus populaire de TVL et a reçu plus de 350 millions de dollars de financement.
Résumer
**zkEVM vise à répliquer l'environnement Ethereum sous forme de rollup et à permettre aux développeurs d'utiliser des outils Ethereum familiers. Cependant, cette approche inhibe le plein potentiel des preuves de validité et peut nécessiter beaucoup de ressources. **
Cairo VM est conçu pour les systèmes de preuve de validité sans les limitations d'EVM. Il est soutenu par un nouveau langage de programmation sécurisé et ergonomique inspiré de Rust appelé Cairo 1.0, formant un outil puissant visant à gagner une efficacité maximale en faisant évoluer Ethereum avec des preuves STARK.
Il a été passionnant de voir ce que Cairo réalise chaque semaine et la croissance de différentes options pour les développeurs, telles que Kakarot zkEVM et Warp. Alors que la dApp Starknet entre en production, démontrant la puissance du Caire, nous pensons qu'elle sera utilisée pour des projets plus ambitieux à l'avenir.
Grâce aux trois voies de mise à l'échelle STARK décrites ci-dessus, et à d'autres qui seront sans aucun doute mises à disposition dans les mois à venir, les développeurs ont désormais un contrôle sans précédent sur la mise à l'échelle de la blockchain.