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 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 Reed-Solomon pour étendre les données entraîne de nombreuses valeurs redondantes 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, 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, avec un codage compact et efficace sans espace gaspillé, c'est-à-dire la quatrième génération de STARKs.
Comparé aux découvertes récentes sur les corps finis tels que Goldilocks, BabyBear et Mersenne31, la recherche sur les corps binaires remonte aux années 1980. Actuellement, les corps binaires sont largement utilisés en cryptographie, des exemples typiques incluent :
Standard de cryptage avancé ( AES ), basé sur le domaine F28 ;
Galois code d'authentification de message ( GMAC ), basé sur le domaine F2128 ;
QR code, utilisant le codage Reed-Solomon basé sur F28 ;
Les protocoles FRI originaux 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, sont des algorithmes de hachage très adaptés à la récursivité.
Lorsqu'un domaine plus petit est utilisé, 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 praticabilité. La plupart des polynômes impliqués dans les calculs de Prover n'ont pas besoin d'entrer dans l'extension de domaine, mais doivent simplement opérer dans le domaine de base, permettant ainsi une grande efficacité dans le 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 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 Merkle dans les STARKs, il est nécessaire de faire un codage de Reed-Solomon, 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 ces deux problèmes séparément et représente les mêmes données de deux manières différentes : d'abord, en utilisant des polynômes multivariés (plus précisément, des polynômes multilinéaires) à la place de 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 d'effectuer une extension Reed-Solomon standard comme avec les STARKs, mais on peut considérer l'hypercube comme un carré (square) et effectuer une extension Reed-Solomon basée sur ce carré. Cette méthode améliore considérablement l'efficacité du codage et la performance 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 à base d'information (Information-Theoretic Polynomial Interactive Oracle Proof, PIOP) : Le PIOP, en tant que cœur du système de preuve, transforme les relations de calcul d'entrée en équations polynomiales vérifiables. Différents protocoles PIOP, grâce à l'interaction 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 nombre limité de résultats d'évaluation de polynômes. Les protocoles PIOP existants incluent : PLONK PIOP, Spartan PIOP et HyperPlonk PIOP, qui traitent chacun les expressions polynomiales de manière différente, impactant 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 l'égalité polynomiale générée par PIOP est valide. Le PCS est un outil cryptographique par lequel le prouveur peut s'engager sur un certain polynôme et 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 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 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 la suppression du trusted setup dans le protocole ZCash.
• Plonky2 : utilise PLONK PIOP combiné avec FRI PCS et basé sur le domaine Goldilocks. Plonky2 est conçu pour réaliser une récursion efficace. Lors de la conception de ces systèmes, les PIOP et PCS choisis doivent correspondre au domaine fini ou à la courbe elliptique utilisée, afin de garantir l'exactitude, les performances 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 une transparence sans configuration de confiance préalable, et s'il peut prendre en charge des fonctionnalités d'extension telles que la preuve récursive ou la preuve agrégée.
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 champs binaires constitue la base de ses calculs, permettant 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 interactif (PIOP), garantissant 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 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 polynomiale de petit champ (Small-Field PCS), lui permettant de réaliser un système de preuve efficace sur le domaine binaire, tout en réduisant les frais généralement associés aux grands champs.
2.1 Corps finis : arithmétique 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 supporte un processus d'arithmétisation simplifié, c'est-à-dire que les opérations effectuées sur les corps binaires peuvent être représenté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 à une structure en tour, font des corps binaires un choix particulièrement adapté pour des systèmes de preuve évolutifs comme Binius.
Le terme "canonical" fait référence à la représentation unique et directe des éléments dans un domaine binaire. Par exemple, dans le domaine binaire de base F2, toute chaîne de k bits peut être directement mappée à un élément de domaine binaire de k bits. Cela diffère des domaines premiers, car un domaine premier ne peut pas fournir cette représentation canonique dans un nombre de bits donné. Bien qu'un domaine premier de 32 bits puisse être contenu dans 32 bits, toutes les chaînes de 32 bits ne peuvent pas être associées de manière unique à un élément de domaine, tandis que le domaine binaire offre cette commodité de mappage bijectif. Dans le domaine 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écifiques pour des domaines finis tels que Mersenne-31 ou Goldilocks-64. Dans le domaine binaire F2k, les méthodes de réduction courantes comprennent la réduction spéciale (comme celle utilisée dans AES), la réduction de Montgomery (comme celle utilisée 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" indique que le domaine 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 domaine binaire est très efficace, car elle suit la règle simplifiée de (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 le 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 de domaine F2. Cette flexibilité de représentation ne nécessite aucun coût de calcul, il s'agit simplement d'une conversion de type de chaîne de bits (typecast), ce qui est une propriété très intéressante et utile. En même temps, les éléments de petit domaine peuvent être regroupés en éléments de domaine plus grands sans coût de calcul supplémentaire. Le protocole Binius tire parti de 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é calculatoire des opérations de multiplication, de mise au carré et d'inversion dans les domaines binaires de tour de n bits (décomposables en sous-domaines de m bits).
2.2 PIOP : Version adaptée de HyperPlonk Product et PermutationCheck ------ Applicable au domaine binaire
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 multivariables. Ces vérifications essentielles comprennent :
GateCheck : vérifie si le témoin secret ω et l'entrée publique x satisfont la relation de calcul du circuit C(x,ω)=0, afin de s'assurer que le circuit fonctionne correctement.
PermutationCheck : Vérifie si les résultats d'évaluation des deux polynômes multivariés 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µ), assurant 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érifiez si l'évaluation d'un polynôme à coefficients rationnels sur l'hypercube booléen est égale à une valeur déclarée ∏x∈Hµ f(x) = s, afin d'assurer l'exactitude du produit polynomial.
ZeroCheck : Vérifiez si un polynôme multivariable à plusieurs variables 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 de polynômes multivariables en évaluation de polynômes à une variable, 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, permettant de construire des combinaisons linéaires pour traiter plusieurs instances de vérification de somme.
BatchCheck : Basé sur SumCheck, vérifie la validité des évaluations de plusieurs polynômes multivariés pour améliorer l'efficacité du protocole.
Bien que Binius et HyperPlonk aient de nombreuses similarités 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 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.
Gestion des problèmes de division par zéro : HyperPlonk n'a pas réussi à traiter adéquatement 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 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 situations de permutation polynomiale plus complexes.
Ainsi, Binius a amélioré la flexibilité et l'efficacité du protocole en modifiant le mécanisme PIOPSumCheck existant, offrant un meilleur support fonctionnel, en particulier lors du traitement de la validation de polynômes multivariés plus complexes. Ces améliorations non seulement résolvent les limitations de HyperPlonk, mais posent également les bases pour de futurs systèmes de preuve basés sur des domaines binaires.
2.3 PIOP : nouvel argument de décalage multilinéraire ------ applicable à l'hypercube booléen
Dans le protocole Binius, la construction et le traitement des polynômes virtuels sont l'une des techniques 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.
15 J'aime
Récompense
15
7
Reposter
Partager
Commentaire
0/400
DataBartender
· Il y a 16h
La troisième génération n'est pas encore optimisée, ne vous précipitez pas à avoir de mauvaises pensées.
Voir l'originalRépondre0
LuckyBearDrawer
· 08-16 15:23
Les trois générations de STARKs n'ont pas compris ce qu'ils faisaient avec le 32 bits.
Voir l'originalRépondre0
DegenGambler
· 08-16 15:21
Qui comprend cela ? C'est trop fort. Les trois premières générations étaient gaspillées, maintenant tout est réglé avec du binaire.
Voir l'originalRépondre0
Anon32942
· 08-16 15:17
C'est tellement intemporel, passer de 252 à 32 bits...
Voir l'originalRépondre0
BearMarketMonk
· 08-16 15:16
Eh bien, combien de frais de gas cette optimisation a-t-elle permis d'économiser~
Voir l'originalRépondre0
FrontRunFighter
· 08-16 14:59
hum optimisation astucieuse... mais attention aux chasseurs MEV de la forêt sombre qui rôdent dans ces champs binaires
Voir l'originalRépondre0
OldLeekConfession
· 08-16 14:57
Au revoir, si la largeur de bande doit encore être modifiée, ça sera fini.
Analyse de la technologie Binius STARKs : un système de preuve à connaissance nulle efficace basé sur un domaine binaire
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 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 Reed-Solomon pour étendre les données entraîne de nombreuses valeurs redondantes 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, 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, avec un codage compact et efficace sans espace gaspillé, c'est-à-dire la quatrième génération de STARKs.
Comparé aux découvertes récentes sur les corps finis tels que Goldilocks, BabyBear et Mersenne31, la recherche sur les corps binaires remonte aux années 1980. Actuellement, les corps binaires sont largement utilisés en cryptographie, des exemples typiques incluent :
Standard de cryptage avancé ( AES ), basé sur le domaine F28 ;
Galois code d'authentification de message ( GMAC ), basé sur le domaine F2128 ;
QR code, utilisant le codage Reed-Solomon basé sur F28 ;
Les protocoles FRI originaux 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, sont des algorithmes de hachage très adaptés à la récursivité.
Lorsqu'un domaine plus petit est utilisé, 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 praticabilité. La plupart des polynômes impliqués dans les calculs de Prover n'ont pas besoin d'entrer dans l'extension de domaine, mais doivent simplement opérer dans le domaine de base, permettant ainsi une grande efficacité dans le 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 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 Merkle dans les STARKs, il est nécessaire de faire un codage de Reed-Solomon, 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 ces deux problèmes séparément et représente les mêmes données de deux manières différentes : d'abord, en utilisant des polynômes multivariés (plus précisément, des polynômes multilinéaires) à la place de 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 d'effectuer une extension Reed-Solomon standard comme avec les STARKs, mais on peut considérer l'hypercube comme un carré (square) et effectuer une extension Reed-Solomon basée sur ce carré. Cette méthode améliore considérablement l'efficacité du codage et la performance 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 à base d'information (Information-Theoretic Polynomial Interactive Oracle Proof, PIOP) : Le PIOP, en tant que cœur du système de preuve, transforme les relations de calcul d'entrée en équations polynomiales vérifiables. Différents protocoles PIOP, grâce à l'interaction 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 nombre limité de résultats d'évaluation de polynômes. Les protocoles PIOP existants incluent : PLONK PIOP, Spartan PIOP et HyperPlonk PIOP, qui traitent chacun les expressions polynomiales de manière différente, impactant 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 l'égalité polynomiale générée par PIOP est valide. Le PCS est un outil cryptographique par lequel le prouveur peut s'engager sur un certain polynôme et 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 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 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 la suppression du trusted setup dans le protocole ZCash.
• Plonky2 : utilise PLONK PIOP combiné avec FRI PCS et basé sur le domaine Goldilocks. Plonky2 est conçu pour réaliser une récursion efficace. Lors de la conception de ces systèmes, les PIOP et PCS choisis doivent correspondre au domaine fini ou à la courbe elliptique utilisée, afin de garantir l'exactitude, les performances 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 une transparence sans configuration de confiance préalable, et s'il peut prendre en charge des fonctionnalités d'extension telles que la preuve récursive ou la preuve agrégée.
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 champs binaires constitue la base de ses calculs, permettant 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 interactif (PIOP), garantissant 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 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 polynomiale de petit champ (Small-Field PCS), lui permettant de réaliser un système de preuve efficace sur le domaine binaire, tout en réduisant les frais généralement associés aux grands champs.
2.1 Corps finis : arithmétique 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 supporte un processus d'arithmétisation simplifié, c'est-à-dire que les opérations effectuées sur les corps binaires peuvent être représenté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 à une structure en tour, font des corps binaires un choix particulièrement adapté pour des systèmes de preuve évolutifs comme Binius.
Le terme "canonical" fait référence à la représentation unique et directe des éléments dans un domaine binaire. Par exemple, dans le domaine binaire de base F2, toute chaîne de k bits peut être directement mappée à un élément de domaine binaire de k bits. Cela diffère des domaines premiers, car un domaine premier ne peut pas fournir cette représentation canonique dans un nombre de bits donné. Bien qu'un domaine premier de 32 bits puisse être contenu dans 32 bits, toutes les chaînes de 32 bits ne peuvent pas être associées de manière unique à un élément de domaine, tandis que le domaine binaire offre cette commodité de mappage bijectif. Dans le domaine 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écifiques pour des domaines finis tels que Mersenne-31 ou Goldilocks-64. Dans le domaine binaire F2k, les méthodes de réduction courantes comprennent la réduction spéciale (comme celle utilisée dans AES), la réduction de Montgomery (comme celle utilisée 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" indique que le domaine 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 domaine binaire est très efficace, car elle suit la règle simplifiée de (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 le 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 de domaine F2. Cette flexibilité de représentation ne nécessite aucun coût de calcul, il s'agit simplement d'une conversion de type de chaîne de bits (typecast), ce qui est une propriété très intéressante et utile. En même temps, les éléments de petit domaine peuvent être regroupés en éléments de domaine plus grands sans coût de calcul supplémentaire. Le protocole Binius tire parti de 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é calculatoire des opérations de multiplication, de mise au carré et d'inversion dans les domaines binaires de tour de n bits (décomposables en sous-domaines de m bits).
2.2 PIOP : Version adaptée de HyperPlonk Product et PermutationCheck ------ Applicable au domaine binaire
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 multivariables. Ces vérifications essentielles comprennent :
GateCheck : vérifie si le témoin secret ω et l'entrée publique x satisfont la relation de calcul du circuit C(x,ω)=0, afin de s'assurer que le circuit fonctionne correctement.
PermutationCheck : Vérifie si les résultats d'évaluation des deux polynômes multivariés 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µ), assurant 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érifiez si l'évaluation d'un polynôme à coefficients rationnels sur l'hypercube booléen est égale à une valeur déclarée ∏x∈Hµ f(x) = s, afin d'assurer l'exactitude du produit polynomial.
ZeroCheck : Vérifiez si un polynôme multivariable à plusieurs variables 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 de polynômes multivariables en évaluation de polynômes à une variable, 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, permettant de construire des combinaisons linéaires pour traiter plusieurs instances de vérification de somme.
BatchCheck : Basé sur SumCheck, vérifie la validité des évaluations de plusieurs polynômes multivariés pour améliorer l'efficacité du protocole.
Bien que Binius et HyperPlonk aient de nombreuses similarités 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 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.
Gestion des problèmes de division par zéro : HyperPlonk n'a pas réussi à traiter adéquatement 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 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 situations de permutation polynomiale plus complexes.
Ainsi, Binius a amélioré la flexibilité et l'efficacité du protocole en modifiant le mécanisme PIOPSumCheck existant, offrant un meilleur support fonctionnel, en particulier lors du traitement de la validation de polynômes multivariés plus complexes. Ces améliorations non seulement résolvent les limitations de HyperPlonk, mais posent également les bases pour de futurs systèmes de preuve basés sur des domaines binaires.
2.3 PIOP : nouvel argument de décalage multilinéraire ------ applicable à l'hypercube booléen
Dans le protocole Binius, la construction et le traitement des polynômes virtuels sont l'une des techniques 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 :