Explication détaillée de la mise à niveau de Boojum : pourquoi zkSync Era a choisi le système de preuve STARK

Auteur : zkSync ; traduction : Jinse Finance xiaozou

Points principaux de cet article :

Mise à jour : zkSync Era passe à un nouveau système d'épreuve Boojum sans régénération.

**Performance : **Boojum a démontré des performances de classe mondiale, améliorant les performances du trieur zkSync Era, qui peut déjà gérer plus de 100 TPS.

** Décentralisation : ** Le prouveur Boojum (certificateur) n'a besoin que de 16 Go de RAM, ce qui prend en charge la décentralisation à grande échelle du prouveur à l'avenir.

**Prêt :**La preuve d'ombre (shadow proof) a été lancée sur le réseau principal !

Comme nous l'avons expliqué dans notre manifeste ZK Credo, la mission de zkSync est de faire progresser la liberté personnelle pour tous en construisant un réseau de blockchain sans confiance, sécurisé, sans autorisation, abordable, facile à utiliser, résilient et évolutif à l'infini, rendant l'auto-propriété numérique généralement disponible. .

Dans la poursuite de cette mission, la version Alpha de zkSync Era a été ouverte au public il y a plus de trois mois et a reçu une réponse étonnante. Nous avons vu beaucoup d'activité sur le Web pendant cette période.

Faits saillants du réseau :

· 577 millions de dollars en valeur totale verrouillée (source : L2Beat).

23,75 millions de transactions traitées au cours des 30 derniers jours - le plus par L2 (source : L2Beat).

· 9735 contrats intelligents vérifiés par le code source.

En mars 2023, nous avons lancé zkSync Era, en utilisant un système basé sur SNARK pour prendre en charge notre zkEVM, en utilisant le cadre de circuit éprouvé, et avons pris en charge zkSync Lite sur le réseau principal pendant près de trois ans. Cependant, nous savons que ce n'est pas la fin du système de preuve zkSync Era, nous avons conçu le système pour permettre des changements radicaux sans effectuer de régénération. Cela signifie que nous pouvons effectuer d'importantes mises à niveau de chiffrement sans perturber les développeurs et les utilisateurs.

Nous travaillons depuis longtemps sur des mises à niveau de cryptage. Aujourd'hui, nous sommes heureux d'annoncer notre première mise à niveau de cryptage : zkSync Era passe à un nouveau système de preuve basé sur STARK**, dit pour "Boojum". **

1. Présentation de Boojum

Boojum est le nom de notre bibliothèque d'algorithmes et de contraintes basée sur Rust que nous utilisons pour implémenter zkSync Era et la version améliorée des circuits ZK de ZK Stack. Le nom Boojum a été inspiré par le poème The Hunting of The Snark de Lewis Carroll, et Boojum représente le type de Snark le plus terrifiant.

**(1) Qu'est-ce que Boojum ? **

Le design de Boojum présente un certain nombre de caractéristiques attrayantes :

· Algorithme de type PLONK** : **Pour les protocoles à connaissance nulle, l'algorithme (arithmétisation) est le processus de conversion des calculs généraux en formes mathématiques. En ce qui concerne le système de preuve actuel, notre système mis à jour continue d'utiliser l'algorithme de type PLONK. En utilisant cette approche, les circuits ZK sont plus faciles à écrire que certaines autres alternatives, et le système est plus facile à développer, auditer, entretenir et mettre à niveau.

· ** Schéma d'engagement puissant : ** Le cœur de Boojum est le schéma d'engagement FRI. L'engagement FRI est un élément clé, qui nous permet de nous engager sur un polynôme borné, puis de prouver efficacement que l'ouverture revendiquée (polynomiale) est bien Appartient aux polynômes d'ordre inférieur.

**Efficacité de la partie "boring" du système : **Bien que la génération de témoins soit parfois ignorée lorsque les gens parlent de performances du prouveur, dans la version actuelle du système de preuve, optimisé Le prouveur GPU est très efficace, et le temps de génération du témoin est comparable au temps de génération de la preuve. Avec Boojum, nous fournissons une génération automatisée de témoins parallèles (si le graphe de dépendances le permet), tout en facilitant la définition de fonctions de génération de témoins telles que |(a, b)| a + b.

· Facile à étendre : L'abstraction du système de contraintes de base est très superficielle, mais elle permet aux utilisateurs d'ajouter leurs types de contraintes de porte personnalisés de différentes manières, comme l'ajout de certains polynômes spécialisés ou la réutilisation de colonnes communes. Une fois que les utilisateurs ont défini une géométrie simple pour leur circuit, l'interface d'extension leur offre la possibilité de générer automatiquement des démonstrateurs, des vérificateurs et des vérificateurs récursifs. Cela permettra un processus de développement très efficace ; si l'utilisateur modifie la structure du circuit et choisit d'utiliser un autre type de porte, il peut appeler à nouveau l'interface et cela régénérera les clés et s'assurera qu'il utilise les bons programmes de preuve et de vérification .

