Preuve de validité détaillée Caractéristiques techniques Rollup et Cairo VM

Source : Mise à l'échelle efficace d'Ethereum ; Compilation : Communauté chinoise de Starknet

aperçu

  • Proof of Validity Rollup est le moyen le plus potentiel d'augmenter le débit d'Ethereum de manière sûre et décentralisée ; zkEVM et Cairo VM (CVM) sont les deux machines virtuelles (VM) utilisées dans le Rollup of Validity Proof.
  • zkEVM se concentre sur la compatibilité Ethereum au détriment des performances et de l'évolutivité.
  • La VM Cairo adoptée par Starknet donne la priorité aux performances et à l'évolutivité plutôt qu'à la compatibilité.

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:

  • Contrairement au traitement de chaque transaction sur le réseau principal Ethereum, l'opérateur exécute la transaction dans un environnement hors chaîne. L'environnement hors chaîne est L2, la couche d'exploitation fonctionnant au-dessus d'Ethereum.
  • Une fois le traitement de la transaction en masse terminé, l'opérateur L2 renvoie le résultat à l'état Ethereum, accompagné d'une preuve de validité pour vérifier l'intégrité de l'exécution hors chaîne. Cette preuve garantit que toutes les transactions d'un même lot sont valides et vérifiées de manière autonome par le contrat de vérification en chaîne. Cette opération permet à Ethereum d'appliquer le résultat à son état.

Caractéristiques techniques détaillées de Rollup et Cairo VM pour preuve de validité

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.

machine virtuelle hors chaîne

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é.

Comprendre le fonctionnement de zkEVM

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.

Prouvabilité de l'EVM

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 :

  • **EVM utilise un modèle basé sur la pile, alors que la validité s'avère plus efficace pour un modèle basé sur le registre. ** La nature basée sur la pile de l'EVM rend intrinsèquement plus difficile la preuve de l'exactitude de son exécution et fournit un support direct pour sa chaîne d'outils native.
  • ** La disposition du stockage Ethereum repose fortement sur Keccak et les grands arbres Merkle Patricia, qui sont tous deux compatibles avec la preuve de non-validité et apportent un énorme fardeau de preuve. **Par exemple, Keccak est très rapide pour les architectures x86 (généralement utilisées pour exécuter EVM), mais prend 90 000 étapes pour prouver (nécessite des fonctions intégrées spéciales). Alors que Pedersen (une fonction de hachage conviviale sans connaissance) ne nécessite que 32 étapes. Même avec une compression récursive, l'utilisation de Keccak dans zkEVM consomme toujours beaucoup de ressources de preuve, et le coût est finalement supporté par l'utilisateur.

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)

Caractéristiques techniques détaillées de Rollup et Cairo VM pour preuve de validité

Comprendre le fonctionnement de Cairo-VM

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 :

  1. Preuve de l'efficacité de l'optimisation, chaque instruction a une expression algébrique valide
  2. Un langage moderne de type Rust pour écrire des programmes démontrables
  3. Expressions intermédiaires (Sierra) entre le langage Cairo de haut niveau et l'assemblage Cairo (instructions VM), qui peuvent exécuter efficacement le code Cairo

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.

Le Caire et le pluralisme des codes

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 :

  • **Codage local à Cairo :**Cairo 1.0 est inspiré de Rust, plus conforme aux habitudes d'utilisation des développeurs et plus sûr. L'écriture de la logique du programme devient plus facile et moins sujette aux erreurs.
  • **Compatibilité Solidity : **Les développeurs Solidity peuvent écrire du code prenant en charge Cairo VM. Cette approche offre une expérience de développeur similaire à Ethereum et prend en charge la migration des contrats intelligents Solidity vers Starknet. Il existe deux manières d'implémenter la migration :
  • **Traduction : **La traduction est le processus de conversion du code source d'un langage de programmation dans un autre langage. L'équipe Nethermind a construit le transpileur Warp pour transpiler le code Solidity au Caire. Warp rend les contrats intelligents Solidity portables sur Starknet, ce qui en fait effectivement un quatrième type de zkEVM. Il est actuellement 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 en concurrence, plutôt que de choisir entre les deux, mieux vaut avoir les deux !

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.

Résumer

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.

type zkEVM

Vitalik divise zkEVM en quatre types principaux :

  • **Équivalent Ethereum complet de la première catégorie : **Ne modifie aucune partie de l'écosystème Ethereum.
  • ** Le deuxième type d'EVM entièrement équivalent : ** peut être compatible avec les dApps existantes et apporter quelques ajustements à la conception d'Ethereum pour accélérer la génération de preuves.
  • ** La troisième catégorie est à peu près équivalente à EVM : ** Prend en charge la plupart des opcodes EVM, supprime certaines fonctions que zkEVM est difficile à implémenter (telles que les fonctions de précompilation et de hachage).
  • **Le quatrième type de langage de haut niveau équivalent : **Utilisez Solidity/Vyper pour écrire un code de contrat intelligent et le traduire dans un langage valide et convivial.
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.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate.io app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)