Binius STARKs : système de preuve ZK efficace basé sur des domaines binaires

Analyse des principes des STARKs de Binius et réflexion sur leur optimisation

1. Introduction

L'un des principaux problèmes d'efficacité des STARKs est que la plupart des valeurs dans les programmes réels sont relativement petites, comme les index dans les boucles for, les valeurs booléennes, les compteurs, etc. Cependant, pour garantir la sécurité des preuves basées sur les arbres de Merkle, l'utilisation du codage de Reed-Solomon pour étendre les données entraîne de nombreuses valeurs de redondance supplémentaires qui occupent tout le domaine, même si la valeur d'origine elle-même est très petite. Pour résoudre ce problème, réduire la taille du domaine est devenu une stratégie clé.

La largeur de codage des STARKs de première génération est de 252 bits, celle des STARKs de deuxième génération est de 64 bits, et celle des STARKs de troisième génération est de 32 bits, mais la largeur de codage de 32 bits présente encore un grand espace gaspillé. En comparaison, le domaine binaire permet d'opérer directement sur les bits, le codage est compact et efficace sans espace gaspillé, c'est-à-dire les STARKs de quatrième génération.

Comparé aux nouveaux domaines limités découverts ces dernières années comme Goldilocks, BabyBear, et Mersenne31, la recherche sur les domaines binaires remonte aux années 1980. À l'heure actuelle, les domaines binaires sont largement utilisés en cryptographie, des exemples typiques incluent :

  • Standard de chiffrement avancé ( AES ), basé sur le domaine F28 ;

  • Galois Message Authentication Code ( GMAC ), basé sur le domaine F2128;

  • Code QR, utilisant le codage Reed-Solomon basé sur F28 ;

  • Protocole FRI d'origine et zk-STARK, ainsi que la fonction de hachage Grøstl qui a atteint la finale de SHA-3, basée sur le domaine F28, qui est un algorithme de hachage très adapté à la récursivité.

Lorsque des domaines plus petits sont utilisés, l'opération d'extension de domaine devient de plus en plus importante pour garantir la sécurité. Le domaine binaire utilisé par Binius doit entièrement dépendre de l'extension de domaine pour assurer sa sécurité et sa praticité. La plupart des polynômes impliqués dans le calcul des Prover n'ont pas besoin d'entrer dans l'extension de domaine, mais doivent simplement fonctionner dans le domaine de base, permettant ainsi une grande efficacité dans de petits domaines. Cependant, les vérifications de points aléatoires et le calcul FRI doivent encore plonger dans un domaine d'extension plus grand pour garantir la sécurité requise.

Lors de la construction d'un système de preuve basé sur un domaine binaire, deux problèmes pratiques se posent : dans les STARKs, la taille du domaine utilisée pour représenter le trace doit être supérieure au degré du polynôme ; dans les STARKs, lors de l'engagement de l'arbre de Merkle, un codage Reed-Solomon doit être effectué, et la taille du domaine doit être supérieure à la taille après extension du codage.

Binius a proposé une solution innovante qui traite ces deux problèmes séparément et réalise la représentation des mêmes données de deux manières différentes : tout d'abord, en utilisant des polynômes multivariés (en particulier des polynômes multilinaires) pour remplacer les polynômes univariés, en représentant l'ensemble de la trajectoire de calcul par ses valeurs sur des "hyper-cubes" ; ensuite, comme la longueur de chaque dimension de l'hyper-cube est de 2, il n'est pas possible d'effectuer une extension standard de Reed-Solomon comme avec les STARKs, mais l'hyper-cube peut être considéré comme un carré, sur lequel une extension de Reed-Solomon peut être réalisée. Cette méthode améliore considérablement l'efficacité du codage et les performances de calcul tout en garantissant la sécurité.

2. Analyse des principes

La construction de la plupart des systèmes SNARKs actuels comprend généralement les deux parties suivantes :

  • Preuve d'Oracle Interactive Polynomiale d'Information Théorique (Information-Theoretic Polynomial Interactive Oracle Proof, PIOP) : Le PIOP, en tant que noyau du système de preuve, transforme les relations de calcul d'entrée en équations polynomiales vérifiables. Différents protocoles PIOP permettent au prouveur d'envoyer progressivement des polynômes par l'interaction avec le vérificateur, permettant ainsi à ce dernier de vérifier si le calcul est correct en interrogeant un nombre limité de résultats d'évaluation de polynômes. Les protocoles PIOP existants incluent : PIOP PLONK, PIOP Spartan et PIOP HyperPlonk, qui traitent chacun les expressions polynomiales de manière différente, influençant ainsi les performances et l'efficacité du système SNARK dans son ensemble.

  • Schéma d'engagement polynomial (Polynomial Commitment Scheme, PCS) : Le schéma d'engagement polynomial est utilisé pour prouver si l'égalité polynomial générée par PIOP est valide. Le PCS est un outil cryptographique qui permet à un prouveur de s'engager à un certain polynôme et de vérifier plus tard le résultat de l'évaluation de ce polynôme, tout en cachant d'autres informations sur le polynôme. Les schémas d'engagement polynomial courants incluent KZG, Bulletproofs, FRI (Fast Reed-Solomon IOPP) et Brakedown. Différents PCS ont des performances, une sécurité et des cas d'utilisation différents.

Selon les besoins spécifiques, choisissez différents PIOP et PCS, et associez-les à un domaine fini ou à une courbe elliptique appropriée, ce qui permet de construire des systèmes de preuve avec différentes propriétés. Par exemple :

• Halo2 : combinant PLONK PIOP et Bulletproofs PCS, basé sur la courbe Pasta. Lors de la conception de Halo2, l'accent a été mis sur l'évolutivité et l'élimination de la configuration de confiance dans le protocole ZCash.

• Plonky2 : adopte PLONK PIOP et FRI PCS combinés, et est basé sur le domaine de Goldilocks. Plonky2 a été conçu pour réaliser une récursion efficace. Lors de la conception de ces systèmes, le PIOP et le PCS choisis doivent correspondre au corps fini ou à la courbe elliptique utilisés afin d'assurer la correctivité, la performance et la sécurité du système. Le choix de ces combinaisons affecte non seulement la taille de la preuve SNARK et l'efficacité de la vérification, mais détermine également si le système peut réaliser la transparence sans nécessiter de configuration de confiance, et s'il peut prendre en charge des fonctionnalités d'extension telles que les preuves récursives ou les preuves agrégées.

Binius : HyperPlonk PIOP + Brakedown PCS + champs binaires. Concrètement, Binius comprend cinq technologies clés pour réaliser son efficacité et sa sécurité. Tout d'abord, l'arithmétique basée sur les tours de champs binaires constitue la base de son calcul, permettant d'effectuer des opérations simplifiées dans les champs binaires. Ensuite, Binius a adapté les vérifications de produit et de permutation de HyperPlonk dans son protocole de preuve Oracle interactif (PIOP), garantissant une vérification de cohérence sécurisée et efficace entre les variables et leurs permutations. Troisièmement, le protocole introduit une nouvelle preuve de décalage multilinéraire, optimisant l'efficacité de la vérification des relations multilinéaires sur de petits champs. Quatrièmement, Binius utilise une version améliorée de la preuve de recherche Lasso, offrant flexibilité et sécurité robuste au mécanisme de recherche. Enfin, le protocole utilise un schéma d'engagement polynomial sur petits champs (Small-Field PCS), lui permettant de réaliser un système de preuve efficace sur les champs binaires et de réduire les coûts généralement associés aux grands champs.

2.1 Domain fini : arithmétique basée sur les tours de corps binaires

