Foresight Ventures: Décodage zk, zkVM, zkEVM et leur avenir

Débutant12/27/2023, 3:12:52 PM
Cet article fournit une introduction détaillée aux concepts tels que zk, zkVM, zkEVM, etc., dans le but de fournir une compréhension plus profonde de la technologie zk à travers une analyse directe.

TL; DR

  • La technologie de preuve de connaissance nulle garantit l'intégrité, la correction et la confidentialité des calculs, avec des applications dans la scalabilité et la confidentialité de la blockchain.
  • zk-SNARK et zk-STARK ont chacun leurs avantages, et leur combinaison raisonnable détient encore plus de potentiel.
  • zkVM permet aux applications de bénéficier de capacités de preuve de zéro connaissance et est catégorisé en implémentations mainstream, EVM, ou basées sur un nouvel ensemble d'instructions.
  • L'adaptation de l'EVM comprend la compatibilité de l'EVM, l'équivalence et la conformité aux spécifications.
  • zkEVM est un environnement favorable aux preuves de connaissance nulle compatible avec EVM et est divisé en variantes natives et compilées.
  • Le zkEVM natif est l'avenir d'Ethereum et de la blockchain.
  • Un zkVM polyvalent qui prend en charge l'écosystème Solidity est l'avenir de Web3.

0. Preuves de connaissance nulle

Voici une introduction simple et facile à comprendre aux preuves de zéro-connaissance :

Imaginez que vous êtes à l'école primaire. L'enseignant est le vérificateur, et vous, en tant qu'élève, êtes le prouveur. Comment pouvez-vous prouver que vous comprenez la formule pour résoudre les équations quadratiques ? C'est là qu'intervient un examen de mathématiques.

Le professeur vous donnera aléatoirement 10 questions connexes, et si vous comprenez vraiment le concept, vous pourrez toutes les résoudre. Pendant ce processus, vous n'avez pas besoin de réciter ou d'écrire le contenu spécifique de la formule, mais le professeur peut facilement vérifier votre niveau de connaissance.

En fait, c'est la méthode utilisée par Tartaglia et Cardano (oui, c'est le nom) pour concourir à la découverte de la solution de l'équation cubique. Ils ne voulaient pas révéler le contenu de leurs formules respectives, mais grâce à la résolution de problèmes, ils pouvaient facilement vérifier et déterminer s'ils avaient maîtrisé ces connaissances sans divulguer les détails.

Quel est l'objectif des preuves de connaissance nulle ? L'objectif est d'économiser de la puissance de calcul et de réduire l'espace en chaîne dans l'ensemble du processus. De plus, cela peut fournir une protection de la vie privée, en adéquation avec les caractéristiques de la non-confiance dans la blockchain et les principes de la cryptographie.

1. SNARK et STARK

Dans le domaine de la blockchain, le terme "zk" utilisé ou mentionné ne fait généralement pas référence à des preuves réelles de connaissance nulle, mais fait souvent référence à des preuves de validité. En raison de la confusion dans la terminologie, certaines parties de ce texte continueront d'utiliser ces termes "incorrects".

Dans le paysage actuel de la blockchain, zk peut être considéré comme la solution de pointe et optimale pour la scalabilité de la blockchain (pas vrai zk mais plutôt Preuve de validité), et la technologie de confidentialité (vrai zk) qui est utilisée dans des projets tels que Tornado.cash, ZCash, zkSync, zk.money, Filecoin et Mina.

Les solutions techniques actuelles sont principalement divisées en deux catégories : SNARK et STARK. Dans STARK, le « S » signifie évolutif, ce qui signifie que les instructions prouvées ont des structures répétitives, tandis que SNARK prend en charge les circuits arbitraires qui sont prétraités pour obtenir des preuves concises. Parmi eux, la mise en œuvre pratique des SNARKs a pris la première place, tandis que les STARKs sont principalement adoptés à grande échelle dans les produits lancés par StarkWare. Ce qui suit est une comparaison entre eux.

