Comment le passage de zkEVM à zkVM a amélioré la scalabilité de la blockchain

La bêta de niveau 2 de Polygon zkEVM booste la croissance des DApps et l'activité DeFi
La technologie blockchain a fait un long chemin depuis l'avènement de Bitcoin il y a plus d'une décennie. Bien que les premiers réseaux blockchain aient été révolutionnaires dans leur approche décentralisée, ils ont fait face à des défis significatifs, notamment en termes de scalabilité. À mesure que les applications et les cas d'utilisation de la blockchain continuent de s'étendre, la recherche de solutions aux problèmes de scalabilité est devenue une priorité absolue.
L'une des avancées prometteuses dans ce domaine est la transition de zkEVM (Zero-Knowledge Ethereum Virtual Machine) à zkVM (Zero-Knowledge Virtual Machine), qui a le potentiel d'améliorer considérablement la scalabilité de la blockchain. Dans cet article, nous plongerons dans l'univers de zkEVM, explorerons ses limites et comprendrons comment l'évolution vers zkVM est sur le point d'apporter des améliorations substantielles à la scalabilité de la blockchain.
L'essor des preuves à divulgation nulle de connaissance (ZKP)
Les preuves à divulgation nulle de connaissance jouent un rôle pivot dans la protection de la vie privée des utilisateurs sur Internet, surtout alors que nous nous efforçons d'atteindre une adoption massive sur la blockchain. Elles promettent également de résoudre les défis computationnels. Actuellement, il existe deux voies principales pour y parvenir : les zkEVM et les zkVM. Dans cette exploration, nous examinerons les deux approches, en pesant leurs avantages et inconvénients. Cependant, avant de plonger dans cette analyse, il est essentiel de comprendre ce que nous cherchons à optimiser et pourquoi la confidentialité revêt une telle importance.
Dans le domaine de l'évolution cryptographique, tout comme dans son homologue biologique, le développement des traits est guidé par l'objectif d'optimisation pour des résultats spécifiques. Bitcoin, par exemple, a priorisé la sécurité par-dessus tout, reconnaissant que la monnaie numérique décentralisée devait être incontestablement sécurisée avant de pouvoir gagner en acceptation et en adoption massive. Ethereum a suivi un chemin similaire, en mettant l'accent sur la sécurité tout en introduisant une couche supplémentaire : la programmabilité offerte par les contrats intelligents.
Ces itérations dans l'évolution cryptographique ont tendance à s'appuyer les unes sur les autres, chacune apportant son propre ensemble de compromis. Dans le cas d'Ethereum, chaque nœud est tenu de réexécuter chaque transaction, présentant des défis computationnels formidables qui se traduisent par des frais de gaz élevés et des vitesses de transaction lentes. La décision d'effectuer les calculs directement sur la blockchain a été prise pour améliorer la sécurité et la transparence. Cependant, cela a un coût : des performances et une confidentialité compromises.
Les rollups sont apparus comme une solution pour améliorer la scalabilité en réduisant les charges computationnelles associées à Ethereum. Bien qu'ils commencent à résoudre le problème de performance, ils ne tiennent pas compte des préoccupations liées à la confidentialité. Cela est significatif car la confidentialité est devenue une condition préalable pour les applications visant à élargir leur base d'utilisateurs. Les utilisateurs exigent de plus en plus de contrôle sur leurs données et se méfient des entités cherchant un accès sans restriction à leurs informations.
Les développeurs d'applications ont reconnu cette tendance croissante vers la confidentialité et sa nécessité. Par conséquent, ils ont activement exploré des méthodes pour protéger la confidentialité grâce à l'utilisation de preuves à divulgation nulle de connaissance (ZKP). Ces protocoles cryptographiques permettent aux utilisateurs ou aux applications de vérifier la véracité d'une affirmation sans divulguer aucune information supplémentaire. Par exemple, les ZKP peuvent confirmer qu'un utilisateur a plus de 18 ans sans révéler son âge exact ou sa date de naissance.
Comme mis en évidence dans le rapport « State of Crypto 2023 » d'a16z, l'adoption de la technologie de preuve ZK par les développeurs est sur le point d'augmenter davantage. Cette tendance est alimentée par une augmentation des publications académiques et un nombre croissant de transactions quotidiennes impliquant la vérification de preuves ZKP sur le réseau Ethereum. L'élan derrière les ZKP démontre leur importance croissante dans la quête d'équilibre entre confidentialité, sécurité et scalabilité dans l'espace blockchain.
Comprendre zkVM
Le premier aspect qui doit être défini est : qu'est-ce qu'une machine virtuelle (VM) ? En résumé, une VM est un programme logiciel capable d'exécuter d'autres programmes, fonctionnant généralement comme une boucle itérative qui exécute un ensemble d'instructions spécifié — ces instructions représentant le « programme » en question.
La Machine Virtuelle Ethereum (EVM), spécifiquement, sert de VM responsable de l'exécution des contrats intelligents Ethereum. La compilation originale des instructions prises en charge et de leurs comportements respectifs a été décrite en 2014 dans le papier jaune séminal — distingué non seulement par son importance mais aussi par sa couleur jaune distinctive — rédigé par Gavin Wood. Le papier maintient un état de mises à jour continues, visant à refléter l'ensemble actuel des instructions prises en charge.
Une machine virtuelle à divulgation nulle de connaissance (zk VM), en revanche, est essentiellement une VM implémentée sous forme de circuit au sein d'un système de preuve à divulgation nulle de connaissance (zkp). Cela la distingue des systèmes zkp conventionnels qui se concentrent principalement sur la preuve de l'exécution d'un programme. Dans les zkVM, l'accent est mis sur la vérification de l'exécution d'une machine virtuelle elle-même. Par conséquent, certaines personnes tirent une distinction, catégorisant les zkp non-VM comme faisant partie de l'approche FPGA (Field-Programmable Gate Array), tandis que les zkVM sont considérés comme des constituants de l'approche CPU (Central Processing Unit).
Au sein des systèmes zkp, les programmes ou circuits sont des entités immuables, tout comme les binaires compilés à partir de programmes spécifiques. Par conséquent, un circuit zkVM incarne essentiellement un nombre prédéterminé d'itérations pour la boucle, ce qui peut être comparé au déroulement de la boucle. En essence, un zkVM est un circuit conçu pour exécuter une machine virtuelle. Les instructions du programme réel peuvent être introduites comme entrée publique dans ce circuit, permettant une transparence complète concernant le programme vérifié. (Diverses méthodes existent pour transmettre les instructions du programme à la VM si l'on souhaite explorer davantage d'alternatives.)
Plusieurs projets zkVM ont émergé, avec au moins trois initiatives notables :
- Cairo : Utilisé par Starknet, ce projet est remarquable pour son papier méticuleux, considéré comme une œuvre d'art. Une implémentation expérimentale connue sous le nom de « turshi » est également présente dans le framework Kimchi.
- Miden : Un projet en cours au sein de l'écosystème Polygon, Miden est actuellement en développement.
- Risczero : Une autre initiative en cours de développement, Risczero vise à prendre en charge l'ensemble d'instructions RISC-V, une norme largement reconnue au-delà du domaine de la blockchain.
Chacun de ces projets prend en charge des ensembles d'instructions distincts, les rendant non interopérables entre eux.
Types de zkVM
Le domaine des zk VM peut être catégorisé en deux types distincts :
- VM optimisées pour zk : Des exemples notables incluent Cairo et Miden. Ces VM sont méticuleusement conçues pour prioriser l'efficacité, les rendant significativement plus rapides. Leur objectif principal est de faciliter une intégration transparente avec les systèmes de preuve à divulgation nulle de connaissance (zkp), rationalisant ainsi le processus de vérification.
- VM du monde réel : Cette catégorie englobe des VM comme RiscZero, qui prend en charge l'ensemble d'instructions RISC-V, et diverses zkEVM adaptées à la Machine Virtuelle Ethereum (EVM). Les VM du monde réel sont destinées à fournir une compatibilité avec les ensembles d'instructions et les écosystèmes établis au-delà du domaine des preuves à divulgation nulle de connaissance.
La motivation derrière le soutien de l'EVM peut être attribuée à plusieurs raisons convaincantes. Premièrement, pour Ethereum lui-même, cela permet la création de preuves englobant toute la transition d'état — de l'état de genèse à l'état actuel d'Ethereum. Cette capacité est exemplifiée par des projets comme Mina.
Deuxièmement, pour les projets non-Ethereum, l'adoption de la compatibilité EVM offre l'avantage d'intégrer sans problème des projets et des applications de l'écosystème Ethereum, tels qu'Uniswap. Cela facilite non seulement l'interopérabilité, mais présente également une opportunité d'attirer des développeurs de la communauté Ethereum vers de nouveaux projets.
Mécanisme de zkVM
ZkVM, découlant de nos travaux antérieurs sur TxVM et influencé par les conceptions de Bitcoin et Ethereum, introduit un nouveau format de transaction. Dans ZkVM, une transaction est représentée comme un programme qui manipule directement le flux d'actifs en tant qu'objets de première classe, mettant à jour l'état de la blockchain via un journal de transaction. Cette séparation de l'application du journal de transaction et de la validation permet une conception hautement évolutive tout en fournissant un environnement robuste pour les contrats personnalisés.
Pour améliorer la scalabilité de la blockchain et permettre des transferts de valeur confidentiels, le ZkVM utilise un modèle UTXO (Unspent Transaction Output) pour représenter les soldes. Tous les soldes sont exprimés sous forme d'ensembles de sorties non dépensées (UTXO), qui peuvent être créées, détruites et manipulées au sein des transactions. Ces UTXO sont stockées efficacement sous forme de racines de Merkle à l'aide du schéma Utreexo, réduisant considérablement les exigences de stockage et facilitant le déploiement plus large de nœuds de validation complets.
Dans le ZkVM, chaque sortie est un contrat stocké dans l'état de la blockchain, contenant plusieurs éléments protégés par un prédicat — une condition qui doit être remplie pour débloquer ces éléments. Le ZkVM utilise une conception basée sur Taproot, permettant de débloquer les contrats soit par des signatures cryptographiques, soit en exécutant un sous-programme intégré qui vérifie des conditions personnalisées.
Les contrats dans le ZkVM servent de blocs de construction polyvalents pour des protocoles de niveau supérieur tels que les comptes, les carnets d'ordres et les canaux de paiement. Cette flexibilité permet à des plateformes comme Stellar de déplacer les choix de conception de protocole loin de la couche critique de consensus, favorisant l'expérimentation avec une large gamme d'applications décentralisées.
En ce qui concerne la confidentialité, le ZkVM trouve un équilibre en utilisant le schéma Taproot dans les prédicats. La logique du contrat n'a pas besoin d'être révélée si toutes les parties coopèrent, mais la sécurité reste intacte si elles ne le font pas. Même lorsque la logique du contrat doit être divulguée, des données telles que les soldes et les paramètres du contrat restent confidentielles grâce à un système de contraintes vérifié par preuve à divulgation nulle de connaissance (zero-knowledge).
Le ZkVM s'appuie sur le système de preuve à divulgation nulle de connaissance Bulletproofs, chiffrant les valeurs et les données par défaut sous forme d'engagements de Pedersen. Les utilisateurs peuvent spécifier des expressions arithmétiques et logiques sur des valeurs secrètes, qui sont automatiquement transformées en un système de contraintes Bulletproofs. Les transactions sont compactes et efficaces, les petites transactions ayant une taille comprise entre 1 et 1,5 Ko, et les paiements agrégés entraînant un coût marginal de seulement 200 octets par paire entrée-sortie. La vérification est hautement parallélisable, ne prenant que environ 1 milliseconde par sortie. Cette efficacité permet au ZkVM de prioriser la sécurité sans compromettre le chiffrement des données, garantissant que les données ne sont révélées qu'aux parties autorisées selon le principe du besoin d'en connaître. De plus, le cadre Bulletproofs élimine le besoin d'une configuration de confiance, permettant la création de nouveaux protocoles sur le ZkVM sans nécessiter de mises à niveau de l'ensemble du réseau pour chaque fonctionnalité.
La nécessité de passer du zkEVM au zkVM
Limitations du zkEVM
Bien que le zkEVM ait apporté des améliorations significatives, il présentait encore certaines limitations qui entravaient son potentiel de scalabilité :
- Compatibilité limitée : Le zkEVM était principalement conçu pour le réseau Ethereum. Cela signifiait que d'autres plateformes blockchain ne pouvaient pas adopter facilement cette technologie, limitant son impact plus large sur l'écosystème blockchain.
- Complexité : La mise en œuvre du zkEVM nécessitait une compréhension approfondie des preuves à divulgation nulle de connaissance et de la cryptographie. Cette complexité rendait difficile pour les développeurs d'intégrer le zkEVM dans leurs projets, limitant davantage son adoption.
- Défis de stockage et de données : Le zkEVM ne résolvait pas efficacement le problème du stockage des données sur la blockchain. Les exigences élevées de stockage de données restaient un goulot d'étranglement pour la scalabilité.
La transition vers le zkVM : une avancée majeure en matière de scalabilité
Conscient des limitations du zkEVM, la communauté blockchain s'est lancée dans un voyage pour développer une solution plus polyvalente et scalable, conduisant à la naissance du zkVM, ou Machine Virtuelle à Preuve à Divulgation Nulle de Connaissance.
Le zkVM s'appuie sur les principes fondamentaux du zkEVM tout en comblant ses lacunes. Explorons comment le zkVM est prêt à révolutionner la scalabilité de la blockchain :
- Compatibilité multi-plateformes : Contrairement au zkEVM, le zkVM est conçu pour être indépendant de la blockchain. Cela signifie qu'il peut être intégré dans divers réseaux blockchain, pas seulement Ethereum. Cette compatibilité plus large ouvre la porte à un impact plus significatif du zkVM sur l'ensemble de l'écosystème blockchain.
- Expérience utilisateur améliorée : Le zkVM vise à simplifier le processus de mise en œuvre pour les développeurs. En offrant des outils et des interfaces conviviaux, le zkVM facilite pour les développeurs l'exploitation de la puissance des preuves à divulgation nulle de connaissance, réduisant la barrière à l'entrée.
- Gestion des données améliorée : Le zkVM aborde le problème du stockage des données plus efficacement. Il introduit des techniques innovantes de compression et de stockage des données, réduisant les exigences de stockage sur la blockchain. Cette optimisation a un impact positif direct sur la scalabilité en diminuant la taille des données de la blockchain.
- Traitement des transactions plus rapide : Avec les capacités de calcul hors chaîne du zkVM, la charge de calcul sur le réseau blockchain est encore réduite. Cela conduit à des temps de traitement des transactions plus rapides, des frais inférieurs et des performances globales améliorées.
Pour quoi optimisons-nous ?
Lockheed Martin s'est lancé dans la tâche ambitieuse de créer le F-35, l'envisageant comme un avion de combat polyvalent capable de remplacer les combattants spécialisés air-air et air-sol. Cependant, cet effort a rencontré des revers significatifs, accusant une décennie de retard sur son calendrier prévu et acquérant la réputation, parmi les experts de l'industrie, d'être l'un des avions de combat les moins réussis jamais produits.
La leçon clé tirée de cette expérience est que lorsqu'un système est conçu avec un objectif spécifique en tête, il excelle souvent à remplir ce rôle particulier par rapport à une solution tentant d'optimiser plusieurs objectifs simultanément.
En tirant un parallèle avec le domaine de la blockchain, Ethereum a été initialement conçu comme une plateforme entièrement publique et transparente. Si l'on s'efforce d'introduire des fonctionnalités de confidentialité dans une telle blockchain, il est peu probable qu'elle atteigne le même niveau de performance qu'un système conçu avec la confidentialité comme principe de base dès le départ. Cela présente des défis d'ingénierie, car les développeurs doivent adapter des programmes qui n'étaient pas initialement destinés à fonctionner dans ce contexte, conduisant à la création de circuits complexes et encombrés.
Cependant, l'approche alternative implique le développement d'une couche d'application conçue spécifiquement pour la confidentialité. Cette approche permet d'optimiser les fonctionnalités liées à la confidentialité tout en tirant parti des avantages offerts par les preuves à divulgation nulle de connaissance, un sujet que nous aborderons dans la section suivante.
Applications réelles du zkVM et du zkEVM
Tant le zkEVM que le zkVM trouvent des applications dans divers domaines, promettant de remodeler les industries et les cas d'utilisation de la blockchain :
- Révolution DeFi : Les plateformes de finance décentralisée (DeFi) peuvent exploiter zkVM et zkEVM pour améliorer la vitesse des transactions, réduire les frais et protéger les données financières sensibles.
- Transformation de la chaîne d'approvisionnement : Une transparence et une traçabilité améliorées des chaînes d'approvisionnement sont possibles avec zkVM et zkEVM, réduisant la fraude et augmentant l'efficacité.
- Sécurité des données de santé : zkEVM et zkVM peuvent garantir la confidentialité et la sécurité des données de santé, permettant un partage sécurisé des informations entre les parties autorisées.
- Jeux et NFT : L'industrie du jeu et les places de marché de jetons non fongibles (NFT) peuvent bénéficier de transactions plus rapides et d'une gestion sécurisée des données fournies par zkVM et zkEVM.
L'avenir du zkVM et de la scalabilité de la blockchain
À mesure que le zkVM gagne en popularité dans l'espace blockchain, il a le potentiel de résoudre les problèmes de scalabilité de longue date qui ont limité l'adoption et la croissance de la blockchain. Cependant, comme toute technologie émergente, il y a des défis à surmonter et des considérations à garder à l'esprit :
- Obstacles à l'adoption : Bien que la compatibilité du zkVM avec diverses blockchains soit un avantage significatif, son adoption généralisée dépendra toujours de la volonté des projets blockchain d'intégrer cette technologie dans leurs réseaux.
- Préoccupations en matière de sécurité : Les preuves à divulgation nulle de connaissance introduisent des techniques cryptographiques complexes, et toute vulnérabilité pourrait poser des risques de sécurité significatifs. Une audit continu et l'amélioration des implémentations du zkVM sont cruciaux pour maintenir la confiance des utilisateurs.
- Cadre réglementaire : À mesure que la technologie blockchain évolue, elle continuera de faire l'objet d'une surveillance réglementaire. On ignore encore comment les régulateurs traiteront les preuves à divulgation nulle de connaissance et leurs applications, ce qui pourrait avoir un impact sur l'adoption future du zkVM.
Conclusion
Le parcours du zkEVM au zkVM représente une étape significative vers la résolution des défis de scalabilité de la blockchain. Bien que le zkEVM ait jeté les bases, le zkVM offre une solution plus polyvalente et scalable qui a le potentiel de révolutionner l'utilisation de la technologie blockchain dans divers secteurs.
La transition vers le zkVM n'est pas sans défis, mais les avantages qu'elle apporte en termes de compatibilité multi-plateformes, de convivialité, de gestion des données et de vitesse de traitement des transactions en font une avancée convaincante dans l'espace blockchain. À mesure que le zkVM continue d'évoluer et de trouver sa place dans les écosystèmes blockchain, nous pouvons nous attendre à voir davantage d'applications blockchain plus scalables et efficaces qui ont le potentiel de transformer les industries et d'améliorer la vie des personnes dans le monde entier.
FAQ
Qu'est-ce que le zkEVM et pourquoi était-il insuffisant pour la scalabilité des blockchains ?
Le zkEVM (Zero-Knowledge Ethereum Virtual Machine) présentait des limites en matière de scalabilité car il se concentrait principalement sur Ethereum, manquait de compatibilité inter-chaînes et ne résolvait pas efficacement les problèmes de stockage de données ni l'expérience utilisateur.
Qu'est-ce que le zkVM et en quoi diffère-t-il du zkEVM ?
Le zkVM (Zero-Knowledge Virtual Machine) est une solution plus polyvalente et compatible avec plusieurs blockchains, qui s'appuie sur le zkEVM. Il simplifie le développement, améliore la gestion des données et offre un traitement des transactions plus rapide par rapport au zkEVM.
Comment le zkVM améliore-t-il l'expérience utilisateur pour les développeurs blockchain ?
Le zkVM simplifie le développement grâce à des outils et interfaces conviviaux, réduit la complexité de mise en œuvre des preuves à divulgation nulle de connaissance (zero-knowledge proofs) et facilite l'utilisation de cette technologie par les développeurs.
Quelles sont les applications réelles du zkVM et du zkEVM dans les écosystèmes blockchain ?
Tant le zkVM que le zkEVM trouvent des applications dans la DeFi, la chaîne d'approvisionnement, la sécurité des données de santé, les jeux vidéo, les NFTs, etc., offrant une vitesse de transaction accrue, une meilleure sécurité des données et une confidentialité renforcée.
Quels défis le zkVM rencontre-t-il dans son adoption et son développement futur ?
Les défis incluent l'adoption généralisée parmi les projets blockchain, la garantie de sécurité dans des techniques cryptographiques complexes, et la navigation des obstacles réglementaires potentiels à mesure que la technologie évolue.
Avertissement. Les informations fournies ne constituent pas des conseils en matière d'investissement. Cryptopolitan.com ne saurait être tenue responsable des investissements réalisés sur la base des informations fournies sur cette page. Nous recommandons vivement de mener vos propres recherches et/ou de consulter un professionnel qualifié avant de prendre toute décision d'investissement.

Shayan Chowdhury
Shayan est un journaliste crypto professionnel spécialisé dans les modules cryptographiques et le développement blockchain. Il a été reporter d'actualités chez CoinPedia et rédacteur en chef (stagiaire) chez Binance. Depuis octobre 2022, il occupe le poste de rédacteur en chef des prédictions de prix crypto chez Cryptopolitan. Shayan a étudié au Bidhannagar Government College où il a obtenu un BSc en mathématiques.
