· Single-stack : Avec Boojum, tout ce qui précède peut être exprimé en Rust standard et idiomatique, et utiliser l'expressivité de son système de type. Les parties lourdes en calcul du prouveur GPU sont écrites en CUDA C++, mais nous fournissons des liaisons Rust pour la composition.

Par défaut, Boojum opère sur un champ de nombres premiers de taille 2^64 - 2^32 + 1 (appelé "Goldilocks field", initialement proposé par Mike Hamburg, en utilisant des paramètres spécifiques suggérés par Hamish Ivey-Law), et fournit le champ correspondant lier des implémentations primitives de primitives cryptographiques telles que la fonction de hachage Poseidon2 et des implémentations de primitives cryptographiques plus standard basées sur des tables de recherche telles que SHA256, Keccak256 et Blake2s.

Il est important de noter que dans la dernière étape de notre déploiement, nous utiliserons un SNARK opaque basé sur l'appariement - essentiellement une version légèrement améliorée du système de preuve actuel - pour envelopper la preuve STARK, et ce SNARK sera disponible sur l'authentification Ethereum. De telles preuves sont beaucoup plus petites et beaucoup moins chères à vérifier ; cette étape réduit le coût du système de preuve et donc de la transaction elle-même.

Boojum a bénéficié des contributions de nombreuses personnes de la communauté, et nous sommes reconnaissants pour la variété des idées que nous recevons. Nous nous inspirons des documents sous-jacents de STARK, FRI et DEEP-FRI, de l'avancement des fonctions de hachage proposées dans Poseidon et Poseidon2, et du développement de l'algorithme PLONK proposé par Gabizon, Williamson et Ciobotaru. En outre, l'approche innovante du projet Plonky2 (Farmer, Lubarov, Borgeaud, etc.) - y compris le choix de Poseidon MDS et l'utilisation de constantes rondes, et les nouvelles idées des quotients en cache et de la recherche de recherche multivariée par Eagen, Fiore, Gabizon , et Haböck. Ce sont ces précieuses contributions qui, ensemble, façonnent la conception de Boojum.

**2. Pourquoi choisir Boojum ? **

Lors de la conception de Boojum, notre décision a pris en compte deux facteurs clés : (1) des performances de preuve de classe mondiale et (2) des exigences matérielles réduites pour la décentralisation.

(1) Performances de classe mondiale

Notre système actuel basé sur SNARK, bien qu'il fonctionne actuellement de manière efficace, ne peut pas s'adapter aux transactions à volume élevé et en temps quasi réel que la pile ZK prévoit de prendre en charge au cours des prochaines années. Nous envisageons un avenir pour ces systèmes dans lesquels 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 hyperchaînes.

Les performances du système de preuve affectent directement le prix 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 puissante 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, une équipe possédant une vaste expérience dans l'analyse comparative et l'analyse de systèmes multi-preuves. Vous pouvez voir sur le graphique ci-dessous que Boojum surpasse considérablement la plupart des systèmes. Les résultats parlent d'eux-mêmes : **Notre déploiement démontre des performances de preuve de classe mondiale, qui est, à notre connaissance, le système de preuve le plus rapide utilisé. **

Pour une comparaison à l'identique, Celer a effectué ces tests par rapport à un prouveur basé sur CPU, mais notre système de réseau principal utilise un prouveur basé sur GPU plus rapide.

R30sS1Jn4hTAjEo4DBDqmCQrVTg1htiAeyqvkcx5.png

Le passage à un système de preuve basé sur STARK apportera des améliorations significatives des performances et contribuera à garantir des résultats finaux à faible latence et à prendre en charge une activité accrue sur zkSync Era et d'autres systèmes basés sur ZK Stack.

(2) Réduire les exigences matérielles pour la décentralisation

Ces résultats de performances sont particulièrement impressionnants étant donné que ce n'était pas la seule mesure pour laquelle nous optimisions - nous voulions améliorer les performances du système tout en réduisant les exigences matérielles pour que le système fonctionne.

Les systèmes de preuve populaires d'aujourd'hui, y compris notre système de preuve actuel, sont évidemment très exigeants en matériel. Notre système de vérification actuel fonctionne sur un cluster de GPU A100 avec 80 Go de RAM chacun. Ce besoin de machines coûteuses et puissantes constitue un obstacle important à notre objectif de permettre un avenir de génération de preuves décentralisée et pilotée par l'utilisateur. Pour atteindre cet objectif, il ne suffit pas de rendre la génération de preuves sans autorisation ; les utilisateurs ne doivent également pas besoin de machines coûteuses et de centaines de gigaoctets de RAM.

C'est encore un autre domaine où nous avons fait de grands progrès ! Le prouveur GPU que nous utilisons dans Boojum ne nécessite que 16 Go de RAM, un seuil aussi bas est une étape importante vers notre vision future. La validation basée sur le processeur est également possible avec aussi peu que 64 Go de RAM (nous espérons qu'elle peut être aussi faible que 32 Go) et peut tirer le meilleur parti des processeurs multicœurs modernes. Après avoir entièrement migré vers le nouveau système de preuve, nous publierons plus d'informations sur ses plans de décentralisation.