Du point de vue de Meme, STARK est meilleur que SNARK (😊, Star Wars, Star Trek).

Si SNARK est l'avenir d'Ethereum 2.0, alors STARK sera l'avenir d'Ethereum 3.0. Sérieusement, les avantages de STARK sont :

  • Frais de gaz plus bas (meilleure évolutivité)
  • Taille de lot plus grande (scalabilité beaucoup meilleure)
  • Preuves plus rapides (plus de meilleure évolutivité)
  • Aucune configuration de confiance (les paramètres générés ne sont valables que pour l'application actuelle, et si des modifications surviennent, une nouvelle configuration est nécessaire)
  • Sécurité post-quantique

Cependant, les preuves générées par STARK sont significativement grandes en taille. En raison de certaines limitations, telles que celles imposées par WASM, des opérations supplémentaires peuvent être nécessaires pendant la construction (ici, nous faisons référence à SNARK). Récemment, Mir a fourni une implémentation pratique d'un STARK basé sur AIR en utilisant Starky, qui fait partie de Plonky2 (la relation entre Plonky2 et Starky est assez complexe...). À mon avis personnel, bien que la taille puisse être optimisée en utilisant diverses techniques, il est difficile de compresser davantage la complexité temporelle de l'algorithme lui-même.

Ces technologies de preuve de connaissance nulle peuvent être combinées de manière raisonnable pour construire des applications plus puissantes. Par exemple, Polygon Hermez utilise SNARK pour vérifier la correction de STARK, réduisant ainsi les frais de gaz lors de la publication de la preuve.

Dans l'ensemble, SNARK et STARK sont tous deux d'excellentes technologies de preuve de connaissance nulle, chacune avec ses propres forces, et leur combinaison raisonnable a encore plus de potentiel.

2. zkVM

Le Tornado.cash et le zk.money mentionnés précédemment sont des applications similaires qui prennent en charge uniquement les opérations de transfert à l'aide de preuves de zéro connaissance. Ils ne prennent pas en charge les calculs à usage général. En comparaison, ces applications n'ont que les fonctionnalités de Bitcoin, bien moins que l'Ethereum complet de Turing, sans parler de la construction d'un écosystème (les contrats intelligents sur Bitcoin n'ont pas encore établi un écosystème prospère).

zkVM est une machine virtuelle qui garantit des propriétés sécurisées, vérifiables et fiables en utilisant des preuves de connaissance nulle. En termes simples, il prend un ancien état et un programme en entrée et renvoie un nouvel état. Il donne à toutes les applications le superpouvoir des preuves de connaissance nulle.

La présentation de Miden à ETH Amsterdam a efficacement résumé ce qu'est zkVM avec une seule diapositive.

Avantages de zkVM:

  • Facile à utiliser : les développeurs peuvent utiliser zkVM pour exécuter des programmes et garantir la sécurité informatique sans avoir à apprendre la cryptographie ou le développement des connaissances zéro (ceci ne signifie pas qu'il n'y a pas de barrières à l'entrée).
  • Universel : zkVM peut générer des preuves pour n'importe quel programme et calcul.
  • Concis : L'ensemble de la VM peut être décrit avec relativement peu de contraintes, sans avoir à générer le circuit complet de la VM à plusieurs reprises.
  • Récursion: Fonction de récursion gratuite. Tout comme sa universalité, la vérification de la VM peut être effectuée en utilisant la VM elle-même. C'est assez intéressant, par exemple, vous pouvez avoir un zkVM à l'intérieur d'un zkVM, similaire au concept de L3 mentionné par StarkWare.

Inconvénients de zkVM :

  • Architecture informatique spécifique : tous les systèmes de preuve de connaissance zéro ne peuvent pas être utilisés pour zkVM.
  • Problèmes de performances : les circuits doivent être optimisés et peuvent être spécifiquement optimisés pour certaines calculs.

Actuellement, il existe trois principaux types de zkVM, avec leurs ensembles d'instructions respectifs entre parenthèses : Mainstream (WASM, RISC-V), EVM (bytecode EVM), ZK-Optimized (un nouvel ensemble d'instructions optimisé pour les preuves de zéro connaissance, tel que Cairo et zkSync). Voici un tableau comparatif de ces types basé sur la présentation de Miden à ETH Amsterdam.

De nombreuses choses réalisées dans l'écosystème du développement de la preuve de connaissance nulle concernent principalement la possibilité pour les développeurs d'utiliser la bibliothèque Circom (et snarkyjs, par exemple) ou d'autres langages nouvellement créés (comme Leo ou Cairo, qui ont leurs propres limitations uniques) pour le développement d'applications décentralisées zk générales. Cependant, ce n'est pas aussi simple et facile à apprendre que d'utiliser Solidity sur Ethereum.

En plus de cela, il existe de nombreux projets tels que zkSync, Scroll, ou plusieurs sous l'égide de Polygon qui expérimentent avec des solutions zkEVM ou d'autres solutions zkVM.

3. EVM

L'EVM est la machine virtuelle d'Ethereum, qui peut également être comprise comme un ensemble d'environnements d'exécution pour l'exécution de contrats intelligents.

Au fil des ans, diverses blockchains publiques ont continuellement essayé de devenir compatibles avec l'EVM, s'intégrant ainsi dans l'écosystème de développement d'Ethereum. Ce concept a conduit à la dérivation de termes tels que la compatibilité EVM, l'équivalence EVM et d'autres définitions.

  • Compatibilité EVM : Adaptation au niveau du langage, comme avec Solidity.
  • Équivalence EVM : Adaptation au niveau du bytecode EVM.
  • Adaptation de la spécification EVM : Il s'agit généralement de ce qui est appelé le vrai zkEVM. Dans la plupart des cas, il s'agit même d'un sur-ensemble optimisé compatible avec les anciennes versions qui peut offrir des fonctionnalités non fournies par l'EVM, telles que l'abstraction de compte (où chaque compte est un contrat intelligent).

4. zkEVM

Penchons-nous davantage sur zkEVM. Par définition, zkEVM est une machine virtuelle compatible avec EVM et également favorable aux preuves de connaissance nulle, garantissant la complète correction des programmes, des opérations et des entrées/sorties.

Pour parvenir à une computation universelle, il existe deux principaux défis dans le développement de zkEVM :

a) Complexité des circuits

Différents contrats nécessitent la génération de différents circuits, et ces circuits sont assez 'complexes'.

Cet aspect repose principalement sur diverses optimisations. Par exemple, Aleo (bien que ce ne soit pas du type ZK direct... juste un exemple d'optimisation) utilise des clusters distribués pour des calculs de preuve concurrents, ou diverses optimisations matérielles pour l'accélération.

b) Difficultés de conception

zkEVM nécessite non seulement une reconstruction de l'EVM mais aussi une reconstruction de l'ensemble de la transition d'état d'Ethereum en utilisant la technologie de preuve de connaissance nulle.

La conception originale de l'EVM n'a pas anticipé le développement du zkEVM, ce qui a entraîné des difficultés significatives. Cela a entraîné deux approches différentes, comme illustré dans le diagramme.

Ou, pour distinguer selon l'architecture d'une machine virtuelle (VM), comme dans le diagramme ci-dessous (un grand merci à Scroll Tech pour le résumé de l'image d'origine !). L'opcode se réfère à l'opcode EVM. La section StarkWare utilise Warp pour convertir des contrats Solidity en contrats Cairo, ou peut écrire directement des contrats en Cairo, et obtenir toujours une bonne expérience de développement et un ensemble complet d'outils.

Au niveau du développeur et de l'utilisateur, ces solutions sont à mon avis fondamentalement indiscernables. Cependant, en termes d'infrastructure, plus la solution est à droite, meilleure est la compatibilité EVM. Elle peut s'intégrer parfaitement à des infrastructures telles que Geth, mais la progression du développement est généralement plus lente.

5. zkEVM et zkVM

L'existence du zkEVM, à mon avis, est d'innover et de patcher l'écosystème Ethereum, contribuant à la prospérité d'Ethereum et de son écosystème. D'un autre côté, l'existence du zkVM ne renforcera pas nécessairement Ethereum, mais elle offre une plus grande imagination.

Bien que le Cairo VM de StarkNet ne soit peut-être pas le zkVM parfait que j'avais imaginé, il peut faire plus que l'EVM ou le zkEVM. Ces fonctionnalités vont au-delà du niveau des extensions EIP. Sur Cairo VM, des modèles d'apprentissage automatique peuvent être exécutés, et il existe même une plateforme de modèles d'apprentissage automatique en cours de construction sur StarkNet.

Par rapport à zkEVM, la construction d'un zkVM est plus facile (sans se soucier de la dette technique d'EVM), plus flexible (sans se soucier des mises à jour d'EVM), et plus facile à optimiser (les optimiseurs de circuit et de preuve sont beaucoup plus simples et moins coûteux que la construction de zkEVM).

Cependant, zkVM a un inconvénient mineur mais potentiellement fatal. Si zkVM ne peut pas fournir une compatibilité EVM au niveau du langage Solidity, il sera difficile pour zkVM d'établir un écosystème de développement Web3 complet et mature similaire à celui de l'EVM.

zkVM peut être une tendance plus importante qui peut permettre l'optimisation verticale de l'EVM et l'expansion horizontale de l'écosystème EVM, se libérant des limitations de l'EVM.

6. L'avenir de zkVM

S'il pouvait y avoir un zkVM universel qui permettrait aux contrats intelligents de tous les langages de programmation, pas seulement Solidity, pas seulement Cairo, mais Rust, C++, Go, de s'exécuter en toute sécurité avec une preuve de connaissance nulle, cela ne serait-il pas formidable? (Stellar a essayé, mais a échoué).

Comme @kelvinfichtermentionné : Pourquoi zkEVM si zkMIPS ? Comme @KyleSamanimentionné : EVM est un bug, pas une fonctionnalité. Pourquoi zkEVM si zkVM ?

Winterfall, Distaff, Miden VM et d'autres zkVM n'ont pas atteint un haut niveau de convivialité pour les développeurs. Nervos a un VM RISC-V, mais il n'utilise pas la technologie de preuve de connaissance nulle.

La solution optimale dans la situation actuelle est de construire un WASM ou un zkVM RISC-V, encore mieux s'il pouvait prendre en charge des langues telles que Rust, Go, C++, et même Solidity (zkSync semble pouvoir apporter des contributions significatives). S'il existe un zkVM universel, ce serait un coup significatif pour zkEVM.

Le nombre de développeurs Web3 représente environ 0,07% de tous les développeurs. Cela implique que le nombre de développeurs Solidity est encore plus petit que 0,07%, et encore moins de développeurs utiliseraient Cairo pour écrire des contrats ou Leo pour écrire des circuits. En conséquence, le zkVM parfait vise à répondre à presque 100% des développeurs, car n'importe quel développeur peut obtenir un environnement d'exécution à connaissance nulle parfait en utilisant presque n'importe quel langage de programmation.

Si un jour Web3 et Crypto venaient à dominer le monde, je crois que ce ne serait certainement pas l'écosystème EVM occupant 100% de tous les développeurs, mais plutôt tous les développeurs passant progressivement à des développeurs Web3 et Crypto. C'est là que réside la brillance du zkVM universel.

Le zkEVM natif est l'avenir de la blockchain.

zkVM universel est l'avenir de Web3.

Avertissement:

  1. Cet article est repris de [Recherche prospective]. Tous les droits d'auteur appartiennent à l'auteur original [msfew @ Foresight Ventures]. If there are objections to this reprint, please contact the Gate Learnéquipe, et ils s'en occuperont rapidement.
  2. Avertissement de responsabilité : Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe Gate Learn. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.

Foresight Ventures: Décodage zk, zkVM, zkEVM et leur avenir

Débutant12/27/2023, 3:12:52 PM
Cet article fournit une introduction détaillée aux concepts tels que zk, zkVM, zkEVM, etc., dans le but de fournir une compréhension plus profonde de la technologie zk à travers une analyse directe.

TL; DR

  • La technologie de preuve de connaissance nulle garantit l'intégrité, la correction et la confidentialité des calculs, avec des applications dans la scalabilité et la confidentialité de la blockchain.
  • zk-SNARK et zk-STARK ont chacun leurs avantages, et leur combinaison raisonnable détient encore plus de potentiel.
  • zkVM permet aux applications de bénéficier de capacités de preuve de zéro connaissance et est catégorisé en implémentations mainstream, EVM, ou basées sur un nouvel ensemble d'instructions.
  • L'adaptation de l'EVM comprend la compatibilité de l'EVM, l'équivalence et la conformité aux spécifications.
  • zkEVM est un environnement favorable aux preuves de connaissance nulle compatible avec EVM et est divisé en variantes natives et compilées.
  • Le zkEVM natif est l'avenir d'Ethereum et de la blockchain.
  • Un zkVM polyvalent qui prend en charge l'écosystème Solidity est l'avenir de Web3.

0. Preuves de connaissance nulle

Voici une introduction simple et facile à comprendre aux preuves de zéro-connaissance :

Imaginez que vous êtes à l'école primaire. L'enseignant est le vérificateur, et vous, en tant qu'élève, êtes le prouveur. Comment pouvez-vous prouver que vous comprenez la formule pour résoudre les équations quadratiques ? C'est là qu'intervient un examen de mathématiques.

Le professeur vous donnera aléatoirement 10 questions connexes, et si vous comprenez vraiment le concept, vous pourrez toutes les résoudre. Pendant ce processus, vous n'avez pas besoin de réciter ou d'écrire le contenu spécifique de la formule, mais le professeur peut facilement vérifier votre niveau de connaissance.

En fait, c'est la méthode utilisée par Tartaglia et Cardano (oui, c'est le nom) pour concourir à la découverte de la solution de l'équation cubique. Ils ne voulaient pas révéler le contenu de leurs formules respectives, mais grâce à la résolution de problèmes, ils pouvaient facilement vérifier et déterminer s'ils avaient maîtrisé ces connaissances sans divulguer les détails.

