Compilation du texte original : Deep Tide TechFlow
###TLDR
Mise à niveau : zkSync Era passe au nouveau système de preuve Boojum sans régénération.
Performances : Boojum démontre des performances de preuve de pointe, complétant le trieur zkSync Era, qui peut déjà gérer plus de 100 TPS.
Décentralisation : les prouveurs Boojum n'ont besoin que de 16 Go de RAM, ce qui peut réaliser la décentralisation des prouveurs à grande échelle à l'avenir.
La mission de zkSync est de faire progresser la liberté personnelle pour tous - de rendre la propriété numérique universellement accessible en créant un réseau de chaînes de blocs sans confiance, sécurisé, sans autorisation, abordable, facile à utiliser, résilient et évolutif à l'infini.
Conformément à cette mission, la version alpha de zkSync Era a été ouverte au public il y a un peu plus de trois mois, et la réponse a été phénoménale. Faits saillants du réseau :
Valeur verrouillée totale TVL 577 millions USD (Source : L 2B Eat) ;
23 750 000 transactions au cours des 30 derniers jours - le plus de n'importe quel L2 (source : L 2B Eat) ;
9 735 contrats intelligents vérifiés par le code source.
En mars 2023, l'ère zkSync basée sur SNARK est née, utilisant le cadre de circuit testé au combat qui prend en charge zkSync Lite sur le réseau principal depuis près de trois ans. Cependant, nous savions que ce ne serait pas la version finale du système de preuve zkSync Era, et avons donc conçu le système pour nous permettre d'y apporter des modifications fondamentales sans le régénérer. Cela signifie que nous pouvons déployer des mises à niveau majeures de cryptographie sans perturber les développeurs et les utilisateurs.
Dans les coulisses, nous travaillons depuis longtemps sur des mises à niveau de cryptographie. Aujourd'hui, nous sommes heureux d'annoncer la première mise à jour : l'ère zkSync passe à un nouveau système de preuve de STARK appelé "Boojum".
Rencontrez Boojum
Boojum est notre bibliothèque d'arithmétique et de contraintes basée sur Rust que nous utilisons pour implémenter les circuits ZK, une version améliorée de zkSync Era et ZK Stack.
Qu'est-ce que Boojum ?
Caractéristiques de Boojum :
Arithmétique PLONK : Dans le contexte des protocoles à connaissance nulle, l'arithmétique est le processus de conversion des calculs généraux en forme mathématique. Comme le système de preuve actuel, le système de mise à niveau utilise toujours l'arithmétique de style PLONK. Avec cette approche, les circuits ZK sont plus simples à écrire que certaines alternatives, ce qui facilite le développement, l'audit, la maintenance et la mise à niveau du système.
Schéma d'engagement robuste : Au cœur de Boojum se trouve le schéma d'engagement FRI, un composant clé qui nous permet de nous engager sur des polynômes bornés, puis de prouver efficacement que l'ouverture revendiquée (d'un polynôme) est bien un polynôme de faible degré.
Efficacité du système : bien que la génération de témoins soit parfois négligée lorsque les gens parlent de performances de preuve, dans la version actuelle du système de preuve, nous avons atteint un point où un prouveur GPU optimisé est si efficace que le temps de génération de témoin est comparable à la génération de preuve. le temps est calme. Avec Boojum, nous fournissons une génération de témoins qui se parallélise automatiquement (si le graphe de dépendance le permet), tout en conservant la simplicité de définition des fonctions de génération de témoins.
Facilité d'extensibilité : l'abstraction du système de contraintes de base est très propre, mais elle permet à l'utilisateur d'ajouter des types de portes personnalisés de différentes manières, comme en leur ajoutant des polynômes spécialisés ou en réutilisant des "colonnes génériques". Une fois que les utilisateurs ont défini des géométries simples pour leurs circuits, l'interface d'extension offre la possibilité de générer automatiquement des démonstrateurs, des vérificateurs et des vérificateurs récursifs. Cela permet un processus de développement très efficace ; si l'utilisateur modifie la structure du circuit et choisit un autre type de porte à utiliser, il peut simplement appeler à nouveau l'interface et celle-ci régénérera les clés et s'assurera qu'il utilise le bon prouveur et le bon vérificateur.
Pile unique : avec Boojum, tout ce qui précède peut être exprimé en utilisant uniquement Rust idiomatique standard, en tirant parti de la puissance expressive de son système de type. Les parties gourmandes en calcul de GPU Prover sont écrites en CUDA C++, mais nous fournissons des liaisons Rust pour la composition.
Boojum utilise un champ de nombre premier de taille 2 ^ 64 - 2 ^ 32 + 1 (appelé "champ Goldilocks") par défaut, et fournit des implémentations de primitives de liaison de champ correspondantes, telles que les fonctions de hachage Poseidon 2 et des implémentations basées sur une table de recherche de des primitives cryptographiques plus standard, telles que SHA 256, Keccak 256 et Blake 2 s.
Surtout, dans la dernière étape, nous envelopperons la preuve STARK avec un SNARK basé sur un appariement non transparent et vérifierons ce SNARK sur Ethereum. Cette preuve est beaucoup plus petite et moins coûteuse à vérifier, cette étape réduit le coût du système de preuve et donc de la transaction elle-même.
Pourquoi choisir Boojum ?
Lors de la conception de Boojum, deux facteurs clés ont motivé la décision : (1) des performances de preuve de classe mondiale et (2) des exigences matérielles réduites pour la décentralisation.
Performances de classe mondiale
Le système actuel basé sur SNARK, bien qu'efficace pour le moment, ne peut pas évoluer vers des transactions à volume élevé et en temps quasi réel dans la pile ZK. L'objectif futur de zkSync Era fonctionnant en tant qu'Hyperchain est de prendre en charge ces systèmes pour les années à venir. Notre vision pour ces systèmes est que les preuves peuvent être générées et vérifiées à moindre coût et rapidement, permettant une finalité et une interopérabilité rapides entre les Hyperchains.
Les performances du système de preuve affectent directement les frais que les utilisateurs paient pour leurs transactions, et ces coûts doivent se rapprocher de zéro au fil du temps. La version actuelle du système de preuve est suffisamment efficace pour construire un zkEVM et traiter des millions de transactions en quelques mois seulement, mais avec Boojum, nous pouvons faire encore mieux !
Pour mesurer le temps de génération de preuves du réseau (et d'autres mesures clés liées aux performances), nous nous sommes associés à Celer, dont l'équipe possède une vaste expérience dans l'analyse comparative et l'analyse de plusieurs systèmes de preuves. Dans l'image ci-dessous, vous pouvez voir que Boojum fonctionne très bien sur la plupart des systèmes profilés. Les résultats parlent d'eux-mêmes : notre implémentation démontre des performances de preuve de classe mondiale et, à notre connaissance, est le système de preuve le plus rapide actuellement utilisé en production.
Pour une comparaison équitable, Celer a exécuté ces tests sur un prouveur basé sur CPU, mais notre système de réseau principal utilise un prouveur basé sur GPU, qui est beaucoup plus rapide.
Le passage à un système de preuve basé sur STARK représente une amélioration significative des performances et contribuera à garantir la finalité et une faible latence pour prendre en charge des niveaux d'activité accrus pour zkSync Era et d'autres systèmes basés sur ZK Stack.
Réduction des exigences matérielles décentralisées
Ces résultats de performances sont particulièrement impressionnants si l'on considère que ce n'est pas la seule mesure pour laquelle nous optimisons - nous voulons augmenter les performances du système tout en réduisant les exigences matérielles pour l'exécuter.
Les systèmes de preuve couramment utilisés aujourd'hui, y compris notre système existant, ont des exigences matérielles relativement élevées. Notre système de preuve actuel fonctionne sur un ensemble de GPU A100 avec 80 Go de RAM chacun. Le besoin de machines coûteuses et puissantes constitue un obstacle important à notre objectif : l'avenir de la génération de preuves décentralisée pilotée par l'utilisateur. Pour atteindre cet objectif, il ne suffit pas de rendre la génération de preuve sans autorisation ; les utilisateurs ne devraient pas avoir besoin d'une machine coûteuse avec des centaines de gigaoctets de RAM pour participer.
C'est un autre domaine où nous avons fait des progrès extrêmement impressionnants ! Notre testeur GPU pour Boojum ne nécessite que 16 Go de RAM, et ce seuil bas est une étape importante pour l'avenir que nous envisageons. Les épreuves basées sur le processeur peuvent également utiliser aussi peu que 64 Go de RAM, que nous espérons descendre à 32 Go et tirer pleinement parti des processeurs multicœurs modernes.
Enfin, le séquenceur basé sur Rust de zkSync Era peut déjà gérer plus de 100 transactions par seconde (TPS). L'introduction d'un nouveau système de preuve améliore non seulement les performances, mais réduit également les exigences matérielles, ce qui en fait un complément idéal aux séquenceurs. L'amélioration des performances apportée par Boojum signifie que le système peut prouver les transactions plus rapidement, tandis que les exigences matérielles réduites améliorent l'accès au réseau à des machines moins chères pour une évolutivité horizontale plus élevée.
Le voyage sur le réseau principal de Boojum
L'équipe a passé des mois à développer cette mise à niveau, et nous sommes heureux d'avoir atteint le stade de test du système sur le réseau principal. Nous voulions également partager quelques histoires jusqu'à présent.
Mettre à niveau l'ère zkSync
Premièrement, la conception de zkSync Era nous permet de mettre à niveau chaque composant au fil du temps, et le système de preuve ne fait pas exception.
Semblable à Ethereum, nous utilisons une structure de données arborescente Merkle pour stocker des informations sur l'état du réseau. Étant donné que nous prouvons une déclaration sur l'état du système, cette information est nécessaire pour prouver le système. Pour cet arbre de Merkle (et la façon dont le système de preuve interagit avec lui), une décision de conception clé a été d'utiliser une fonction de hachage non algébrique, en particulier Blake 2 s. Si nous optimisions uniquement pour faciliter la génération de preuves, nous utiliserions une fonction de hachage algébrique (par exemple Poséidon 2), mais ce choix couple l'état observable aux paramètres du système de preuve - tels que le choix des champs de nombres premiers. Toute évolution du système de preuve nécessite alors une régénération complète de l'état.
Le parcours Boojum de la conception à la révision
Il y a environ un mois, nous avons commencé à mettre fin à une version complète de bout en bout de notre nouvelle implémentation de système de preuve. Compte tenu de la complexité de ce changement et de la criticité de l'exactitude du système, nous avons entrepris une série d'audits internes et externes.
À l'époque, le circuit zkEVM et la bibliothèque arithmétique Boojum étaient encore en cours de développement, mais nous avons travaillé avec des auditeurs de sécurité externes pour nous concentrer sur l'identification précoce des problèmes potentiels liés à la santé mentale de notre circuit principal et des composants Boojum. Nous avons travaillé en étroite collaboration, leur fournissant un accès complet au code source et à la documentation, et ils ont examiné et testé le circuit zkEVM et le gadget Boojum, en utilisant des méthodes de test automatisées et manuelles.
Boojum : de l'examen au test
Cela nous amène à aujourd'hui, la prochaine étape de notre déploiement progressif : le Mainnet Shadow Mode ! Nous sommes heureux d'annoncer que nous utilisons maintenant le nouveau système de preuve en parallèle avec celui existant, bien que Boojum ne soit actuellement qu'en version bêta. Nous avons commencé à générer et à valider des « shadow proofs » des blocs du réseau principal.
Ces preuves fantômes ne sont pas requises pour la version réseau principal de zkSync Era - elles seront toujours pilotées par le système de preuve existant. Nous validons uniquement ces preuves fantômes pour tester et optimiser davantage le système, mais en utilisant des données de production réelles sur l'activité des utilisateurs de zkSync Era.
Boojum : du test au réseau principal
Comme pour tout ce que nous faisons, la sécurité est toujours une priorité absolue. Nous n'envisagerons de migrer que lorsque nous serons pleinement satisfaits de nos tests du nouveau système et partagerons plus de détails dans les semaines et les mois à venir. Nous prévoyons également de mener d'autres audits et évaluations de sécurité pour rapprocher cette mise à niveau passionnante du déploiement complet et supprimer progressivement le système d'attestation actuel.
Nous pensons que Boojum est la prochaine étape du zkEVM plus sécurisé, évolutif et efficace.
Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
Lisez la mise à niveau de zkSync Boojum dans un article : un zkEVM plus sûr et plus efficace
Auteur original : zkSync
Compilation du texte original : Deep Tide TechFlow
###TLDR
La mission de zkSync est de faire progresser la liberté personnelle pour tous - de rendre la propriété numérique universellement accessible en créant un réseau de chaînes de blocs sans confiance, sécurisé, sans autorisation, abordable, facile à utiliser, résilient et évolutif à l'infini.
Conformément à cette mission, la version alpha de zkSync Era a été ouverte au public il y a un peu plus de trois mois, et la réponse a été phénoménale. Faits saillants du réseau :
En mars 2023, l'ère zkSync basée sur SNARK est née, utilisant le cadre de circuit testé au combat qui prend en charge zkSync Lite sur le réseau principal depuis près de trois ans. Cependant, nous savions que ce ne serait pas la version finale du système de preuve zkSync Era, et avons donc conçu le système pour nous permettre d'y apporter des modifications fondamentales sans le régénérer. Cela signifie que nous pouvons déployer des mises à niveau majeures de cryptographie sans perturber les développeurs et les utilisateurs.
Dans les coulisses, nous travaillons depuis longtemps sur des mises à niveau de cryptographie. Aujourd'hui, nous sommes heureux d'annoncer la première mise à jour : l'ère zkSync passe à un nouveau système de preuve de STARK appelé "Boojum".
Rencontrez Boojum
Boojum est notre bibliothèque d'arithmétique et de contraintes basée sur Rust que nous utilisons pour implémenter les circuits ZK, une version améliorée de zkSync Era et ZK Stack.
Qu'est-ce que Boojum ?
Caractéristiques de Boojum :
Boojum utilise un champ de nombre premier de taille 2 ^ 64 - 2 ^ 32 + 1 (appelé "champ Goldilocks") par défaut, et fournit des implémentations de primitives de liaison de champ correspondantes, telles que les fonctions de hachage Poseidon 2 et des implémentations basées sur une table de recherche de des primitives cryptographiques plus standard, telles que SHA 256, Keccak 256 et Blake 2 s.
Surtout, dans la dernière étape, nous envelopperons la preuve STARK avec un SNARK basé sur un appariement non transparent et vérifierons ce SNARK sur Ethereum. Cette preuve est beaucoup plus petite et moins coûteuse à vérifier, cette étape réduit le coût du système de preuve et donc de la transaction elle-même.
Pourquoi choisir Boojum ?
Lors de la conception de Boojum, deux facteurs clés ont motivé la décision : (1) des performances de preuve de classe mondiale et (2) des exigences matérielles réduites pour la décentralisation.
Performances de classe mondiale
Le système actuel basé sur SNARK, bien qu'efficace pour le moment, ne peut pas évoluer vers des transactions à volume élevé et en temps quasi réel dans la pile ZK. L'objectif futur de zkSync Era fonctionnant en tant qu'Hyperchain est de prendre en charge ces systèmes pour les années à venir. Notre vision pour ces systèmes est que les preuves peuvent être générées et vérifiées à moindre coût et rapidement, permettant une finalité et une interopérabilité rapides entre les Hyperchains.
Les performances du système de preuve affectent directement les frais que les utilisateurs paient pour leurs transactions, et ces coûts doivent se rapprocher de zéro au fil du temps. La version actuelle du système de preuve est suffisamment efficace pour construire un zkEVM et traiter des millions de transactions en quelques mois seulement, mais avec Boojum, nous pouvons faire encore mieux !
Pour mesurer le temps de génération de preuves du réseau (et d'autres mesures clés liées aux performances), nous nous sommes associés à Celer, dont l'équipe possède une vaste expérience dans l'analyse comparative et l'analyse de plusieurs systèmes de preuves. Dans l'image ci-dessous, vous pouvez voir que Boojum fonctionne très bien sur la plupart des systèmes profilés. Les résultats parlent d'eux-mêmes : notre implémentation démontre des performances de preuve de classe mondiale et, à notre connaissance, est le système de preuve le plus rapide actuellement utilisé en production.
Pour une comparaison équitable, Celer a exécuté ces tests sur un prouveur basé sur CPU, mais notre système de réseau principal utilise un prouveur basé sur GPU, qui est beaucoup plus rapide.
Le passage à un système de preuve basé sur STARK représente une amélioration significative des performances et contribuera à garantir la finalité et une faible latence pour prendre en charge des niveaux d'activité accrus pour zkSync Era et d'autres systèmes basés sur ZK Stack.
Réduction des exigences matérielles décentralisées
Ces résultats de performances sont particulièrement impressionnants si l'on considère que ce n'est pas la seule mesure pour laquelle nous optimisons - nous voulons augmenter les performances du système tout en réduisant les exigences matérielles pour l'exécuter.
Les systèmes de preuve couramment utilisés aujourd'hui, y compris notre système existant, ont des exigences matérielles relativement élevées. Notre système de preuve actuel fonctionne sur un ensemble de GPU A100 avec 80 Go de RAM chacun. Le besoin de machines coûteuses et puissantes constitue un obstacle important à notre objectif : l'avenir de la génération de preuves décentralisée pilotée par l'utilisateur. Pour atteindre cet objectif, il ne suffit pas de rendre la génération de preuve sans autorisation ; les utilisateurs ne devraient pas avoir besoin d'une machine coûteuse avec des centaines de gigaoctets de RAM pour participer.
C'est un autre domaine où nous avons fait des progrès extrêmement impressionnants ! Notre testeur GPU pour Boojum ne nécessite que 16 Go de RAM, et ce seuil bas est une étape importante pour l'avenir que nous envisageons. Les épreuves basées sur le processeur peuvent également utiliser aussi peu que 64 Go de RAM, que nous espérons descendre à 32 Go et tirer pleinement parti des processeurs multicœurs modernes.
Enfin, le séquenceur basé sur Rust de zkSync Era peut déjà gérer plus de 100 transactions par seconde (TPS). L'introduction d'un nouveau système de preuve améliore non seulement les performances, mais réduit également les exigences matérielles, ce qui en fait un complément idéal aux séquenceurs. L'amélioration des performances apportée par Boojum signifie que le système peut prouver les transactions plus rapidement, tandis que les exigences matérielles réduites améliorent l'accès au réseau à des machines moins chères pour une évolutivité horizontale plus élevée.
Le voyage sur le réseau principal de Boojum
L'équipe a passé des mois à développer cette mise à niveau, et nous sommes heureux d'avoir atteint le stade de test du système sur le réseau principal. Nous voulions également partager quelques histoires jusqu'à présent.
Mettre à niveau l'ère zkSync
Premièrement, la conception de zkSync Era nous permet de mettre à niveau chaque composant au fil du temps, et le système de preuve ne fait pas exception.
Semblable à Ethereum, nous utilisons une structure de données arborescente Merkle pour stocker des informations sur l'état du réseau. Étant donné que nous prouvons une déclaration sur l'état du système, cette information est nécessaire pour prouver le système. Pour cet arbre de Merkle (et la façon dont le système de preuve interagit avec lui), une décision de conception clé a été d'utiliser une fonction de hachage non algébrique, en particulier Blake 2 s. Si nous optimisions uniquement pour faciliter la génération de preuves, nous utiliserions une fonction de hachage algébrique (par exemple Poséidon 2), mais ce choix couple l'état observable aux paramètres du système de preuve - tels que le choix des champs de nombres premiers. Toute évolution du système de preuve nécessite alors une régénération complète de l'état.
Le parcours Boojum de la conception à la révision
Il y a environ un mois, nous avons commencé à mettre fin à une version complète de bout en bout de notre nouvelle implémentation de système de preuve. Compte tenu de la complexité de ce changement et de la criticité de l'exactitude du système, nous avons entrepris une série d'audits internes et externes.
À l'époque, le circuit zkEVM et la bibliothèque arithmétique Boojum étaient encore en cours de développement, mais nous avons travaillé avec des auditeurs de sécurité externes pour nous concentrer sur l'identification précoce des problèmes potentiels liés à la santé mentale de notre circuit principal et des composants Boojum. Nous avons travaillé en étroite collaboration, leur fournissant un accès complet au code source et à la documentation, et ils ont examiné et testé le circuit zkEVM et le gadget Boojum, en utilisant des méthodes de test automatisées et manuelles.
Boojum : de l'examen au test
Cela nous amène à aujourd'hui, la prochaine étape de notre déploiement progressif : le Mainnet Shadow Mode ! Nous sommes heureux d'annoncer que nous utilisons maintenant le nouveau système de preuve en parallèle avec celui existant, bien que Boojum ne soit actuellement qu'en version bêta. Nous avons commencé à générer et à valider des « shadow proofs » des blocs du réseau principal.
Ces preuves fantômes ne sont pas requises pour la version réseau principal de zkSync Era - elles seront toujours pilotées par le système de preuve existant. Nous validons uniquement ces preuves fantômes pour tester et optimiser davantage le système, mais en utilisant des données de production réelles sur l'activité des utilisateurs de zkSync Era.
Boojum : du test au réseau principal
Comme pour tout ce que nous faisons, la sécurité est toujours une priorité absolue. Nous n'envisagerons de migrer que lorsque nous serons pleinement satisfaits de nos tests du nouveau système et partagerons plus de détails dans les semaines et les mois à venir. Nous prévoyons également de mener d'autres audits et évaluations de sécurité pour rapprocher cette mise à niveau passionnante du déploiement complet et supprimer progressivement le système d'attestation actuel.
Nous pensons que Boojum est la prochaine étape du zkEVM plus sécurisé, évolutif et efficace.