Philosophie de conception du système de preuve Eigen
Point de vue d'Eigen : Eigen Network se concentre sur la fourniture d'un middleware et d'un réseau d'amélioration de la confidentialité aux développeurs full-stack. Par conséquent, le premier avenir de notre système de preuve idéal devrait fournir un calcul de preuve respectueux de la vie privée côté utilisateur, ce qui signifie que la preuve devrait être bon marché (convient au CPU) et transparente. Deuxièmement, plus le coût de vérification sur la blockchain Ethereum est bas, mieux c'est.
Analyse du système de preuve existant
Arithmétisation : L'arithmétisation est le processus de transformation d'une déclaration d'intégrité de calcul (CI) en un langage algébrique formel. Cette étape a deux objectifs : premièrement, présenter la déclaration de CI de manière claire et concise ; deuxièmement, l'intégration de l'instruction CI dans le domaine algébrique pour la dernière conversion polynomiale est une literie. A l'heure actuelle, l'arithmétisation Halo2 est la plus aboutie. Il a implémenté des portes personnalisées et des tables de recherche.
Porte personnalisée : la porte personnalisée permet une réduction significative de l'échelle du circuit (nombre de portes) et augmente la flexibilité de conception du circuit. En pratique, de nombreuses opérations, telles que l'addition de points et la multiplication scalaire sur des courbes elliptiques, peuvent être construites sous forme de portes personnalisées.
Table de recherche : pour les opérations couramment utilisées, la table de recherche des combinaisons légitimes (entrée, sortie) ; et le prouveur soutient que les valeurs témoins existent dans ce tableau. Il réduit considérablement les portes de circuit pour les fonctions de hachage sha256 ou keccak avec le coût d'une complexité de validation légèrement croissante. Pour implémenter zkEVM, nous devons utiliser la table de recherche pour implémenter les fonctions de lecture et d'écriture en mémoire.
Système de preuve : une preuve à connaissance nulle est une méthode par laquelle une partie (le prouveur) peut prouver à une autre partie (le vérificateur) qu'une déclaration donnée est vraie tandis que le prouveur évite de transmettre toute information supplémentaire en dehors du fait que la déclaration est en effet vrai. L'engagement est très important dans la preuve de connaissance zéro. À l'heure actuelle, les schémas d'engagement les plus populaires incluent l'engagement KZG, l'engagement Merkle (ou détection polynomiale de faible degré, FRI) et l'engagement de produit interne vectoriel (IPA).
La preuve récursive à connaissance nulle est divisée en deux couches : les couches inférieure et supérieure. La couche inférieure comprend une couche de récursivité. L'objectif de chaque couche est le suivant : (1) La couche inférieure : plus c'est rapide, mieux c'est ; (2) La couche supérieure : plus la taille de la preuve est petite, mieux c'est, et moins la complexité de calcul est grande, mieux c'est.
d'après Plonk paper:m = nombre de fils, n = nombre de portes de multiplication, a = nombre de portes d'addition, P = appariement, l = nombre d'entrées pub.
(1) Selon le tableau 1, nous nous concentrons sur la taille de la preuve des paramètres et vérifions le temps. KZG est le meilleur, les IPA sont le deuxième et FRI est le pire. (2) Selon le tableau 2, nous nous concentrons sur la taille de la preuve et le temps de vérification. Groth16 est supérieur au système de preuve Plonk (engagement de Kate). Comme la configuration du système Groth16 n'est pas universelle, il ne peut pas être utilisé directement dans zkVM ou zkEVM.
Outre zkVM comme couche d'arithmétisation, pour certains scénarios, comme le DEX privé, le zk KYC ou la preuve de l'intégrité des données, qui n'ont pas besoin de zkVM, nous avons finalement choisi le système de preuve Plonk comme couche supérieure .
Eigen Network a également des travaux antérieurs sur la construction d'une preuve d'agrégation et l'activation de l'accélération GPU (et prendra en charge ffplonk pour réduire le coût du gaz à l'avenir).
(1) Selon le tableau 2, la configuration de Groth16 n'est pas universelle et ne prend pas en charge la récursivité, nous l'excluons donc. Le système Plonk a le même problème. Donc nous le rejetons non plus. (2) FRI et IPA sont très simples dans la couche récursive. Parce que le système FRI utilise une technique spéciale d'optimisation de groupe, sa vitesse de preuve est plus rapide. Par conséquent, nous avons choisi le système FRI dans la couche inférieure.
Ici, nous sommes ravis d'annoncer que nous construisons le premier Rusty pil-stark (de Polygon Hermez) et que nous prenons en charge la merkelisation parallèle et la FFT parallèle.
L'architecture du système de preuve Eigen est illustrée à la figure 1.
Le système de preuve FRI basé sur le champ Goldilocks a la vitesse de preuve la plus rapide, ce qui rend le temps de preuve du système le plus court et offre à l'utilisateur la meilleure expérience. Le système Plonk a la taille d'épreuve la plus petite et la complexité de vérification la plus faible, ce qui fait que le système a le gaz de stockage le plus bas et la consommation de gaz de vérification la plus faible. Par conséquent, le système de preuve Eigen combine les avantages des deux et est le meilleur système de preuve dans le domaine zk.
Actuellement, nous avons ouvert le système de preuve dans eigen-zkvm . Consultez le fichier Lisez-moi et essayez l'exemple de Fibonacci.
Fermeture
Nous avons terminé le MVP de notre système de preuve en couches et avons migré le zkVM d'Hermez vers notre système de preuve, l'exemple complet peut être consulté ici : zkVM sur Eigen Layered Proof System .
Mais de nouveaux défis se présentent. Étant donné que le multicouche apporte une arithmétisation multiple, en particulier lors de la vérification de zkVM. Alors, comment paralléliser la phase d'arithmétisation est notre prochain travail important.
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































