Analyse des principes des STARKs de Binius et réflexions sur leur optimisation
1 Introduction
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 indices 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 originale elle-même est très petite. Pour résoudre ce problème, la réduction de la taille du domaine est devenue une stratégie clé.
La largeur de code 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 code de 32 bits présente encore un grand nombre d'espaces gaspillés. En revanche, le domaine binaire permet d'opérer directement sur les bits, le codage est compact et efficace sans aucun espace gaspillé, c'est-à-dire les STARKs de quatrième génération.
Comparé aux nouveaux domaines de recherche tels que Goldilocks, BabyBear, Mersenne31 découverts ces dernières années, l'étude des corps binaires remonte aux années 1980. Actuellement, les corps binaires sont largement utilisés en cryptographie, des exemples typiques incluent :
Norme de cryptage avancée (AES), basé sur le domaine F28;
Code d'authentification de message Galois ( GMAC ), basé sur le domaine F2128;
QR code, utilisant un codage Reed-Solomon basé sur F28;
Le protocole FRI d'origine et le protocole zk-STARK, ainsi que la fonction de hachage Grøstl, qui a atteint la finale de SHA-3, sont basés sur le domaine F28 et constituent un algorithme de hachage particulièrement 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 faisabilité pratique. La plupart des polynômes impliqués dans le calcul des Prover n'ont pas besoin d'entrer dans l'extension de domaine et peuvent simplement être opérés dans le domaine de base, ce qui permet d'atteindre une grande efficacité dans un petit domaine. Cependant, les vérifications de points aléatoires et les calculs 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, il existe deux problèmes pratiques : lors du calcul de la représentation de la trace dans les STARKs, la taille du domaine utilisée doit être supérieure au degré du polynôme ; lors de l'engagement de l'arbre de Merkle dans les STARKs, un codage de Reed-Solomon doit être effectué, et la taille du domaine utilisée doit être supérieure à la taille après l'extension du codage.
Binius a proposé une solution innovante qui traite séparément ces deux problèmes et réalise cela en représentant les mêmes données de deux manières différentes : d'abord, en utilisant un polynôme multivarié (, spécifiquement un polynôme multilinéraire ), à la place d'un polynôme à variable unique, en représentant l'ensemble de la trajectoire de calcul par ses valeurs dans les "hyper-cubes" ( ; ensuite, comme chaque dimension de l'hyper-cube a une longueur de 2, il n'est pas possible d'effectuer une extension standard de Reed-Solomon comme avec les STARKs, mais on peut considérer l'hyper-cube comme un carré ), sur la base duquel on peut réaliser une extension de Reed-Solomon. 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 ) : PIOP, en tant que système de preuve central, transforme les relations de calcul d'entrée en égalités polynomiales vérifiables. Différents protocoles PIOP, à travers l'interaction avec le vérificateur, permettent au prouveur d'envoyer progressivement des polynômes, permettant ainsi au vérificateur de valider si le calcul est correct en interrogeant un petit nombre de résultats d'évaluation des polynômes. Les protocoles PIOP existants comprennent : PLONK PIOP, Spartan PIOP et HyperPlonk PIOP, qui traitent chacun les expressions polynomiales de manière différente, influençant ainsi la performance et l'efficacité de l'ensemble du système SNARK.
Schéma d'engagement polynomial ( Polynomial Commitment Scheme, PCS ) : Le schéma d'engagement polynomial est utilisé pour prouver si une équation polynomiale 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 les plus courants incluent KZG, Bulletproofs, FRI ( Fast Reed-Solomon IOPP ) et Brakedown, entre autres. Différents PCS ont des performances, des niveaux de sécurité et des scénarios d'application variés.
Selon les besoins spécifiques, choisissez différents PIOP et PCS, et combinez-les avec un domaine fini ou une courbe elliptique appropriée, ce qui permet de construire des systèmes de preuve avec différentes caractéristiques. Par exemple :
• Halo2 : combinant PLONK PIOP et Bulletproofs PCS, basé sur la courbe Pasta. Halo2 a été conçu en mettant l'accent sur l'évolutivité et l'élimination de la configuration de confiance dans le protocole ZCash.
• Plonky2 : utilise PLONK PIOP en combinaison avec FRI PCS, et est basé sur le domaine de Goldilocks. Plonky2 est conçu pour réaliser des récursions efficaces. Lors de la conception de ces systèmes, les PIOP et PCS choisis doivent correspondre au corps fini ou à la courbe elliptique utilisée, afin d'assurer la correctitude, la performance et la sécurité du système. Le choix de ces combinaisons influence non seulement la taille des preuves SNARK et l'efficacité de la vérification, mais détermine également si le système peut atteindre la transparence sans configuration de confiance préalable, 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 + domaines 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 domaines binaires (towers of binary fields) constitue la base de ses calculs, permettant d'effectuer des opérations simplifiées dans le domaine binaire. Deuxièmement, Binius a adapté les vérifications de produits et de permutations 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 domaines. 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 pour petits domaines (Small-Field PCS), lui permettant de réaliser un système de preuve efficace sur le domaine binaire et réduisant les frais généralement associés aux grands domaines.
( 2.1 Domain fini : arithmétisation basée sur les tours de corps binaires
Les corps binaires en tour sont la clé 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 soutiennent 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 soutient un processus d'arithmétisation simplifié, c'est-à-dire que les opérations effectuées sur le corps binaire peuvent être exprimées sous une forme algébrique compacte et facile à vérifier. Ces caractéristiques, combinées à la capacité de tirer pleinement parti de ses caractéristiques hiérarchiques grâce à la structure en tour, font des corps binaires un choix particulièrement adapté à des systèmes de preuve évolutifs tels que Binius.
Le terme "canonical" désigne la représentation unique et directe des éléments dans un corps binaire. Par exemple, dans le corps binaire de base 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 premiers, qui ne peuvent pas fournir cette représentation canonique dans un nombre de bits donné. Bien qu'un corps premier de 32 bits puisse être contenu dans 32 bits, ce n'est pas chaque chaîne de 32 bits qui peut correspondre de manière unique à un élément de corps, tandis que le corps binaire présente cette commodité de correspondance un à un. Dans le corps premier Fp, les méthodes de réduction courantes comprennent 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 courantes incluent des réductions spéciales ) comme celles utilisées dans AES ###, la réduction de Montgomery ( comme dans POLYVAL ) et la réduction récursive ( comme dans Tower ). Le document "Exploring the Design Space of Prime Field vs. Binary Field ECC-Hardware Implementations" indique 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 mise au carré dans le corps binaire est très efficace, car elle suit la règle simplifiée (X + Y )2 = X2 + Y 2.
Comme indiqué 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 interprété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. Parallèlement, les petits éléments de domaine peuvent être empaquetés en éléments de domaine plus grands sans coût de calcul supplémentaire. Le protocole Binius exploite cette caractéristique pour améliorer l'efficacité des calculs. De plus, l'article "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 de tour de n bits ( décomposé en un sous-domaine de m bits ).
( 2.2 PIOP: version adaptée de HyperPlonk Product et PermutationCheck------adapté aux corps binaires
La conception de PIOP dans le protocole Binius s'inspire de HyperPlonk et utilise une série de mécanismes de vérification essentiels pour valider la justesse des polynômes et des ensembles multivariables. Ces vérifications essentielles comprennent :
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 d’assurer le bon fonctionnement du circuit.
PermutationCheck : vérifier si les résultats d'évaluation des deux polynômes multivariables f et g sur le cube hyperbolique booléen représentent une relation de permutation f(x) = f(π)x((, afin de garantir la cohérence des permutations entre les variables polynomiales.
LookupCheck : vérifiez si l'évaluation du polynôme est dans la table de recherche donnée, c'est-à-dire f)Bµ) ⊆ T(Bµ), assurez-vous que certaines valeurs sont dans la plage spécifiée.
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.
ProductCheck : Vérifie si l'évaluation d'un polynôme rationnel sur l'hypercube booléen est égale à une valeur déclarée ∏x∈Hµ f(x) = s, afin de garantir l'exactitude du produit polynomial.
ZeroCheck : vérifier si un polynôme multivariable est nul à un point quelconque sur l'hypercube booléen ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, afin de garantir la distribution des zéros du polynôme.
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 une évaluation d'un polynôme à variable unique, cela réduit la complexité de calcul pour le vérificateur. De plus, SumCheck permet également le traitement par lots, en introduisant des nombres aléatoires pour construire des combinaisons linéaires, ce qui permet de traiter plusieurs instances de vérification de somme.
BatchCheck : basé sur SumCheck, vérifie l'exactitude de l'évaluation de plusieurs polynômes multivariables afin d'améliorer l'efficacité du protocole.
Bien que Binius et HyperPlonk présentent de nombreuses similitudes dans la conception du protocole, Binius a apporté 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é des calculs.
Traitement 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 rend impossible d'affirmer que U est non nul sur l'hypercube ; Binius a correctement traité ce problème, même lorsque le dénominateur est zéro, le ProductCheck de Binius peut continuer à fonctionner, permettant l'extension à n'importe quelle valeur de produit.
Vérification de permutation intercolonnes : HyperPlonk ne dispose pas de cette fonctionnalité ; Binius prend en charge la vérification de permutation entre plusieurs colonnes, ce qui permet à Binius de gérer des cas de permutation polynomiale plus complexes.
Ainsi, Binius a amélioré la flexibilité et l'efficacité du protocole grâce à des modifications du mécanisme PIOPSumCheck existant, offrant un soutien fonctionnel plus solide, en particulier lors du traitement de validations de polynômes multivariés plus complexes. Ces améliorations ne se limitent pas à résoudre les limitations de HyperPlonk, mais posent également les bases pour de futurs systèmes de preuve basés sur des corps binaires.
( 2.3 PIOP: nouvel argument de décalage multilinéraire------applicable au cube hyperbolique booléen
Dans le protocole Binius, la construction et le traitement des polynômes virtuels sont l'une des technologies clés, capables de générer et d'opérer 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:
Packing: Cette méthode fonctionne en emballant
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.
13 J'aime
Récompense
13
7
Partager
Commentaire
0/400
LiquidatedAgain
· 07-12 21:48
Une autre vague de chiffrement, il vaudrait mieux apprendre à prévenir Être liquidé.
Voir l'originalRépondre0
zkProofInThePudding
· 07-11 22:01
Ce domaine descend vraiment trop lentement, continuez à appuyer.
Voir l'originalRépondre0
TopEscapeArtist
· 07-10 04:10
Il semble que l'architecture de base du zkp ait également un motif de chandeliers qui tue le Marché baissier... passant de 252 à 32 bits, cette chute est pire que celle de certains alts.
Voir l'originalRépondre0
CommunityWorker
· 07-10 04:10
Ce domaine est très morose.
Voir l'originalRépondre0
FastLeaver
· 07-10 04:09
Encore quelqu'un a dit que les STARKs étaient bloqués, mort de rire.
Voir l'originalRépondre0
Ser_APY_2000
· 07-10 04:03
La véritable essence de l'optimisation réside dans 0 et 1
Voir l'originalRépondre0
UnluckyMiner
· 07-10 03:43
Encore en train d'optimiser la largeur de bande, pourquoi rendre les choses si compliquées ?
Exploration des STARKs Binius : optimisation des domaines binaires et innovation des polynômes multilinaires
Analyse des principes des STARKs de Binius et réflexions sur leur optimisation
1 Introduction
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 indices 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 originale elle-même est très petite. Pour résoudre ce problème, la réduction de la taille du domaine est devenue une stratégie clé.
La largeur de code 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 code de 32 bits présente encore un grand nombre d'espaces gaspillés. En revanche, le domaine binaire permet d'opérer directement sur les bits, le codage est compact et efficace sans aucun espace gaspillé, c'est-à-dire les STARKs de quatrième génération.
Comparé aux nouveaux domaines de recherche tels que Goldilocks, BabyBear, Mersenne31 découverts ces dernières années, l'étude des corps binaires remonte aux années 1980. Actuellement, les corps binaires sont largement utilisés en cryptographie, des exemples typiques incluent :
Norme de cryptage avancée (AES), basé sur le domaine F28;
Code d'authentification de message Galois ( GMAC ), basé sur le domaine F2128;
QR code, utilisant un codage Reed-Solomon basé sur F28;
Le protocole FRI d'origine et le protocole zk-STARK, ainsi que la fonction de hachage Grøstl, qui a atteint la finale de SHA-3, sont basés sur le domaine F28 et constituent un algorithme de hachage particulièrement 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 faisabilité pratique. La plupart des polynômes impliqués dans le calcul des Prover n'ont pas besoin d'entrer dans l'extension de domaine et peuvent simplement être opérés dans le domaine de base, ce qui permet d'atteindre une grande efficacité dans un petit domaine. Cependant, les vérifications de points aléatoires et les calculs 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, il existe deux problèmes pratiques : lors du calcul de la représentation de la trace dans les STARKs, la taille du domaine utilisée doit être supérieure au degré du polynôme ; lors de l'engagement de l'arbre de Merkle dans les STARKs, un codage de Reed-Solomon doit être effectué, et la taille du domaine utilisée doit être supérieure à la taille après l'extension du codage.
Binius a proposé une solution innovante qui traite séparément ces deux problèmes et réalise cela en représentant les mêmes données de deux manières différentes : d'abord, en utilisant un polynôme multivarié (, spécifiquement un polynôme multilinéraire ), à la place d'un polynôme à variable unique, en représentant l'ensemble de la trajectoire de calcul par ses valeurs dans les "hyper-cubes" ( ; ensuite, comme chaque dimension de l'hyper-cube a une longueur de 2, il n'est pas possible d'effectuer une extension standard de Reed-Solomon comme avec les STARKs, mais on peut considérer l'hyper-cube comme un carré ), sur la base duquel on peut réaliser une extension de Reed-Solomon. 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 ) : PIOP, en tant que système de preuve central, transforme les relations de calcul d'entrée en égalités polynomiales vérifiables. Différents protocoles PIOP, à travers l'interaction avec le vérificateur, permettent au prouveur d'envoyer progressivement des polynômes, permettant ainsi au vérificateur de valider si le calcul est correct en interrogeant un petit nombre de résultats d'évaluation des polynômes. Les protocoles PIOP existants comprennent : PLONK PIOP, Spartan PIOP et HyperPlonk PIOP, qui traitent chacun les expressions polynomiales de manière différente, influençant ainsi la performance et l'efficacité de l'ensemble du système SNARK.
Schéma d'engagement polynomial ( Polynomial Commitment Scheme, PCS ) : Le schéma d'engagement polynomial est utilisé pour prouver si une équation polynomiale 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 les plus courants incluent KZG, Bulletproofs, FRI ( Fast Reed-Solomon IOPP ) et Brakedown, entre autres. Différents PCS ont des performances, des niveaux de sécurité et des scénarios d'application variés.
Selon les besoins spécifiques, choisissez différents PIOP et PCS, et combinez-les avec un domaine fini ou une courbe elliptique appropriée, ce qui permet de construire des systèmes de preuve avec différentes caractéristiques. Par exemple :
• Halo2 : combinant PLONK PIOP et Bulletproofs PCS, basé sur la courbe Pasta. Halo2 a été conçu en mettant l'accent sur l'évolutivité et l'élimination de la configuration de confiance dans le protocole ZCash.
• Plonky2 : utilise PLONK PIOP en combinaison avec FRI PCS, et est basé sur le domaine de Goldilocks. Plonky2 est conçu pour réaliser des récursions efficaces. Lors de la conception de ces systèmes, les PIOP et PCS choisis doivent correspondre au corps fini ou à la courbe elliptique utilisée, afin d'assurer la correctitude, la performance et la sécurité du système. Le choix de ces combinaisons influence non seulement la taille des preuves SNARK et l'efficacité de la vérification, mais détermine également si le système peut atteindre la transparence sans configuration de confiance préalable, 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 + domaines 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 domaines binaires (towers of binary fields) constitue la base de ses calculs, permettant d'effectuer des opérations simplifiées dans le domaine binaire. Deuxièmement, Binius a adapté les vérifications de produits et de permutations 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 domaines. 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 pour petits domaines (Small-Field PCS), lui permettant de réaliser un système de preuve efficace sur le domaine binaire et réduisant les frais généralement associés aux grands domaines.
( 2.1 Domain fini : arithmétisation basée sur les tours de corps binaires
Les corps binaires en tour sont la clé 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 soutiennent 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 soutient un processus d'arithmétisation simplifié, c'est-à-dire que les opérations effectuées sur le corps binaire peuvent être exprimées sous une forme algébrique compacte et facile à vérifier. Ces caractéristiques, combinées à la capacité de tirer pleinement parti de ses caractéristiques hiérarchiques grâce à la structure en tour, font des corps binaires un choix particulièrement adapté à des systèmes de preuve évolutifs tels que Binius.
Le terme "canonical" désigne la représentation unique et directe des éléments dans un corps binaire. Par exemple, dans le corps binaire de base 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 premiers, qui ne peuvent pas fournir cette représentation canonique dans un nombre de bits donné. Bien qu'un corps premier de 32 bits puisse être contenu dans 32 bits, ce n'est pas chaque chaîne de 32 bits qui peut correspondre de manière unique à un élément de corps, tandis que le corps binaire présente cette commodité de correspondance un à un. Dans le corps premier Fp, les méthodes de réduction courantes comprennent 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 courantes incluent des réductions spéciales ) comme celles utilisées dans AES ###, la réduction de Montgomery ( comme dans POLYVAL ) et la réduction récursive ( comme dans Tower ). Le document "Exploring the Design Space of Prime Field vs. Binary Field ECC-Hardware Implementations" indique 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 mise au carré dans le corps binaire est très efficace, car elle suit la règle simplifiée (X + Y )2 = X2 + Y 2.
Comme indiqué 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 interprété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. Parallèlement, les petits éléments de domaine peuvent être empaquetés en éléments de domaine plus grands sans coût de calcul supplémentaire. Le protocole Binius exploite cette caractéristique pour améliorer l'efficacité des calculs. De plus, l'article "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 de tour de n bits ( décomposé en un sous-domaine de m bits ).
( 2.2 PIOP: version adaptée de HyperPlonk Product et PermutationCheck------adapté aux corps binaires
La conception de PIOP dans le protocole Binius s'inspire de HyperPlonk et utilise une série de mécanismes de vérification essentiels pour valider la justesse des polynômes et des ensembles multivariables. Ces vérifications essentielles comprennent :
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 d’assurer le bon fonctionnement du circuit.
PermutationCheck : vérifier si les résultats d'évaluation des deux polynômes multivariables f et g sur le cube hyperbolique booléen représentent une relation de permutation f(x) = f(π)x((, afin de garantir la cohérence des permutations entre les variables polynomiales.
LookupCheck : vérifiez si l'évaluation du polynôme est dans la table de recherche donnée, c'est-à-dire f)Bµ) ⊆ T(Bµ), assurez-vous que certaines valeurs sont dans la plage spécifiée.
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.
ProductCheck : Vérifie si l'évaluation d'un polynôme rationnel sur l'hypercube booléen est égale à une valeur déclarée ∏x∈Hµ f(x) = s, afin de garantir l'exactitude du produit polynomial.
ZeroCheck : vérifier si un polynôme multivariable est nul à un point quelconque sur l'hypercube booléen ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, afin de garantir la distribution des zéros du polynôme.
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 une évaluation d'un polynôme à variable unique, cela réduit la complexité de calcul pour le vérificateur. De plus, SumCheck permet également le traitement par lots, en introduisant des nombres aléatoires pour construire des combinaisons linéaires, ce qui permet de traiter plusieurs instances de vérification de somme.
BatchCheck : basé sur SumCheck, vérifie l'exactitude de l'évaluation de plusieurs polynômes multivariables afin d'améliorer l'efficacité du protocole.
Bien que Binius et HyperPlonk présentent de nombreuses similitudes dans la conception du protocole, Binius a apporté 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é des calculs.
Traitement 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 rend impossible d'affirmer que U est non nul sur l'hypercube ; Binius a correctement traité ce problème, même lorsque le dénominateur est zéro, le ProductCheck de Binius peut continuer à fonctionner, permettant l'extension à n'importe quelle valeur de produit.
Vérification de permutation intercolonnes : HyperPlonk ne dispose pas de cette fonctionnalité ; Binius prend en charge la vérification de permutation entre plusieurs colonnes, ce qui permet à Binius de gérer des cas de permutation polynomiale plus complexes.
Ainsi, Binius a amélioré la flexibilité et l'efficacité du protocole grâce à des modifications du mécanisme PIOPSumCheck existant, offrant un soutien fonctionnel plus solide, en particulier lors du traitement de validations de polynômes multivariés plus complexes. Ces améliorations ne se limitent pas à résoudre les limitations de HyperPlonk, mais posent également les bases pour de futurs systèmes de preuve basés sur des corps binaires.
( 2.3 PIOP: nouvel argument de décalage multilinéraire------applicable au cube hyperbolique booléen
Dans le protocole Binius, la construction et le traitement des polynômes virtuels sont l'une des technologies clés, capables de générer et d'opérer 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: