*Faites suivre l'Original Titre‘How ZKP and ZK-Rollups help solve the scalability problem: a review of the zkSync blockchain’
Dans cet article, nous expliquerons ce qu'est la technologie de preuve de connaissance nulle et parlerons d'une blockchain populaire - zkSync : comment les transactions fonctionnent dans zkSync et les principales différences avec la machine virtuelle Ethereum (EVM). Nous discuterons également des avantages et inconvénients de cette blockchain, qui, selon nous, pourrait avoir un avenir prometteur.
ZkSync est une blockchain de deuxième niveau (Layer 2 — L2) pour Ethereum, conçue pour résoudre les problèmes de frais élevés et de débit limité (Transactions Par Seconde — TPS) sur le réseau Ethereum. Cette plateforme utilise la technologie ZK-Rollup, qui utilise des Preuves de Connaissance Zéro (ZKP) pour regrouper plusieurs transactions en dehors du réseau principal (L1). Seules les preuves cryptographiques de la justesse des transactions et leurs données compressées sont envoyées à L1, améliorant significativement l'efficacité et réduisant les coûts.
Développé par Matter Labs, zkSync est annoncé comme un produit entièrement open source (100% open source), géré par la communauté. Selon Cryptorank, le projet a déjà attiré l'attention, levant des investissements de 458 millions de dollars. À long terme, Matter Labs vise à créer un écosystème complet. Actuellement, deux blockchains sont opérationnelles : zkSync Lite, qui traite les paiements en ETH et en jetons ERC20, et zkSync Era, prenant en charge des contrats intelligents à part entière. Les projets futurs comprennent le lancement d'un système hyperchain (L3), garantissant une haute sécurité. L'objectif de Matter Labs est de mettre à l'échelle la technologie à un niveau qui attirera les prochains milliards d'utilisateurs de blockchain.
ZkSync représente une nouvelle approche pour résoudre le problème de scalabilité connu sous le nom detrilemme de la blockchainCe projet, comme d'autres solutions de couche 2 (L2), cherche à trouver un équilibre entre sécurité, évolutivité et décentralisation dans les réseaux blockchain.
Ethereum met l'accent sur la sécurité et la décentralisation, en mettant l'accent sur son statut en tant que protocole pair à pair avec des nœuds répartis dans le monde entier. Pour les dernières informations sur la distribution des nœuds, consultezNodeWatch.
Pour maintenir la décentralisation dans le réseau, chaque nœud doit vérifier toutes les transactions. Cela ralentit intrinsèquement le réseau. De plus, sous une charge réseau élevée, les transactions peuvent devenir assez coûteuses et nécessiter un temps significatif pour être traitées.
La tâche principale pour augmenter le TPS du réseau Ethereum sans augmenter la charge sur les nœuds a été l'introduction de Shardingen combinaison avec la transition vers un consensus PoS (Preuve d'enjeu). Cela impliquait de diviser les validateurs en sous-groupes pour traiter des segments séparés du réseau, réduisant ainsi la charge globale et augmentant le débit. Cependant, la communauté s'est concentrée sur les solutions de Couche 2, compte tenu de leur développement rapide.
En plus de l'idée de mettre en œuvre le Sharding dans Ethereum, d'autres solutions de scalabilité ont émergé, telles que :
Ainsi que des technologies basées sur des preuves de zéro connaissance (ZKP), y compris :
Des informations plus détaillées peuvent être trouvées ici.
Bien que le Sharding soit encore en développement, le hardfork de Dencun est prévu pour début 2024, ce qui implémentera Proto-Danksharding. Cette étape intermédiaire vise à améliorer les solutions de couche 2, rendant le stockage de données sur L1 plus économique. Ainsi, Proto-Danksharding promet de réduire les coûts de transaction sur L2, comme une étape vers une solution de Sharding à part entière.
À première vue, les blockchains L2 peuvent sembler similaires, car leur tâche principale est d'augmenter le nombre de transactions en dehors de L1 tout en déléguant le rôle de garant de sécurité à L1. Les développeurs de telles blockchains prétendent souvent que leurs solutions sont les plus rapides, les plus fiables et les plus simples. En réalité, chaque approche de mise à l'échelle a ses subtilités et des compromis inévitables concernant la vitesse des transactions, le niveau de sécurité ou le degré de décentralisation. Des solutions entièrement centralisées sont également courantes. Tous ces aspects nous ramènent aux problèmes fondamentaux du trilemme de la blockchain.
Danscet article, les critères clés pour évaluer les protocoles utilisés dans les solutions de couche 2 sont proposés. Ils comprennent:
Important ! L'article est rédigé par Matter Labs et, à mon avis, certaines choses sont "étirées" en faveur de zkRollup (étant donné qu'il y a un conflit d'intérêts évident), mais ce n'est pas si important, l'essentiel est de voir quelles différences existent entre les protocoles de couche 2.
Ci-dessous, je vais fournir un tableau, et ici je vais brièvement décrire son contenu.
En ce qui concerne les performances, c'est simple. TPS (Transactions Par Seconde) indique le débit du réseau, et dans le contexte de l'évolutivité, c'est le paramètre le plus crucial.
Aspects économiques :
Voici un tableau comparatif des principales solutions basées sur la preuve de connaissance nulle (ZKP).
Pour une compréhension plus détaillée des preuves de connaissance nulle (ZKP), je recommande de se référer à cet articledans notreblockchain-wiki, créé par des développeurs pour des développeurs avec un amour pour les preuves et les plongées profondes dans les détails.
Le fonctionnement des ZK-Rollups peut être représenté de manière générale comme suit :
Dans le contexte de l'architecture de zkSync, le processus ressemble à ceci :
Les validateurs dans les ZK-Rollups jouent un rôle clé, emballant les transactions dans des blocs et générant des preuves de connaissance nulle pour elles. Une caractéristique du système est que les validateurs ne peuvent physiquement pas voler des fonds. Le préjudice potentiel le plus important qu'ils peuvent causer est un arrêt temporaire du réseau.
Note: Dans l'ère zkSync, le rôle des validateurs est rempli par les opérateurs.
Les développeurs de zkSync mettent en avant les garanties suivantes de leur architecture :
Les transactions dans l'ère zkSync passent par plusieurs états clés, différents des confirmations Rollup habituelles dans L1 :
En plus du numéro de bloc, les transactions dans zkSync affichent également le numéro de package. À l'origine, des paramètres tels que block.number, block.timestamp et blockhash étaient pris de L1. Cependant, après une mise à jour, ces valeurs seront désormais obtenues à partir de L2. Malgré cela, les développeurs prévoient de fournir des méthodes pour accéder aux données depuis L1.
La compatibilité des solutions de couche 2 basées sur ZKP avec Ethereum est une tâche complexe. Cela est dû à ce que Ethereum n'a pas été initialement conçu pour une interaction optimale avec ZKP. Par conséquent, dans le développement de tels systèmes, il faut trouver un compromis entre les performances et le potentiel de scalabilité d'une part, et la compatibilité avec Ethereum et l'EVM d'autre part. L'article de Vitalik Buterin Les différents types de ZK-EVMdiscute de ces aspects en détail et met en évidence différents niveaux de compatibilité.
zkSync a choisi l'un des chemins les plus difficiles, visant des performances élevées mais avec une compatibilité limitée à la fois avec Ethereum et EVM. Pour obtenir un bytecode compatible avec zkEVM, le LLVMLe projet est utilisé avec une suite de compilateurs et optimiseurs propriétaires. Dans le cas de Solidity et Yul, après le compilateur solc standard, le code passe par plusieurs étapes supplémentaires avant de devenir un bytecode zkEVM. Le schéma ci-dessous illustre toutes les étapes de ce processus (décrites plus en détail ici):
Important! Les optimisations dans zksolc sont prises en charge.
Le bytecode spécifiquement compilé pour l'EVM n'est pas compatible avec zkEVM. Cela signifie que les adresses des contrats intelligents identiques sur Ethereum et zkSync seront différentes. Cependant, les développeurs prévoient de résoudre ce problème à l'avenir.
Un des avantages significatifs de cette approche est l'indépendance vis-à-vis des langages de programmation spécifiques. À l'avenir, les développeurs de zkSync promettent d'ajouter le support de langages tels que Rust et C++. Il est important que le délai dans les mises à jour et l'intégration des innovations entre les compilateurs de haut niveau (par exemple, solc) et les compilateurs de plateforme (par exemple, zksolc) soit minimal. À l'origine, il y avait une idée de créer leur propre langage de programmation, Zinc, mais pour l'instant, l'équipe se concentre sur le support de langages de programmation plus populaires.
La question de la compatibilité des zk-compilateurs avec les outils de développement et de débogage existants pour les contrats intelligents Solidity et Vyper est importante. Les plateformes de développement actuelles telles que Remix, Hardhat et Foundry ne prennent pas en charge les zk-compilateurs par défaut, ce qui crée des difficultés dans leur utilisation. Cependant, solutionssont en cours de développement qui promettent de faciliter le processus de migration des projets et l'adaptation aux nouvelles technologies.
L'article de Vitalik Buterin mentionne qu'Ethereum s'efforcera probablement d'améliorer la compatibilité avec ZKP au niveau du protocole au fil du temps. De même, les solutions de couche 2 avec ZKP s'adapteront pour une meilleure compatibilité avec Ethereum. En conséquence, à l'avenir, les différences entre ces systèmes pourraient devenir presque imperceptibles, garantissant une intégration et une transition plus fluides pour les développeurs.
Important ! Le protocole est en cours de développement actif ; veuillez toujours vous référer à la dernière version de la documentation !
zkEVM diffère de l'EVM et malgré les efforts des développeurs pour cacher ces différences "sous le capot", il y a des fonctionnalités importantes à prendre en compte lors de l'écriture de contrats intelligents :
Pour une compréhension approfondie du travail avec zkEVM, il est recommandé d'étudier la documentation, y compris la section "Sécurité et meilleures pratiques".
L'abstraction de compte dans zkSync offre plusieurs avantages clés par rapport à ERC-4337:
L'infrastructure de l'ère zkSync gagne rapidement du terrain et comprend déjà des dizaines de protocoles: Bridges, DeFi, protocoles d'infrastructure, et plus encore. (La liste actuelle peut être consultéeici).
Un autre avantage est la compatibilité avec les portefeuilles Ethereum, tels que MetaMask ou TrustWallet.
Le protocole zkSync a commencé son développement avec le lancement de zkSync Lite, visant uniquement les transferts d'ether et de jetons ERC-20, sans la possibilité de déployer des protocoles complets. Cette étape a été une étape importante dans le développement mais a seulement précédé l'arrivée de l'ère zkSync - une solution L2 complète pour Ethereum, qui théoriquement peut être adaptée à d'autres blockchains L1 également. Cependant, les ambitions de zkSync ne s'arrêtent pas là, car les plans de développement incluent le lancement des soi-disant hyperchaînes.
Les hyperchaînes, ou "mise à l'échelle fractale", se composent de réseaux ZKP, chacun formant ses propres blocs et preuves. Ces preuves sont ensuite collectées et publiées sur le réseau principal L1. Chacun de ces réseaux est une copie complète de l'ensemble du système et peut être considéré comme son "fractal".
L'unicité des hyperchaînes réside dans le fait qu'elles peuvent être créées et déployées de manière indépendante. Pour garantir la cohérence et la compatibilité, chaque hyperchaîne doit utiliser un moteur zkEVM commun, faisant partie de la pile ZK (avec zkSync Era agissant comme la première hyperchaîne). Cela permet aux hyperchaînes d'hériter de leur sécurité de L1, garantissant ainsi leur fiabilité et éliminant le besoin de mesures de confiance et de sécurité supplémentaires.
Les hyperchaînes représentent une approche innovante pour mettre à l'échelle les réseaux de blockchain, réduisant la charge sur le réseau principal et augmentant la vitesse de traitement des transactions. Les aspects clés de cette approche comprennent :
Plus d'informations à ce sujet peuvent être trouvées ici.
Le protocole zkSync semble très prometteur et a un grand potentiel, bien que, actuellement, le lancement sur cette blockchain soit encore associé à un certain nombre de risques qui doivent être pris en compte. Le développement pour zkSync est actuellement plus difficile que pour les blockchains qui sont beaucoup plus compatibles avec l'EVM et la pile de développement EVM. Cependant, peut-être qu'à l'avenir, cette différence deviendra insignifiante ou disparaîtra complètement.
Partager
*Faites suivre l'Original Titre‘How ZKP and ZK-Rollups help solve the scalability problem: a review of the zkSync blockchain’
Dans cet article, nous expliquerons ce qu'est la technologie de preuve de connaissance nulle et parlerons d'une blockchain populaire - zkSync : comment les transactions fonctionnent dans zkSync et les principales différences avec la machine virtuelle Ethereum (EVM). Nous discuterons également des avantages et inconvénients de cette blockchain, qui, selon nous, pourrait avoir un avenir prometteur.
ZkSync est une blockchain de deuxième niveau (Layer 2 — L2) pour Ethereum, conçue pour résoudre les problèmes de frais élevés et de débit limité (Transactions Par Seconde — TPS) sur le réseau Ethereum. Cette plateforme utilise la technologie ZK-Rollup, qui utilise des Preuves de Connaissance Zéro (ZKP) pour regrouper plusieurs transactions en dehors du réseau principal (L1). Seules les preuves cryptographiques de la justesse des transactions et leurs données compressées sont envoyées à L1, améliorant significativement l'efficacité et réduisant les coûts.
Développé par Matter Labs, zkSync est annoncé comme un produit entièrement open source (100% open source), géré par la communauté. Selon Cryptorank, le projet a déjà attiré l'attention, levant des investissements de 458 millions de dollars. À long terme, Matter Labs vise à créer un écosystème complet. Actuellement, deux blockchains sont opérationnelles : zkSync Lite, qui traite les paiements en ETH et en jetons ERC20, et zkSync Era, prenant en charge des contrats intelligents à part entière. Les projets futurs comprennent le lancement d'un système hyperchain (L3), garantissant une haute sécurité. L'objectif de Matter Labs est de mettre à l'échelle la technologie à un niveau qui attirera les prochains milliards d'utilisateurs de blockchain.
ZkSync représente une nouvelle approche pour résoudre le problème de scalabilité connu sous le nom detrilemme de la blockchainCe projet, comme d'autres solutions de couche 2 (L2), cherche à trouver un équilibre entre sécurité, évolutivité et décentralisation dans les réseaux blockchain.
Ethereum met l'accent sur la sécurité et la décentralisation, en mettant l'accent sur son statut en tant que protocole pair à pair avec des nœuds répartis dans le monde entier. Pour les dernières informations sur la distribution des nœuds, consultezNodeWatch.
Pour maintenir la décentralisation dans le réseau, chaque nœud doit vérifier toutes les transactions. Cela ralentit intrinsèquement le réseau. De plus, sous une charge réseau élevée, les transactions peuvent devenir assez coûteuses et nécessiter un temps significatif pour être traitées.
La tâche principale pour augmenter le TPS du réseau Ethereum sans augmenter la charge sur les nœuds a été l'introduction de Shardingen combinaison avec la transition vers un consensus PoS (Preuve d'enjeu). Cela impliquait de diviser les validateurs en sous-groupes pour traiter des segments séparés du réseau, réduisant ainsi la charge globale et augmentant le débit. Cependant, la communauté s'est concentrée sur les solutions de Couche 2, compte tenu de leur développement rapide.
En plus de l'idée de mettre en œuvre le Sharding dans Ethereum, d'autres solutions de scalabilité ont émergé, telles que :
Ainsi que des technologies basées sur des preuves de zéro connaissance (ZKP), y compris :
Des informations plus détaillées peuvent être trouvées ici.
Bien que le Sharding soit encore en développement, le hardfork de Dencun est prévu pour début 2024, ce qui implémentera Proto-Danksharding. Cette étape intermédiaire vise à améliorer les solutions de couche 2, rendant le stockage de données sur L1 plus économique. Ainsi, Proto-Danksharding promet de réduire les coûts de transaction sur L2, comme une étape vers une solution de Sharding à part entière.
À première vue, les blockchains L2 peuvent sembler similaires, car leur tâche principale est d'augmenter le nombre de transactions en dehors de L1 tout en déléguant le rôle de garant de sécurité à L1. Les développeurs de telles blockchains prétendent souvent que leurs solutions sont les plus rapides, les plus fiables et les plus simples. En réalité, chaque approche de mise à l'échelle a ses subtilités et des compromis inévitables concernant la vitesse des transactions, le niveau de sécurité ou le degré de décentralisation. Des solutions entièrement centralisées sont également courantes. Tous ces aspects nous ramènent aux problèmes fondamentaux du trilemme de la blockchain.
Danscet article, les critères clés pour évaluer les protocoles utilisés dans les solutions de couche 2 sont proposés. Ils comprennent:
Important ! L'article est rédigé par Matter Labs et, à mon avis, certaines choses sont "étirées" en faveur de zkRollup (étant donné qu'il y a un conflit d'intérêts évident), mais ce n'est pas si important, l'essentiel est de voir quelles différences existent entre les protocoles de couche 2.
Ci-dessous, je vais fournir un tableau, et ici je vais brièvement décrire son contenu.
En ce qui concerne les performances, c'est simple. TPS (Transactions Par Seconde) indique le débit du réseau, et dans le contexte de l'évolutivité, c'est le paramètre le plus crucial.
Aspects économiques :
Voici un tableau comparatif des principales solutions basées sur la preuve de connaissance nulle (ZKP).
Pour une compréhension plus détaillée des preuves de connaissance nulle (ZKP), je recommande de se référer à cet articledans notreblockchain-wiki, créé par des développeurs pour des développeurs avec un amour pour les preuves et les plongées profondes dans les détails.
Le fonctionnement des ZK-Rollups peut être représenté de manière générale comme suit :
Dans le contexte de l'architecture de zkSync, le processus ressemble à ceci :
Les validateurs dans les ZK-Rollups jouent un rôle clé, emballant les transactions dans des blocs et générant des preuves de connaissance nulle pour elles. Une caractéristique du système est que les validateurs ne peuvent physiquement pas voler des fonds. Le préjudice potentiel le plus important qu'ils peuvent causer est un arrêt temporaire du réseau.
Note: Dans l'ère zkSync, le rôle des validateurs est rempli par les opérateurs.
Les développeurs de zkSync mettent en avant les garanties suivantes de leur architecture :
Les transactions dans l'ère zkSync passent par plusieurs états clés, différents des confirmations Rollup habituelles dans L1 :
En plus du numéro de bloc, les transactions dans zkSync affichent également le numéro de package. À l'origine, des paramètres tels que block.number, block.timestamp et blockhash étaient pris de L1. Cependant, après une mise à jour, ces valeurs seront désormais obtenues à partir de L2. Malgré cela, les développeurs prévoient de fournir des méthodes pour accéder aux données depuis L1.
La compatibilité des solutions de couche 2 basées sur ZKP avec Ethereum est une tâche complexe. Cela est dû à ce que Ethereum n'a pas été initialement conçu pour une interaction optimale avec ZKP. Par conséquent, dans le développement de tels systèmes, il faut trouver un compromis entre les performances et le potentiel de scalabilité d'une part, et la compatibilité avec Ethereum et l'EVM d'autre part. L'article de Vitalik Buterin Les différents types de ZK-EVMdiscute de ces aspects en détail et met en évidence différents niveaux de compatibilité.
zkSync a choisi l'un des chemins les plus difficiles, visant des performances élevées mais avec une compatibilité limitée à la fois avec Ethereum et EVM. Pour obtenir un bytecode compatible avec zkEVM, le LLVMLe projet est utilisé avec une suite de compilateurs et optimiseurs propriétaires. Dans le cas de Solidity et Yul, après le compilateur solc standard, le code passe par plusieurs étapes supplémentaires avant de devenir un bytecode zkEVM. Le schéma ci-dessous illustre toutes les étapes de ce processus (décrites plus en détail ici):
Important! Les optimisations dans zksolc sont prises en charge.
Le bytecode spécifiquement compilé pour l'EVM n'est pas compatible avec zkEVM. Cela signifie que les adresses des contrats intelligents identiques sur Ethereum et zkSync seront différentes. Cependant, les développeurs prévoient de résoudre ce problème à l'avenir.
Un des avantages significatifs de cette approche est l'indépendance vis-à-vis des langages de programmation spécifiques. À l'avenir, les développeurs de zkSync promettent d'ajouter le support de langages tels que Rust et C++. Il est important que le délai dans les mises à jour et l'intégration des innovations entre les compilateurs de haut niveau (par exemple, solc) et les compilateurs de plateforme (par exemple, zksolc) soit minimal. À l'origine, il y avait une idée de créer leur propre langage de programmation, Zinc, mais pour l'instant, l'équipe se concentre sur le support de langages de programmation plus populaires.
La question de la compatibilité des zk-compilateurs avec les outils de développement et de débogage existants pour les contrats intelligents Solidity et Vyper est importante. Les plateformes de développement actuelles telles que Remix, Hardhat et Foundry ne prennent pas en charge les zk-compilateurs par défaut, ce qui crée des difficultés dans leur utilisation. Cependant, solutionssont en cours de développement qui promettent de faciliter le processus de migration des projets et l'adaptation aux nouvelles technologies.
L'article de Vitalik Buterin mentionne qu'Ethereum s'efforcera probablement d'améliorer la compatibilité avec ZKP au niveau du protocole au fil du temps. De même, les solutions de couche 2 avec ZKP s'adapteront pour une meilleure compatibilité avec Ethereum. En conséquence, à l'avenir, les différences entre ces systèmes pourraient devenir presque imperceptibles, garantissant une intégration et une transition plus fluides pour les développeurs.
Important ! Le protocole est en cours de développement actif ; veuillez toujours vous référer à la dernière version de la documentation !
zkEVM diffère de l'EVM et malgré les efforts des développeurs pour cacher ces différences "sous le capot", il y a des fonctionnalités importantes à prendre en compte lors de l'écriture de contrats intelligents :
Pour une compréhension approfondie du travail avec zkEVM, il est recommandé d'étudier la documentation, y compris la section "Sécurité et meilleures pratiques".
L'abstraction de compte dans zkSync offre plusieurs avantages clés par rapport à ERC-4337:
L'infrastructure de l'ère zkSync gagne rapidement du terrain et comprend déjà des dizaines de protocoles: Bridges, DeFi, protocoles d'infrastructure, et plus encore. (La liste actuelle peut être consultéeici).
Un autre avantage est la compatibilité avec les portefeuilles Ethereum, tels que MetaMask ou TrustWallet.
Le protocole zkSync a commencé son développement avec le lancement de zkSync Lite, visant uniquement les transferts d'ether et de jetons ERC-20, sans la possibilité de déployer des protocoles complets. Cette étape a été une étape importante dans le développement mais a seulement précédé l'arrivée de l'ère zkSync - une solution L2 complète pour Ethereum, qui théoriquement peut être adaptée à d'autres blockchains L1 également. Cependant, les ambitions de zkSync ne s'arrêtent pas là, car les plans de développement incluent le lancement des soi-disant hyperchaînes.
Les hyperchaînes, ou "mise à l'échelle fractale", se composent de réseaux ZKP, chacun formant ses propres blocs et preuves. Ces preuves sont ensuite collectées et publiées sur le réseau principal L1. Chacun de ces réseaux est une copie complète de l'ensemble du système et peut être considéré comme son "fractal".
L'unicité des hyperchaînes réside dans le fait qu'elles peuvent être créées et déployées de manière indépendante. Pour garantir la cohérence et la compatibilité, chaque hyperchaîne doit utiliser un moteur zkEVM commun, faisant partie de la pile ZK (avec zkSync Era agissant comme la première hyperchaîne). Cela permet aux hyperchaînes d'hériter de leur sécurité de L1, garantissant ainsi leur fiabilité et éliminant le besoin de mesures de confiance et de sécurité supplémentaires.
Les hyperchaînes représentent une approche innovante pour mettre à l'échelle les réseaux de blockchain, réduisant la charge sur le réseau principal et augmentant la vitesse de traitement des transactions. Les aspects clés de cette approche comprennent :
Plus d'informations à ce sujet peuvent être trouvées ici.
Le protocole zkSync semble très prometteur et a un grand potentiel, bien que, actuellement, le lancement sur cette blockchain soit encore associé à un certain nombre de risques qui doivent être pris en compte. Le développement pour zkSync est actuellement plus difficile que pour les blockchains qui sont beaucoup plus compatibles avec l'EVM et la pile de développement EVM. Cependant, peut-être qu'à l'avenir, cette différence deviendra insignifiante ou disparaîtra complètement.