Analyse des principes des STARKs de Binius et réflexion sur leur optimisation
1 Introduction
Une des principales raisons de l'inefficacité 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 redondantes supplémentaires qui occupent l'ensemble du domaine, même si les valeurs originales elles-mêmes sont très petites. Pour résoudre ce problème, réduire 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 espace gaspillé. En comparaison, le domaine binaire permet d'opérer directement sur les bits, rendant le codage compact et efficace sans aucun espace gaspillé, c'est-à-dire les STARKs de quatrième génération.
Comparé aux découvertes récentes sur les corps finis tels que Goldilocks, BabyBear, Mersenne31, la recherche sur les corps binaires remonte aux années 1980. Aujourd'hui, les corps 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 ;
QR code, 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, 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 praticité. La plupart des polynômes impliqués dans les calculs Prover n'ont pas besoin d'entrer dans l'extension de domaine, mais doivent simplement opérer sous 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 des domaines binaires, deux problèmes pratiques existent : lors du calcul de la trace dans les STARKs, la taille du domaine utilisé doit être supérieure au degré du polynôme ; lors de l'engagement dans l'arbre de Merkle des STARKs, un encodage de Reed-Solomon doit être effectué, et la taille du domaine utilisé doit être supérieure à la taille après l'extension de l'encodage.
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 "hypercubes" ; ensuite, étant donné que la longueur de chaque dimension de l'hypercube est de 2, il n'est pas possible de procéder à une extension standard de Reed-Solomon comme dans le cas des STARKs, mais l'hypercube peut être considéré comme un carré, sur lequel l'extension de Reed-Solomon peut être effectué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 interactif 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 en égalités polynomiales vérifiables. Différents protocoles PIOP, par le biais d'interactions avec le vérificateur, permettent au prouveur d'envoyer progressivement des polynômes, de sorte que le vérificateur puisse valider si le calcul est correct en interrogeant un petit nombre de résultats d'évaluation de polynômes. Les protocoles PIOP existants comprennent : PLONK PIOP, Spartan PIOP et HyperPlonk PIOP, chacun ayant des méthodes de traitement des expressions polynomiales différentes, ce qui influence 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 l'égalité polynomial générée par PIOP est valide. Le PCS est un outil cryptographique qui permet au prouveur de s'engager à un certain polynôme et de vérifier ultérieurement 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, entre autres. 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 combinez-les avec un domaine fini ou une courbe elliptique appropriée, pour construire des systèmes de preuve ayant 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 : utilise PLONK PIOP et FRI PCS combinés, 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, le PIOP et le PCS choisis doivent correspondre au champ fini ou à la courbe elliptique utilisée, afin d'assurer la validité, la performance et la sécurité du système. Le choix de ces combinaisons affecte non seulement la taille des preuves SNARK et l'efficacité de la vérification, mais détermine également si le système peut réaliser la transparence sans configuration de confiance préalable, et s'il peut prendre en charge des fonctions d'extension telles que des preuves récursives ou des preuves agrégées.
Binius : HyperPlonk PIOP + Brakedown PCS + domaine binaire. Plus précisément, 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 constitue la base de ses calculs, permettant d'effectuer des opérations simplifiées dans le domaine binaire. Deuxièmement, Binius a adapté la vérification de produit et de permutation de HyperPlonk dans son protocole de preuve Oracle interactive (PIOP), assurant ainsi une vérification cohérente 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 robustesse en matière de sécurité pour le mécanisme de recherche. Enfin, le protocole utilise un schéma d'engagement polynomial à petit domaine (Small-Field PCS), lui permettant de réaliser un système de preuve efficace dans le domaine binaire, tout en réduisant les frais généralement associés aux grands domaines.
2.1 Domain fini : arithmétique basée sur les tours de champs binaires
Les corps binaires en tour sont la clé pour réaliser des calculs rapides et vérifiables, 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 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, combinées à la capacité d'exploiter pleinement 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 d'un élément 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 le cas pour chaque chaîne de 32 bits, qui ne peut pas correspondre de manière unique à un élément de corps, tandis que le corps binaire offre cette commodité de mappage un à un. Dans le corps premier 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 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 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'élévation 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 des domaines binaires. Elle peut être considérée comme un élément unique dans un domaine binaire de 128 bits, ou être décomposée en deux éléments de domaine de tour de 64 bits, quatre éléments de domaine de tour de 32 bits, seize éléments de domaine de tour de 8 bits, ou 128 éléments du domaine F2. Cette flexibilité de représentation ne nécessite aucun coût de calcul supplémentaire, c'est simplement une conversion de type de chaîne de bits, ce qui constitue une propriété très intéressante et utile. En même temps, les éléments de petit domaine peuvent être emballé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é du calcul. De plus, le document "On Efficient Inversion in Tower Fields of Characteristic Two" explore la complexité du calcul des opérations de multiplication, de mise au carré et d'inversion dans un domaine binaire de tour de n bits (décomposable en sous-domaines de m bits).
2.2 PIOP : version adaptée du produit HyperPlonk et vérification de permutation ------ applicable 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 correctitude des polynômes et des ensembles multivariés. Ces vérifications essentielles comprennent :
GateCheck : Vérifier si le témoin secret ω et l'entrée publique x satisfont la relation de calcul du circuit C(x,ω)=0, afin d'assurer le bon fonctionnement du circuit.
PermutationCheck : Vérifie si les résultats d'évaluation de deux polynômes multivariables f et g sur l'hypercube booléen sont une relation de permutation f(x) = f(π(x)), afin d'assurer la cohérence des permutations entre les variables du polynôme.
LookupCheck : Vérifie si l'évaluation du polynôme est dans la table de recherche donnée, c'est-à-dire f(Bµ) ⊆ T(Bµ), garantissant que certaines valeurs se situent 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érifier si l'évaluation d'un polynôme à plusieurs variables sur l'hypercube booléen est égale à une valeur déclarée ∏x∈Hµ f(x) = s, afin d'assurer la validité du produit polynomial.
ZeroCheck : Vérifier si un polynôme multivariable est nul à un point quelconque sur le cube hyperbolique booléen ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, afin de garantir la distribution des zéros du polynôme.
SumCheck : Vérifiez 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 de polynômes multivariables en évaluation de polynômes à variable unique, cela réduit la complexité de calcul pour le vérificateur. De plus, SumCheck permet le traitement par lots en introduisant des nombres aléatoires, construisant des combinaisons linéaires pour réaliser le traitement par lots de plusieurs instances de vérification de somme.
BatchCheck : basé sur SumCheck, vérifie la validité 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 des protocoles, 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 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 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 de généraliser à n'importe quelle valeur de produit.
Vérification de permutation intercolonnes : 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 permutation polynomiale plus complexes.
Ainsi, Binius a amélioré le mécanisme PIOPSumCheck existant, augmentant la flexibilité et l'efficacité du protocole, en particulier lors du traitement de vérifications de polynômes multivariables plus complexes, offrant un soutien fonctionnel renforcé. Ces améliorations ne se contentent pas de résoudre les limitations de HyperPlonk, mais posent également les bases pour de futurs systèmes de preuve basés sur des champs binaires.
2.3 PIOP : nouvel argument de décalage multilinéraire ------ 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 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 optimise l'opération en regroupant les plus petits éléments adjacents dans l'ordre lexicographique en éléments plus grands. L'opérateur Pack cible des blocs de taille 2κ et les regroupe.
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.
12 J'aime
Récompense
12
5
Reposter
Partager
Commentaire
0/400
GateUser-e51e87c7
· Il y a 21h
32 bits, c'est déjà trop... L'argent est vraiment difficile à gagner.
Voir l'originalRépondre0
SurvivorshipBias
· Il y a 21h
Cette optimisation est intéressante, les passionnés de technologie sont ravis.
Voir l'originalRépondre0
RektDetective
· Il y a 21h
Attendez, attendez, condamné, n'est-ce pas ? Vous pleurez encore pour le 32 bits.
Voir l'originalRépondre0
FudVaccinator
· Il y a 21h
Directement compressé en 32 bits, c'est vraiment une perte d'espace trop absurde.
Voir l'originalRépondre0
LayerZeroEnjoyer
· Il y a 21h
Y a-t-il encore de l'espoir pour le 32 bits~ Quand pourra-t-il évoluer vers le 8 bits ?
Analyse des principes de Binius STARKs : optimisation du domaine binaire et amélioration des performances
Analyse des principes des STARKs de Binius et réflexion sur leur optimisation
1 Introduction
Une des principales raisons de l'inefficacité 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 redondantes supplémentaires qui occupent l'ensemble du domaine, même si les valeurs originales elles-mêmes sont très petites. Pour résoudre ce problème, réduire 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 espace gaspillé. En comparaison, le domaine binaire permet d'opérer directement sur les bits, rendant le codage compact et efficace sans aucun espace gaspillé, c'est-à-dire les STARKs de quatrième génération.
Comparé aux découvertes récentes sur les corps finis tels que Goldilocks, BabyBear, Mersenne31, la recherche sur les corps binaires remonte aux années 1980. Aujourd'hui, les corps 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 ;
QR code, 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, 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 praticité. La plupart des polynômes impliqués dans les calculs Prover n'ont pas besoin d'entrer dans l'extension de domaine, mais doivent simplement opérer sous 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 des domaines binaires, deux problèmes pratiques existent : lors du calcul de la trace dans les STARKs, la taille du domaine utilisé doit être supérieure au degré du polynôme ; lors de l'engagement dans l'arbre de Merkle des STARKs, un encodage de Reed-Solomon doit être effectué, et la taille du domaine utilisé doit être supérieure à la taille après l'extension de l'encodage.
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 "hypercubes" ; ensuite, étant donné que la longueur de chaque dimension de l'hypercube est de 2, il n'est pas possible de procéder à une extension standard de Reed-Solomon comme dans le cas des STARKs, mais l'hypercube peut être considéré comme un carré, sur lequel l'extension de Reed-Solomon peut être effectué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 interactif 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 en égalités polynomiales vérifiables. Différents protocoles PIOP, par le biais d'interactions avec le vérificateur, permettent au prouveur d'envoyer progressivement des polynômes, de sorte que le vérificateur puisse valider si le calcul est correct en interrogeant un petit nombre de résultats d'évaluation de polynômes. Les protocoles PIOP existants comprennent : PLONK PIOP, Spartan PIOP et HyperPlonk PIOP, chacun ayant des méthodes de traitement des expressions polynomiales différentes, ce qui influence 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 l'égalité polynomial générée par PIOP est valide. Le PCS est un outil cryptographique qui permet au prouveur de s'engager à un certain polynôme et de vérifier ultérieurement 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, entre autres. 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 combinez-les avec un domaine fini ou une courbe elliptique appropriée, pour construire des systèmes de preuve ayant 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 : utilise PLONK PIOP et FRI PCS combinés, 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, le PIOP et le PCS choisis doivent correspondre au champ fini ou à la courbe elliptique utilisée, afin d'assurer la validité, la performance et la sécurité du système. Le choix de ces combinaisons affecte non seulement la taille des preuves SNARK et l'efficacité de la vérification, mais détermine également si le système peut réaliser la transparence sans configuration de confiance préalable, et s'il peut prendre en charge des fonctions d'extension telles que des preuves récursives ou des preuves agrégées.
Binius : HyperPlonk PIOP + Brakedown PCS + domaine binaire. Plus précisément, 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 constitue la base de ses calculs, permettant d'effectuer des opérations simplifiées dans le domaine binaire. Deuxièmement, Binius a adapté la vérification de produit et de permutation de HyperPlonk dans son protocole de preuve Oracle interactive (PIOP), assurant ainsi une vérification cohérente 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 robustesse en matière de sécurité pour le mécanisme de recherche. Enfin, le protocole utilise un schéma d'engagement polynomial à petit domaine (Small-Field PCS), lui permettant de réaliser un système de preuve efficace dans le domaine binaire, tout en réduisant les frais généralement associés aux grands domaines.
2.1 Domain fini : arithmétique basée sur les tours de champs binaires
Les corps binaires en tour sont la clé pour réaliser des calculs rapides et vérifiables, 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 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, combinées à la capacité d'exploiter pleinement 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 d'un élément 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 le cas pour chaque chaîne de 32 bits, qui ne peut pas correspondre de manière unique à un élément de corps, tandis que le corps binaire offre cette commodité de mappage un à un. Dans le corps premier 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 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 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'élévation 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 des domaines binaires. Elle peut être considérée comme un élément unique dans un domaine binaire de 128 bits, ou être décomposée en deux éléments de domaine de tour de 64 bits, quatre éléments de domaine de tour de 32 bits, seize éléments de domaine de tour de 8 bits, ou 128 éléments du domaine F2. Cette flexibilité de représentation ne nécessite aucun coût de calcul supplémentaire, c'est simplement une conversion de type de chaîne de bits, ce qui constitue une propriété très intéressante et utile. En même temps, les éléments de petit domaine peuvent être emballé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é du calcul. De plus, le document "On Efficient Inversion in Tower Fields of Characteristic Two" explore la complexité du calcul des opérations de multiplication, de mise au carré et d'inversion dans un domaine binaire de tour de n bits (décomposable en sous-domaines de m bits).
2.2 PIOP : version adaptée du produit HyperPlonk et vérification de permutation ------ applicable 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 correctitude des polynômes et des ensembles multivariés. Ces vérifications essentielles comprennent :
GateCheck : Vérifier si le témoin secret ω et l'entrée publique x satisfont la relation de calcul du circuit C(x,ω)=0, afin d'assurer le bon fonctionnement du circuit.
PermutationCheck : Vérifie si les résultats d'évaluation de deux polynômes multivariables f et g sur l'hypercube booléen sont une relation de permutation f(x) = f(π(x)), afin d'assurer la cohérence des permutations entre les variables du polynôme.
LookupCheck : Vérifie si l'évaluation du polynôme est dans la table de recherche donnée, c'est-à-dire f(Bµ) ⊆ T(Bµ), garantissant que certaines valeurs se situent 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érifier si l'évaluation d'un polynôme à plusieurs variables sur l'hypercube booléen est égale à une valeur déclarée ∏x∈Hµ f(x) = s, afin d'assurer la validité du produit polynomial.
ZeroCheck : Vérifier si un polynôme multivariable est nul à un point quelconque sur le cube hyperbolique booléen ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, afin de garantir la distribution des zéros du polynôme.
SumCheck : Vérifiez 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 de polynômes multivariables en évaluation de polynômes à variable unique, cela réduit la complexité de calcul pour le vérificateur. De plus, SumCheck permet le traitement par lots en introduisant des nombres aléatoires, construisant des combinaisons linéaires pour réaliser le traitement par lots de plusieurs instances de vérification de somme.
BatchCheck : basé sur SumCheck, vérifie la validité 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 des protocoles, 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 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 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 de généraliser à n'importe quelle valeur de produit.
Vérification de permutation intercolonnes : 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 permutation polynomiale plus complexes.
Ainsi, Binius a amélioré le mécanisme PIOPSumCheck existant, augmentant la flexibilité et l'efficacité du protocole, en particulier lors du traitement de vérifications de polynômes multivariables plus complexes, offrant un soutien fonctionnel renforcé. Ces améliorations ne se contentent pas de résoudre les limitations de HyperPlonk, mais posent également les bases pour de futurs systèmes de preuve basés sur des champs binaires.
2.3 PIOP : nouvel argument de décalage multilinéraire ------ 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 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 :