Quel est l'objectif des preuves de connaissance nulle ? L'objectif est d'économiser de la puissance de calcul et de réduire l'espace en chaîne dans l'ensemble du processus. De plus, cela peut fournir une protection de la vie privée, en adéquation avec les caractéristiques de la non-confiance dans la blockchain et les principes de la cryptographie.

1. SNARK et STARK

Dans le domaine de la blockchain, le terme "zk" utilisé ou mentionné ne fait généralement pas référence à des preuves réelles de connaissance nulle, mais fait souvent référence à des preuves de validité. En raison de la confusion dans la terminologie, certaines parties de ce texte continueront d'utiliser ces termes "incorrects".

Dans le paysage actuel de la blockchain, zk peut être considéré comme la solution de pointe et optimale pour la scalabilité de la blockchain (pas vrai zk mais plutôt Preuve de validité), et la technologie de confidentialité (vrai zk) qui est utilisée dans des projets tels que Tornado.cash, ZCash, zkSync, zk.money, Filecoin et Mina.

Les solutions techniques actuelles sont principalement divisées en deux catégories : SNARK et STARK. Dans STARK, le « S » signifie évolutif, ce qui signifie que les instructions prouvées ont des structures répétitives, tandis que SNARK prend en charge les circuits arbitraires qui sont prétraités pour obtenir des preuves concises. Parmi eux, la mise en œuvre pratique des SNARKs a pris la première place, tandis que les STARKs sont principalement adoptés à grande échelle dans les produits lancés par StarkWare. Ce qui suit est une comparaison entre eux.

