Nova : Avantages et inconvénients du nouveau système de zk-SNARKs efficace et analyse du code source

robot
Création du résumé en cours

Nova: Nouveau système zk-SNARKs

Nova est un nouveau système de zk-SNARKs développé par Microsoft, qui utilise des systèmes de contraintes de rang 1 relaxés (Relaxed Rank-1 Constraint Systems, la technologie Relaxed R1CS), pour améliorer l'efficacité et la flexibilité des preuves.

Avantages de Nova

Les principaux avantages de Nova résident dans l'utilisation de la technologie R1CS relâchée. Les systèmes R1CS traditionnels nécessitent une grande quantité de randomité pendant le processus de preuve, ce qui rend la génération et la vérification des preuves complexes et chronophages. Nova, en utilisant R1CS relâché, permet d'utiliser moins de randomité dans les preuves, améliorant ainsi considérablement l'efficacité des preuves.

Nova prend également en charge le calcul incrémental, permettant de calculer progressivement des fonctions complexes sans avoir à calculer l'ensemble de la fonction en une seule fois. Cela est très utile lors du traitement de grandes quantités de données ou de calculs complexes. De plus, Nova prend également en charge le calcul polynomial, ce qui lui permet de traiter des tâches de preuve plus complexes.

Les inconvénients de Nova

Bien que Nova présente de nombreux avantages, il existe également quelques inconvénients :

  1. En raison de l'utilisation de R1CS relâché, la preuve de Nova pourrait ne pas être aussi robuste que les systèmes R1CS traditionnels. Le R1CS relâché permet d'utiliser moins de randomité, ce qui peut réduire la sécurité de la preuve. Cependant, les développeurs de Nova ont pris des mesures pour remédier à ce problème, telles que l'utilisation d'algorithmes cryptographiques plus puissants et de stratégies de preuve plus complexes.

  2. La mise en œuvre de Nova est relativement complexe, ce qui peut augmenter la difficulté d'utilisation et de maintenance. Nova utilise de nombreuses techniques de cryptographie avancées, telles que le calcul polynomial, les opérations de groupe et les oracles aléatoires, ce qui nécessite une compréhension approfondie de ces techniques pour utiliser et modifier efficacement Nova.

La position importante de Nova dans le domaine des zk-SNARKs

Nova occupe une place importante dans le domaine des zk-SNARKs. Son apparition a ouvert de nouvelles voies pour le développement des zk-SNARKs. La technologie R1CS relâchée adoptée par Nova rend le processus de génération et de vérification des preuves plus efficace, ce qui est essentiel pour les applications zk-SNARKs à grande échelle. De plus, Nova prend également en charge le calcul incrémental et le calcul polynomial, ce qui lui permet de traiter des tâches de preuve plus complexes, élargissant ainsi encore le champ d'application des zk-SNARKs.

Interprétation du code source de Nova

La structure principale du code source de Nova est la suivante :

  • src/bellperson/:implémentation de la génération des systèmes de contraintes de rang 1 (R1CS) (.
  • src/gadgets/: contient des outils pour construire des zk-SNARKs.
  • src/provider/: contient du code pour certains fournisseurs, comme l'implémentation de la fonction de hachage Keccak.
  • src/spartan/: contient le code relatif au protocole Spartan.
  • src/traits/: contient certains traits Rust, utilisés pour définir des comportements communs.

Les fonctions des principaux modules et fichiers sont les suivantes :

  • bellperson/mod.rs: définit les fonctionnalités liées à la génération de R1CS.
  • bellperson/r1cs.rs : définit deux traits, NovaWitness et NovaShape, utilisés pour obtenir des instances R1CS, des témoins, des formes et des clés d'engagement.
  • bellperson/shape_cs.rs: définit la structure ShapeCS, utilisée pour créer des systèmes de contraintes de forme R1CS.
  • bellperson/solver.rs: définit la structure SatisfyingAssignment, utilisée pour créer des instances R1CS et le système de contraintes du témoin.
  • circuit.rs : définit les circuits améliorés dans le protocole Nova, y compris les circuits de pas et les circuits de vérificateur.
  • constants.rs: définit certaines constantes, telles que le nombre de bits de défi, le nombre de bits de hachage, etc.
  • errors.rs : définit les types d'erreurs que la bibliothèque Nova peut renvoyer.
  • nifs.rs : a mis en œuvre un schéma de pliage non interactif )NIFS(.
  • r1cs.rs : définit les types et les méthodes associés à R1CS.
  • spartan/math.rs : définit le trait Math et son implémentation pour le type usize, incluant quelques opérations mathématiques de base.
  • spartan/mod.rs : a implémenté le RelaxedR1CSSNARKTrait utilisant Spartan.
  • spartan/polynomial.rs: définit les types et opérations de base liés aux polynômes.
  • spartan/sumcheck.rs : implémente l'algorithme Sumcheck du protocole Spartan.
  • traits/circuit.rs : définit le trait StepCircuit, utilisé pour les fonctions d'étapes de calcul incrémental.
  • traits/commitment.rs: définit les traits associés à l'engagement )commitment(.
  • traits/evaluation.rs: définit le trait EvaluationEngineTrait, utilisé pour le moteur d'évaluation des polynômes.
  • traits/mod.rs : définit certaines caractéristiques utilisées pour les opérations cryptographiques.
  • traits/snark.rs : définit le trait RelaxedR1CSSNARKTrait, utilisé pour les zk-SNARKs de preuve non interactive succincte et à connaissance nulle )zkSNARK(.

Le code source de Nova implémente un système complet de zk-SNARKs, incluant la génération de R1CS, la construction de systèmes de contraintes, le calcul polynomiale, les schémas d'engagement, le moteur d'évaluation et plusieurs autres modules. Ces modules travaillent ensemble pour réaliser des fonctions de génération et de vérification de zk-SNARKs efficaces.

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • 4
  • Partager
Commentaire
0/400
CrossChainBreathervip
· 07-14 06:25
C'est sûr que c'est de la triche.
Voir l'originalRépondre0
ColdWalletGuardianvip
· 07-14 06:10
Ce n'est qu'un petit zk, non ?
Voir l'originalRépondre0
MysteryBoxOpenervip
· 07-14 06:01
Je pensais que Microsoft ne ferait que Win11.
Voir l'originalRépondre0
PessimisticLayervip
· 07-14 05:58
Encore une nouvelle astuce de Microsoft ?
Voir l'originalRépondre0
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)