Les corps binaires en tour sont essentiels pour réaliser des calculs vérifiables rapides, principalement en raison de deux aspects : le calcul efficace et l'arithmétisation efficace. Les corps binaires supportent essentiellement des opérations arithmétiques hautement efficaces, ce qui en fait un choix idéal pour les applications cryptographiques sensibles aux performances. De plus, la structure des corps binaires supporte un processus d'arithmétisation simplifié, c'est-à-dire que les opérations effectuées sur le corps binaire peuvent être représentées sous une forme algébrique compacte et facile à vérifier. Ces caractéristiques, associées à la capacité de tirer pleinement parti de ses caractéristiques hiérarchiques grâce à la structure en tour, rendent les corps binaires particulièrement adaptés à des systèmes de preuve évolutifs tels que Binius.

Le terme "canonical" fait référence à la représentation unique et directe des éléments dans un corps binaire. Par exemple, dans le corps binaire le plus simple F2, toute chaîne de k bits peut être directement mappée à un élément de corps binaire de k bits. Cela diffère des corps de nombres premiers, qui ne peuvent pas fournir cette représentation canonique dans un nombre de bits donné. Bien qu'un corps de nombres premiers de 32 bits puisse être contenu dans 32 bits, ce n'est pas le cas pour chaque chaîne de 32 bits qui peut correspondre de manière unique à un élément de corps, alors que le corps binaire offre cette commodité de correspondance un à un. Dans le corps de nombres premiers Fp, les méthodes de réduction courantes incluent la réduction de Barrett, la réduction de Montgomery, ainsi que des méthodes de réduction spéciales pour des corps finis spécifiques comme Mersenne-31 ou Goldilocks-64. Dans le corps binaire F2k, les méthodes de réduction couramment utilisées incluent la réduction spéciale (comme celle utilisée dans AES), la réduction de Montgomery (comme dans POLYVAL) et la réduction récursive (comme dans Tower). L'article "Exploring the Design Space of Prime Field vs. Binary Field ECC-Hardware Implementations" souligne que le corps binaire n'a pas besoin d'introduire des retenues dans les opérations d'addition et de multiplication, et que l'opération de carré dans le corps binaire est très efficace, car elle suit la règle simplifiée (X + Y )2 = X2 + Y 2.

Comme illustré dans la figure 1, une chaîne de 128 bits : cette chaîne peut être interprétée de plusieurs manières dans le contexte du domaine binaire. Elle peut être considérée comme un élément unique dans un domaine binaire de 128 bits, ou être analysée comme deux éléments de domaine de tour de 64 bits, quatre éléments de domaine de tour de 32 bits, 16 éléments de domaine de tour de 8 bits, ou 128 éléments de domaine F2. Cette flexibilité de représentation ne nécessite aucun coût de calcul, c'est simplement une conversion de type de chaîne de bits (typecast), ce qui est une propriété très intéressante et utile. De plus, les éléments de petit domaine peuvent être emballés en éléments de domaine plus grands sans frais de calcul supplémentaires. Le protocole Binius tire parti de cette caractéristique pour améliorer l'efficacité des calculs. En outre, le document "On Efficient Inversion in Tower Fields of Characteristic Two" explore la complexité de calcul des opérations de multiplication, de mise au carré et d'inversion dans un domaine binaire à tour de n bits (pouvant être décomposé en sous-domaines de m bits).

Bitlayer Research : Analyse des principes des STARKs de Binius et réflexion sur leur optimisation

2.2 PIOP : version adaptée de HyperPlonk Product et PermutationCheck ------ applicable aux champs binaires