Enfin, le séquenceur zkSync Era basé sur Rust est déjà capable de traiter plus de 100 transactions par seconde (TPS). L'introduction du nouveau système d'épreuves améliore non seulement les performances, mais réduit également les exigences matérielles, ce qui en fait un booster idéal pour les trieurs. Les performances accrues de Boojum signifient également que le système peut prouver les transactions plus rapidement, et la réduction des exigences matérielles permet au réseau d'accéder à des machines à moindre coût, ce qui augmente l'évolutivité horizontale.

3**, Boojum's Road to Mainnet**

L'équipe travaille sur cette mise à niveau depuis des mois et nous sommes ravis d'apporter enfin le système au réseau principal. Nous voulions également partager quelques histoires jusqu'à présent.

(1) Mise à niveau de l'ère zkSync

Tout d'abord, décrivons brièvement comment nous effectuons une telle mise à niveau. 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. Cette information est nécessaire pour prouver le système parce que nous prouvons une déclaration sur l'état du système. Une décision de conception clé de cet arbre de Merkle (et la façon dont le système de preuve interagit avec lui) est l'utilisation de fonctions de hachage non algébriques, en particulier Blake2s. Si nous optimisions uniquement pour faciliter la génération de preuves, nous utiliserions une fonction de hachage algébrique (par exemple Poseidon2), mais ce choix couplerait l'état observable aux paramètres du système de preuve - tels que le choix du champ premier. Toute mise à niveau du système de preuve nécessiterait une régénération complète de l'état, ce qui serait une expérience extrêmement perturbatrice pour les utilisateurs de zkSync Era. Tout ce que nous devons faire pour mettre à jour notre système de preuve est de redéployer les Blake2 dans le circuit.

(2) Boojum : de la conception à la révision

Il y a environ un mois, nous avons commencé à concentrer nos efforts sur la mise en œuvre d'une version complète de bout en bout du nouveau système de preuve. Compte tenu de la complexité de cette mise à jour et de l'importance de l'exactitude du système, nous avons entamé une série de tests internes et externes. audits.

Le circuit zkEVM et la bibliothèque d'algorithmes Boojum étaient encore en cours de développement à l'époque, mais nous avons travaillé avec des auditeurs de sécurité externes qui se sont concentrés sur l'identification précoce des problèmes potentiels liés à la fiabilité du circuit principal et des composants Boojum. Nous avons travaillé en étroite collaboration pour leur fournir un accès complet au code source et à la documentation pendant qu'ils examinaient et testaient le circuit zkEVM et les outils liés à Boojum (en utilisant des méthodes automatisées et manuelles). Grâce à ce partenariat, nous avons pu résoudre de nombreux problèmes précoces.

(3) Boojum : de l'examen au test

Nous sommes maintenant entrés dans la prochaine étape de notre plan : Mainnet Shadow Mode ! Nous sommes ravis de pouvoir maintenant exécuter le nouveau système de preuve aux côtés de celui existant, même si Boojum n'est qu'en version bêta. Nous générons et validons déjà des « shadow proofs » des blocs du réseau principal.

La version réseau principal de zkSync Era ne nécessite pas de shadow proofs - elle continuera à être alimentée 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 provenant de l'activité des utilisateurs de zkSync Era.

Nous sommes également ravis de faire ce test publiquement, au cours des prochaines semaines, vous verrez des liens vers des informations sur ces preuves fantômes dans l'explorateur de blocs à côté des informations de preuve existantes, nous achetons en open source un outil CLI que tout le monde peut utiliser pour vérifier de nouvelles preuves.

Nous nous concentrons maintenant particulièrement sur les tests du nouveau système de preuve et ne prévoyons pas encore de vérifier les preuves fantômes sur Ethereum. Pendant la phase de test, la vérification des shadow proofs sera effectuée hors chaîne, nous recherchons les cas marginaux et les bugs, et continuons à examiner plus avant la mise en œuvre.

Nous sommes également en open source pour la base de code Boojum aujourd'hui. Veuillez noter : la base de code est toujours un travail en cours ! Au fur et à mesure que les tests progressent, vous verrez probablement également de nombreux ajustements, optimisations, correctifs et améliorations de la documentation. Nous ouvrons également plusieurs référentiels plus intéressants dans les semaines à venir, notamment des circuits mis à jour et un testeur de GPU.

(4) Boojum : des tests à la migration

La sécurité est une priorité absolue dans tout ce que nous faisons. Nous n'envisagerons de migrer que lorsque nous serons pleinement satisfaits de nos tests du nouveau système, et nous partagerons plus de détails dans les semaines et les mois à venir. Nous prévoyons également de mener d'autres audits et examens de sécurité, et cette mise à niveau passionnante est sur le point d'être entièrement mise en œuvre alors que le système d'attestation actuel est obsolète.

Nous pensons que Boojum, associé à notre engagement envers l'innovation et la conception axée sur l'utilisateur, est la prochaine étape vers un zkEVM plus sûr, plus évolutif et plus 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.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)