Du point de vue de Meme, STARK est meilleur que SNARK (😊, Star Wars, Star Trek).

Si SNARK est l'avenir d'Ethereum 2.0, alors STARK sera l'avenir d'Ethereum 3.0. Sérieusement, les avantages de STARK sont :

  • Frais de gaz plus bas (meilleure évolutivité)
  • Taille de lot plus grande (scalabilité beaucoup meilleure)
  • Preuves plus rapides (plus de meilleure évolutivité)
  • Aucune configuration de confiance (les paramètres générés ne sont valables que pour l'application actuelle, et si des modifications surviennent, une nouvelle configuration est nécessaire)
  • Sécurité post-quantique

Cependant, les preuves générées par STARK sont significativement grandes en taille. En raison de certaines limitations, telles que celles imposées par WASM, des opérations supplémentaires peuvent être nécessaires pendant la construction (ici, nous faisons référence à SNARK). Récemment, Mir a fourni une implémentation pratique d'un STARK basé sur AIR en utilisant Starky, qui fait partie de Plonky2 (la relation entre Plonky2 et Starky est assez complexe...). À mon avis personnel, bien que la taille puisse être optimisée en utilisant diverses techniques, il est difficile de compresser davantage la complexité temporelle de l'algorithme lui-même.

Ces technologies de preuve de connaissance nulle peuvent être combinées de manière raisonnable pour construire des applications plus puissantes. Par exemple, Polygon Hermez utilise SNARK pour vérifier la correction de STARK, réduisant ainsi les frais de gaz lors de la publication de la preuve.

Dans l'ensemble, SNARK et STARK sont tous deux d'excellentes technologies de preuve de connaissance nulle, chacune avec ses propres forces, et leur combinaison raisonnable a encore plus de potentiel.

2. zkVM

Le Tornado.cash et le zk.money mentionnés précédemment sont des applications similaires qui prennent en charge uniquement les opérations de transfert à l'aide de preuves de zéro connaissance. Ils ne prennent pas en charge les calculs à usage général. En comparaison, ces applications n'ont que les fonctionnalités de Bitcoin, bien moins que l'Ethereum complet de Turing, sans parler de la construction d'un écosystème (les contrats intelligents sur Bitcoin n'ont pas encore établi un écosystème prospère).

zkVM est une machine virtuelle qui garantit des propriétés sécurisées, vérifiables et fiables en utilisant des preuves de connaissance nulle. En termes simples, il prend un ancien état et un programme en entrée et renvoie un nouvel état. Il donne à toutes les applications le superpouvoir des preuves de connaissance nulle.

La présentation de Miden à ETH Amsterdam a efficacement résumé ce qu'est zkVM avec une seule diapositive.

Avantages de zkVM:

  • Facile à utiliser : les développeurs peuvent utiliser zkVM pour exécuter des programmes et garantir la sécurité informatique sans avoir à apprendre la cryptographie ou le développement des connaissances zéro (ceci ne signifie pas qu'il n'y a pas de barrières à l'entrée).
  • Universel : zkVM peut générer des preuves pour n'importe quel programme et calcul.
  • Concis : L'ensemble de la VM peut être décrit avec relativement peu de contraintes, sans avoir à générer le circuit complet de la VM à plusieurs reprises.
  • Récursion: Fonction de récursion gratuite. Tout comme sa universalité, la vérification de la VM peut être effectuée en utilisant la VM elle-même. C'est assez intéressant, par exemple, vous pouvez avoir un zkVM à l'intérieur d'un zkVM, similaire au concept de L3 mentionné par StarkWare.

Inconvénients de zkVM :

  • Architecture informatique spécifique : tous les systèmes de preuve de connaissance zéro ne peuvent pas être utilisés pour zkVM.
  • Problèmes de performances : les circuits doivent être optimisés et peuvent être spécifiquement optimisés pour certaines calculs.

Actuellement, il existe trois principaux types de zkVM, avec leurs ensembles d'instructions respectifs entre parenthèses : Mainstream (WASM, RISC-V), EVM (bytecode EVM), ZK-Optimized (un nouvel ensemble d'instructions optimisé pour les preuves de zéro connaissance, tel que Cairo et zkSync). Voici un tableau comparatif de ces types basé sur la présentation de Miden à ETH Amsterdam.

De nombreuses choses réalisées dans l'écosystème du développement de la preuve de connaissance nulle concernent principalement la possibilité pour les développeurs d'utiliser la bibliothèque Circom (et snarkyjs, par exemple) ou d'autres langages nouvellement créés (comme Leo ou Cairo, qui ont leurs propres limitations uniques) pour le développement d'applications décentralisées zk générales. Cependant, ce n'est pas aussi simple et facile à apprendre que d'utiliser Solidity sur Ethereum.

En plus de cela, il existe de nombreux projets tels que zkSync, Scroll, ou plusieurs sous l'égide de Polygon qui expérimentent avec des solutions zkEVM ou d'autres solutions zkVM.

3. EVM

L'EVM est la machine virtuelle d'Ethereum, qui peut également être comprise comme un ensemble d'environnements d'exécution pour l'exécution de contrats intelligents.

Au fil des ans, diverses blockchains publiques ont continuellement essayé de devenir compatibles avec l'EVM, s'intégrant ainsi dans l'écosystème de développement d'Ethereum. Ce concept a conduit à la dérivation de termes tels que la compatibilité EVM, l'équivalence EVM et d'autres définitions.

  • Compatibilité EVM : Adaptation au niveau du langage, comme avec Solidity.
  • Équivalence EVM : Adaptation au niveau du bytecode EVM.
  • Adaptation de la spécification EVM : Il s'agit généralement de ce qui est appelé le vrai zkEVM. Dans la plupart des cas, il s'agit même d'un sur-ensemble optimisé compatible avec les anciennes versions qui peut offrir des fonctionnalités non fournies par l'EVM, telles que l'abstraction de compte (où chaque compte est un contrat intelligent).

4. zkEVM

Penchons-nous davantage sur zkEVM. Par définition, zkEVM est une machine virtuelle compatible avec EVM et également favorable aux preuves de connaissance nulle, garantissant la complète correction des programmes, des opérations et des entrées/sorties.

Pour parvenir à une computation universelle, il existe deux principaux défis dans le développement de zkEVM :

a) Complexité des circuits

Différents contrats nécessitent la génération de différents circuits, et ces circuits sont assez 'complexes'.

Cet aspect repose principalement sur diverses optimisations. Par exemple, Aleo (bien que ce ne soit pas du type ZK direct... juste un exemple d'optimisation) utilise des clusters distribués pour des calculs de preuve concurrents, ou diverses optimisations matérielles pour l'accélération.

b) Difficultés de conception

zkEVM nécessite non seulement une reconstruction de l'EVM mais aussi une reconstruction de l'ensemble de la transition d'état d'Ethereum en utilisant la technologie de preuve de connaissance nulle.

La conception originale de l'EVM n'a pas anticipé le développement du zkEVM, ce qui a entraîné des difficultés significatives. Cela a entraîné deux approches différentes, comme illustré dans le diagramme.

Ou, pour distinguer selon l'architecture d'une machine virtuelle (VM), comme dans le diagramme ci-dessous (un grand merci à Scroll Tech pour le résumé de l'image d'origine !). L'opcode se réfère à l'opcode EVM. La section StarkWare utilise Warp pour convertir des contrats Solidity en contrats Cairo, ou peut écrire directement des contrats en Cairo, et obtenir toujours une bonne expérience de développement et un ensemble complet d'outils.

Au niveau du développeur et de l'utilisateur, ces solutions sont à mon avis fondamentalement indiscernables. Cependant, en termes d'infrastructure, plus la solution est à droite, meilleure est la compatibilité EVM. Elle peut s'intégrer parfaitement à des infrastructures telles que Geth, mais la progression du développement est généralement plus lente.

5. zkEVM et zkVM

L'existence du zkEVM, à mon avis, est d'innover et de patcher l'écosystème Ethereum, contribuant à la prospérité d'Ethereum et de son écosystème. D'un autre côté, l'existence du zkVM ne renforcera pas nécessairement Ethereum, mais elle offre une plus grande imagination.

Bien que le Cairo VM de StarkNet ne soit peut-être pas le zkVM parfait que j'avais imaginé, il peut faire plus que l'EVM ou le zkEVM. Ces fonctionnalités vont au-delà du niveau des extensions EIP. Sur Cairo VM, des modèles d'apprentissage automatique peuvent être exécutés, et il existe même une plateforme de modèles d'apprentissage automatique en cours de construction sur StarkNet.

Par rapport à zkEVM, la construction d'un zkVM est plus facile (sans se soucier de la dette technique d'EVM), plus flexible (sans se soucier des mises à jour d'EVM), et plus facile à optimiser (les optimiseurs de circuit et de preuve sont beaucoup plus simples et moins coûteux que la construction de zkEVM).

Cependant, zkVM a un inconvénient mineur mais potentiellement fatal. Si zkVM ne peut pas fournir une compatibilité EVM au niveau du langage Solidity, il sera difficile pour zkVM d'établir un écosystème de développement Web3 complet et mature similaire à celui de l'EVM.

zkVM peut être une tendance plus importante qui peut permettre l'optimisation verticale de l'EVM et l'expansion horizontale de l'écosystème EVM, se libérant des limitations de l'EVM.

6. L'avenir de zkVM

S'il pouvait y avoir un zkVM universel qui permettrait aux contrats intelligents de tous les langages de programmation, pas seulement Solidity, pas seulement Cairo, mais Rust, C++, Go, de s'exécuter en toute sécurité avec une preuve de connaissance nulle, cela ne serait-il pas formidable? (Stellar a essayé, mais a échoué).

Comme @kelvinfichtermentionné : Pourquoi zkEVM si zkMIPS ? Comme @KyleSamanimentionné : EVM est un bug, pas une fonctionnalité. Pourquoi zkEVM si zkVM ?

Winterfall, Distaff, Miden VM et d'autres zkVM n'ont pas atteint un haut niveau de convivialité pour les développeurs. Nervos a un VM RISC-V, mais il n'utilise pas la technologie de preuve de connaissance nulle.

La solution optimale dans la situation actuelle est de construire un WASM ou un zkVM RISC-V, encore mieux s'il pouvait prendre en charge des langues telles que Rust, Go, C++, et même Solidity (zkSync semble pouvoir apporter des contributions significatives). S'il existe un zkVM universel, ce serait un coup significatif pour zkEVM.

Le nombre de développeurs Web3 représente environ 0,07% de tous les développeurs. Cela implique que le nombre de développeurs Solidity est encore plus petit que 0,07%, et encore moins de développeurs utiliseraient Cairo pour écrire des contrats ou Leo pour écrire des circuits. En conséquence, le zkVM parfait vise à répondre à presque 100% des développeurs, car n'importe quel développeur peut obtenir un environnement d'exécution à connaissance nulle parfait en utilisant presque n'importe quel langage de programmation.

Si un jour Web3 et Crypto venaient à dominer le monde, je crois que ce ne serait certainement pas l'écosystème EVM occupant 100% de tous les développeurs, mais plutôt tous les développeurs passant progressivement à des développeurs Web3 et Crypto. C'est là que réside la brillance du zkVM universel.

Le zkEVM natif est l'avenir de la blockchain.

zkVM universel est l'avenir de Web3.

Avertissement:

  1. Cet article est repris de [Recherche prospective]. Tous les droits d'auteur appartiennent à l'auteur original [msfew @ Foresight Ventures]. If there are objections to this reprint, please contact the Gate Learnéquipe, et ils s'en occuperont rapidement.
  2. Avertissement de responsabilité : Les points de vue et opinions exprimés dans cet article sont uniquement ceux de l'auteur et ne constituent aucun conseil en investissement.
  3. Les traductions de l'article dans d'autres langues sont effectuées par l'équipe Gate Learn. Sauf mention contraire, la copie, la distribution ou le plagiat des articles traduits est interdit.
Empieza ahora
¡Registrarse y recibe un bono de
$100
!