La conception du PIOP dans le protocole Binius s'inspire de HyperPlonk et utilise une série de mécanismes de vérification essentiels pour valider la correctitude des polynômes et des ensembles multivariables. Ces vérifications essentielles comprennent :

  1. GateCheck : vérifier si le témoin secret ω et l'entrée publique x satisfont la relation d'opération du circuit C(x,ω)=0, afin de garantir le bon fonctionnement du circuit.

  2. PermutationCheck : Vérifie si les résultats d'évaluation de deux polynômes multivariés f et g sur le cube hyperbooléen sont une relation de permutation f(x) = f(π(x)), afin d'assurer la cohérence des permutations entre les variables polynomiales.

  3. LookupCheck : Vérifie si l'évaluation du polynôme est dans la table de recherche donnée, c'est-à-dire f(Bµ) ⊆ T(Bµ), en s'assurant que certaines valeurs se situent dans la plage spécifiée.

  4. MultisetCheck : Vérifie si deux ensembles multivariables sont égaux, c'est-à-dire {(x1,i,x2,)}i∈H={(y1,i,y2,)}i∈H, garantissant la cohérence entre plusieurs ensembles.

  5. ProductCheck : Vérifier si l'évaluation d'un polynôme sur le cube hyperbolique de Boole est égale à une valeur déclarée ∏x∈Hµ f(x) = s, afin de garantir l'exactitude du produit polynomial.

  6. ZeroCheck : Vérifier si un polynôme multivariable à plusieurs variables est zéro en un point quelconque du cube hyperbolique booléen ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, afin de garantir la distribution des zéros du polynôme.

  7. SumCheck : Vérifie si la somme d'un polynôme multivariable est égale à la valeur déclarée ∑x∈Hµ f(x) = s. En transformant le problème d'évaluation d'un polynôme multivarié en un problème d'évaluation de polynôme univarié, cela réduit la complexité de calcul pour le vérificateur. De plus, SumCheck permet le traitement par lot, en introduisant des nombres aléatoires pour construire des combinaisons linéaires afin de traiter plusieurs instances de vérification de somme.

  8. BatchCheck : basé sur SumCheck, valide la correctitude de l'évaluation de plusieurs polynômes multivariés afin d'améliorer l'efficacité du protocole.

Bien que Binius et HyperPlonk présentent de nombreuses similitudes dans la conception du protocole, Binius apporte des améliorations dans les 3 domaines suivants :

  • Optimisation de ProductCheck : Dans HyperPlonk, ProductCheck exige que le dénominateur U soit non nul partout sur l'hypercube, et que le produit soit égal à une valeur spécifique ; Binius simplifie ce processus de vérification en spécialisant cette valeur à 1, réduisant ainsi la complexité de calcul.

  • Gestion du problème de division par zéro : HyperPlonk n'a pas réussi à traiter correctement les cas de division par zéro, ce qui empêche d'affirmer que U est non nul sur l'hypercube ; Binius a correctement géré ce problème, même lorsque le dénominateur est nul, le ProductCheck de Binius peut continuer à fonctionner, permettant une généralisation à n'importe quelle valeur de produit.

  • Vérification de permutation inter-colonnes : HyperPlonk n'a pas cette fonctionnalité ; Binius prend en charge la vérification de permutation entre plusieurs colonnes, ce qui permet à Binius de gérer des cas de permutations polynomiales plus complexes.

Ainsi, Binius a amélioré la flexibilité et l'efficacité du protocole grâce à des améliorations apportées au mécanisme PIOPSumCheck existant, en particulier lors du traitement de validations de polynômes multivariables plus complexes, offrant un soutien fonctionnel renforcé. Ces améliorations non seulement résolvent les limitations de HyperPlonk, mais jettent également les bases pour de futurs systèmes de preuves basés sur des corps binaires.

Bitlayer Research : Analyse des principes des STARKs de Binius et réflexion sur leur optimisation

2.3 PIOP : nouvel argument de décalage multilinéaire ------ applicable au hypercube booléen

Dans le protocole Binius, la construction et le traitement des polynômes virtuels sont l'une des technologies clés, permettant de générer et de manipuler efficacement des polynômes dérivés de poignées d'entrée ou d'autres polynômes virtuels. Voici deux méthodes clés :

  • Emballage :
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
  • 3
  • Partager
Commentaire
0/400
DefiPlaybookvip
· Il y a 15h
Les frais de gas brûlent sur l'Arbre de Merkle, c'est comme brûler dans le ciel.
Voir l'originalRépondre0
WalletDetectivevip
· Il y a 15h
Le financement a de nouveau été assuré.
Voir l'originalRépondre0
GhostAddressMinervip
· Il y a 15h
Hum, tu cherches encore des excuses pour le codage redondant ? Les traces on-chain en 32 bits sont plus transparentes que de courir à poil.
Voir l'originalRépondre0
  • É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)