Análisis de los principios de Binius STARKs y reflexiones sobre su optimización
1. Introducción
A diferencia de los SNARKs basados en curvas elípticas, los STARKs pueden considerarse como SNARKs basados en hash. Una de las principales razones de la baja eficiencia de los STARKs en la actualidad es que la mayoría de los números en los programas reales son bastante pequeños, como los índices en los bucles for, los valores booleanos, los contadores, etc. Sin embargo, para garantizar la seguridad de las pruebas basadas en árboles de Merkle, al usar codificación de Reed-Solomon para extender los datos, muchos valores redundantes adicionales ocuparán todo el dominio, incluso si el valor original es muy pequeño. Para abordar este problema, reducir el tamaño del dominio se ha convertido en una estrategia clave.
La anchura de codificación de la primera generación de STARKs es de 252 bits, la de la segunda generación de STARKs es de 64 bits, y la de la tercera generación de STARKs es de 32 bits, pero la anchura de codificación de 32 bits todavía tiene un gran desperdicio de espacio. En comparación, el dominio binario permite operar directamente sobre los bits, con una codificación compacta y eficiente sin ningún espacio desperdiciado, es decir, la cuarta generación de STARKs.
En comparación con los campos finitos descubiertos en investigaciones recientes como Goldilocks, BabyBear y Mersenne31, la investigación sobre los campos binarios se remonta a la década de 1980. Actualmente, los campos binarios se utilizan ampliamente en criptografía, ejemplos típicos incluyen:
Estándar de Cifrado Avanzado ( AES ), basado en el campo F28;
Galois código de autenticación de mensajes ( GMAC ), basado en el campo F2128;
Código QR, que utiliza codificación Reed-Solomon basada en F28;
Protocolo FRI original y zk-STARK, así como la función hash Grøstl que llegó a la final de SHA-3, que se basa en el campo F28, es un algoritmo de hash muy adecuado para la recursión.
Cuando se utilizan dominios más pequeños, la operación de extensión de dominio se vuelve cada vez más importante para garantizar la seguridad. Y el dominio binario utilizado por Binius depende completamente de la extensión de dominio para garantizar su seguridad y usabilidad práctica. La mayoría de los polinomios involucrados en los cálculos de Prover no necesitan entrar en la extensión de dominio, sino que solo operan en el dominio base, logrando así una alta eficiencia en dominios pequeños. Sin embargo, las verificaciones de puntos aleatorios y los cálculos de FRI aún requieren profundizar en un dominio de extensión más grande para garantizar la seguridad necesaria.
Al construir un sistema de pruebas basado en el dominio binario, existen 2 problemas prácticos: al calcular la representación de traza en STARKs, el tamaño del dominio utilizado debe ser mayor que el grado del polinomio; al comprometer el árbol de Merkle en STARKs, se debe realizar la codificación de Reed-Solomon, y el tamaño del dominio utilizado debe ser mayor que el tamaño después de la expansión de la codificación.
Binius propuso una solución innovadora para abordar estos dos problemas, y lograrlo representando los mismos datos de dos maneras diferentes: primero, utilizando un polinomio multivariable (específicamente un polinomio multilineal) en lugar de un polinomio univariable, representando toda la trayectoria computacional a través de sus valores en "hipercubos"; en segundo lugar, dado que la longitud de cada dimensión del hipercubo es 2, no se puede realizar una extensión estándar de Reed-Solomon como en los STARKs, pero se puede considerar el hipercubo como un cuadrado, y realizar la extensión de Reed-Solomon basada en ese cuadrado. Este método, al garantizar la seguridad, mejora significativamente la eficiencia de codificación y el rendimiento computacional.
2. Análisis de principios
La construcción de la mayoría de los sistemas SNARKs actuales generalmente incluye las siguientes dos partes:
Prueba de Oráculo Interactivo Polinómico de Teoría de la Información (Information-Theoretic Polynomial Interactive Oracle Proof, PIOP): PIOP como núcleo del sistema de prueba transforma las relaciones computacionales de entrada en ecuaciones polinómicas verificables. Diferentes protocolos PIOP permiten al probador enviar polinomios de manera incremental a través de la interacción con el validador, de modo que el validador puede verificar si el cálculo es correcto consultando los resultados de evaluación de unos pocos polinomios. Los protocolos PIOP existentes incluyen: PIOP PLONK, PIOP Spartan y PIOP HyperPlonk, cada uno de los cuales tiene diferentes enfoques para el manejo de expresiones polinómicas, lo que afecta el rendimiento y la eficiencia de todo el sistema SNARK.
Esquema de Compromiso Polinómico (Polynomial Commitment Scheme, PCS): El esquema de compromiso polinómico se utiliza para probar si se cumple la igualdad polinómica generada por PIOP. El PCS es una herramienta criptográfica que permite al probador comprometerse a un polinomio y posteriormente verificar el resultado de la evaluación de ese polinomio, mientras oculta otra información sobre el polinomio. Los esquemas de compromiso polinómico comunes incluyen KZG, Bulletproofs, FRI (Fast Reed-Solomon IOPP) y Brakedown, entre otros. Diferentes PCS tienen diferentes rendimientos, seguridad y escenarios de aplicación.
Según las necesidades específicas, elija diferentes PIOP y PCS, y combine con un campo finito adecuado o una curva elíptica, se puede construir un sistema de prueba con diferentes atributos. Por ejemplo:
• Halo2: combina PLONK PIOP y Bulletproofs PCS, y está basado en la curva Pasta. En el diseño de Halo2, se presta atención a la escalabilidad y se elimina el trusted setup del protocolo ZCash.
• Plonky2: combina PLONK PIOP con FRI PCS y se basa en el dominio de Goldilocks. Plonky2 está diseñado para lograr una recursividad eficiente. Al diseñar estos sistemas, la PIOP y el PCS elegidos deben coincidir con el campo finito o la curva elíptica utilizada para garantizar la corrección, el rendimiento y la seguridad del sistema. La elección de estas combinaciones no solo afecta el tamaño de la prueba SNARK y la eficiencia de la verificación, sino que también determina si el sistema puede lograr transparencia sin una configuración de confianza y si puede soportar funciones de expansión como pruebas recursivas o pruebas agregadas.
Binius: HyperPlonk PIOP + Brakedown PCS + dominio binario. En concreto, Binius incluye cinco tecnologías clave para lograr su eficiencia y seguridad. Primero, la aritmética basada en torres de dominios binarios constituye la base de su cálculo, permitiendo realizar operaciones simplificadas dentro del dominio binario. En segundo lugar, Binius adapta las verificaciones de productos y permutaciones de HyperPlonk en su protocolo de prueba Oracle interactivo (PIOP), asegurando una verificación de consistencia segura y eficiente entre las variables y sus permutaciones. En tercer lugar, el protocolo introduce una nueva prueba de desplazamiento multilineal, optimizando la eficiencia de la verificación de relaciones multilineales en pequeños dominios. Cuarto, Binius utiliza una versión mejorada de la prueba de búsqueda Lasso, proporcionando flexibilidad y una fuerte seguridad al mecanismo de búsqueda. Finalmente, el protocolo emplea un esquema de compromiso de polinomios de pequeño dominio (Small-Field PCS), lo que le permite implementar un sistema de prueba eficiente en el dominio binario y reducir los costos generalmente asociados con dominios grandes.
2.1 Campos finitos: aritmética basada en torres de campos binarios
El campo binario en torre es clave para realizar cálculos verificables rápidos, principalmente debido a dos aspectos: cálculos eficientes y aritmética eficiente. El campo binario, por su naturaleza, admite operaciones aritméticas altamente eficientes, lo que lo convierte en una opción ideal para aplicaciones criptográficas que son sensibles a los requisitos de rendimiento. Además, la estructura del campo binario soporta un proceso de aritmética simplificado, es decir, las operaciones realizadas en el campo binario pueden representarse en una forma algebraica compacta y fácil de verificar. Estas características, junto con la capacidad de aprovechar plenamente su naturaleza jerárquica a través de la estructura de torre, hacen que el campo binario sea especialmente adecuado para sistemas de prueba escalables como Binius.
Donde "canónico" se refiere a la representación única y directa de un elemento en el campo binario. Por ejemplo, en el campo binario más básico F2, cualquier cadena de k bits se puede mapear directamente a un elemento del campo binario de k bits. Esto es diferente del campo primo, que no puede proporcionar esta representación canónica dentro de un número de bits dado. Aunque un campo primo de 32 bits puede caber en 32 bits, no cada cadena de 32 bits puede corresponder de manera única a un elemento del campo, mientras que el campo binario tiene esta conveniencia de mapeo uno a uno. En el campo primo Fp, los métodos de reducción comunes incluyen la reducción de Barrett, la reducción de Montgomery, y métodos de reducción especiales para campos finitos específicos como Mersenne-31 o Goldilocks-64. En el campo binario F2k, los métodos de reducción comunes incluyen la reducción especial (como se utiliza en AES), la reducción de Montgomery (como se utiliza en POLYVAL) y la reducción recursiva (como Tower). El artículo "Exploring the Design Space of Prime Field vs. Binary Field ECC-Hardware Implementations" señala que el campo binario no requiere llevar en las operaciones de suma y multiplicación, y que la operación de cuadrado en el campo binario es muy eficiente, ya que sigue la regla simplificada de (X + Y )2 = X2 + Y 2.
Como se muestra en la Figura 1, una cadena de 128 bits: esta cadena se puede interpretar de múltiples maneras en el contexto de un dominio binario. Puede ser vista como un elemento único en un dominio binario de 128 bits, o ser desglosada en dos elementos de dominio de torre de 64 bits, cuatro elementos de dominio de torre de 32 bits, 16 elementos de dominio de torre de 8 bits, o 128 elementos del dominio F2. Esta flexibilidad de representación no requiere ningún costo computacional, solo una conversión de tipo de la cadena de bits, lo cual es una propiedad muy interesante y útil. Al mismo tiempo, los elementos de dominio pequeños pueden ser empaquetados en elementos de dominio más grandes sin necesidad de costos computacionales adicionales. El protocolo Binius aprovecha esta característica para mejorar la eficiencia computacional. Además, el artículo "On Efficient Inversion in Tower Fields of Characteristic Two" explora la complejidad computacional de las operaciones de multiplicación, cuadrado e inversión en dominios binarios de torre de n bits (descomponibles en subdominios de m bits).
2.2 PIOP: versión adaptada de HyperPlonk Product y PermutationCheck------aplicable a campos binarios
El diseño de PIOP en el protocolo Binius se inspira en HyperPlonk y utiliza una serie de mecanismos de verificación centrales para validar la corrección de polinomios y conjuntos de múltiples variables. Estas verificaciones centrales incluyen:
GateCheck: Verificar si el testimonio confidencial ω y la entrada pública x satisfacen la relación de operación del circuito C(x,ω)=0, para asegurar que el circuito funcione correctamente.
PermutationCheck: Verifica si los resultados de evaluación de dos polinomios multivariables f y g en el hipercubo booleano son una relación de permutación f(x) = f(π(x)), para asegurar la consistencia de las permutaciones entre las variables del polinomio.
LookupCheck: Verifica si la evaluación del polinomio está en la tabla de búsqueda dada, es decir, f(Bµ) ⊆ T(Bµ), asegurando que ciertos valores estén dentro del rango especificado.
MultisetCheck: Verifica si dos conjuntos multivariables son iguales, es decir, {(x1,i,x2,)}i∈H={(y1,i,y2,)}i∈H, garantizando la consistencia entre múltiples conjuntos.
ProductCheck: Verifica si la evaluación de un polinomio racional en el hipercubo booleano es igual a un valor declarado ∏x∈Hµ f(x) = s, para asegurar la corrección del producto polinómico.
ZeroCheck: Verificar si un polinomio multivariable en el hipercubo booleano en cualquier punto es cero ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, para asegurar la distribución de los ceros del polinomio.
SumCheck: Detecta si la suma de un polinomio multivariable es igual al valor declarado ∑x∈Hµ f(x) = s. Al convertir el problema de evaluación del polinomio multivariable en la evaluación de un polinomio univariable, se reduce la complejidad computacional para el verificador. Además, SumCheck también permite el procesamiento por lotes al introducir números aleatorios, construyendo combinaciones lineales para llevar a cabo el procesamiento por lotes de múltiples instancias de verificación de suma.
BatchCheck: Basado en SumCheck, verifica la corrección de la evaluación de múltiples polinomios multivariables para mejorar la eficiencia del protocolo.
A pesar de que Binius y HyperPlonk tienen muchas similitudes en el diseño del protocolo, Binius ha mejorado en los siguientes 3 aspectos:
Optimización de ProductCheck: En HyperPlonk, ProductCheck requiere que el denominador U sea no cero en todo el hipercubo, y que el producto debe ser igual a un valor específico; Binius simplifica este proceso de verificación al especializar este valor a 1, reduciendo así la complejidad computacional.
Manejo del problema de división por cero: HyperPlonk no pudo manejar adecuadamente el caso de división por cero, lo que llevó a no poder afirmar que U es no cero en el hipercubo; Binius manejó correctamente este problema, incluso en el caso de que el denominador sea cero, el ProductCheck de Binius puede continuar procesándose, permitiendo la generalización a cualquier valor de producto.
Comprobación de Permutación entre Columnas: HyperPlonk no tiene esta función; Binius admite la comprobación de permutaciones entre múltiples columnas, lo que permite a Binius manejar situaciones de permutación polinómica más complejas.
Por lo tanto, Binius ha mejorado el mecanismo PIOPSumCheck existente, aumentando la flexibilidad y eficiencia del protocolo, especialmente al manejar la verificación de polinomios multivariables más complejos, proporcionando un soporte funcional más robusto. Estas mejoras no solo abordan las limitaciones en HyperPlonk, sino que también establecen una base para futuros sistemas de prueba basados en dominios binarios.
2.3 PIOP: nuevo argumento de desplazamiento multilineal ------ aplicable al hipercubo booleano
En el protocolo Binius, la construcción y el manejo de polinomios virtuales son una de las tecnologías clave, capaces de generar y operar de manera efectiva polinomios derivados de manejadores de entrada u otros polinomios virtuales. A continuación se presentan dos métodos clave:
Empaque: Este método funciona al tomar el menor de las posiciones adyacentes en el orden del diccionario.
Ver originales
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
6 me gusta
Recompensa
6
3
Compartir
Comentar
0/400
SleepyArbCat
· hace17h
Ha... anoche el airdrop de gas acumuló unos k bits, casi me muero de sueño.
Ver originalesResponder0
SolidityJester
· hace17h
¿Puede soportar 32 bits? La imaginación es bastante grande.
Ver originalesResponder0
DeFiChef
· hace17h
¿De qué está hablando esta persona? Me está doliendo la cabeza.
Binius STARKs: sistema de prueba eficiente bajo optimización de dominio binario
Análisis de los principios de Binius STARKs y reflexiones sobre su optimización
1. Introducción
A diferencia de los SNARKs basados en curvas elípticas, los STARKs pueden considerarse como SNARKs basados en hash. Una de las principales razones de la baja eficiencia de los STARKs en la actualidad es que la mayoría de los números en los programas reales son bastante pequeños, como los índices en los bucles for, los valores booleanos, los contadores, etc. Sin embargo, para garantizar la seguridad de las pruebas basadas en árboles de Merkle, al usar codificación de Reed-Solomon para extender los datos, muchos valores redundantes adicionales ocuparán todo el dominio, incluso si el valor original es muy pequeño. Para abordar este problema, reducir el tamaño del dominio se ha convertido en una estrategia clave.
La anchura de codificación de la primera generación de STARKs es de 252 bits, la de la segunda generación de STARKs es de 64 bits, y la de la tercera generación de STARKs es de 32 bits, pero la anchura de codificación de 32 bits todavía tiene un gran desperdicio de espacio. En comparación, el dominio binario permite operar directamente sobre los bits, con una codificación compacta y eficiente sin ningún espacio desperdiciado, es decir, la cuarta generación de STARKs.
En comparación con los campos finitos descubiertos en investigaciones recientes como Goldilocks, BabyBear y Mersenne31, la investigación sobre los campos binarios se remonta a la década de 1980. Actualmente, los campos binarios se utilizan ampliamente en criptografía, ejemplos típicos incluyen:
Estándar de Cifrado Avanzado ( AES ), basado en el campo F28;
Galois código de autenticación de mensajes ( GMAC ), basado en el campo F2128;
Código QR, que utiliza codificación Reed-Solomon basada en F28;
Protocolo FRI original y zk-STARK, así como la función hash Grøstl que llegó a la final de SHA-3, que se basa en el campo F28, es un algoritmo de hash muy adecuado para la recursión.
Cuando se utilizan dominios más pequeños, la operación de extensión de dominio se vuelve cada vez más importante para garantizar la seguridad. Y el dominio binario utilizado por Binius depende completamente de la extensión de dominio para garantizar su seguridad y usabilidad práctica. La mayoría de los polinomios involucrados en los cálculos de Prover no necesitan entrar en la extensión de dominio, sino que solo operan en el dominio base, logrando así una alta eficiencia en dominios pequeños. Sin embargo, las verificaciones de puntos aleatorios y los cálculos de FRI aún requieren profundizar en un dominio de extensión más grande para garantizar la seguridad necesaria.
Al construir un sistema de pruebas basado en el dominio binario, existen 2 problemas prácticos: al calcular la representación de traza en STARKs, el tamaño del dominio utilizado debe ser mayor que el grado del polinomio; al comprometer el árbol de Merkle en STARKs, se debe realizar la codificación de Reed-Solomon, y el tamaño del dominio utilizado debe ser mayor que el tamaño después de la expansión de la codificación.
Binius propuso una solución innovadora para abordar estos dos problemas, y lograrlo representando los mismos datos de dos maneras diferentes: primero, utilizando un polinomio multivariable (específicamente un polinomio multilineal) en lugar de un polinomio univariable, representando toda la trayectoria computacional a través de sus valores en "hipercubos"; en segundo lugar, dado que la longitud de cada dimensión del hipercubo es 2, no se puede realizar una extensión estándar de Reed-Solomon como en los STARKs, pero se puede considerar el hipercubo como un cuadrado, y realizar la extensión de Reed-Solomon basada en ese cuadrado. Este método, al garantizar la seguridad, mejora significativamente la eficiencia de codificación y el rendimiento computacional.
2. Análisis de principios
La construcción de la mayoría de los sistemas SNARKs actuales generalmente incluye las siguientes dos partes:
Prueba de Oráculo Interactivo Polinómico de Teoría de la Información (Information-Theoretic Polynomial Interactive Oracle Proof, PIOP): PIOP como núcleo del sistema de prueba transforma las relaciones computacionales de entrada en ecuaciones polinómicas verificables. Diferentes protocolos PIOP permiten al probador enviar polinomios de manera incremental a través de la interacción con el validador, de modo que el validador puede verificar si el cálculo es correcto consultando los resultados de evaluación de unos pocos polinomios. Los protocolos PIOP existentes incluyen: PIOP PLONK, PIOP Spartan y PIOP HyperPlonk, cada uno de los cuales tiene diferentes enfoques para el manejo de expresiones polinómicas, lo que afecta el rendimiento y la eficiencia de todo el sistema SNARK.
Esquema de Compromiso Polinómico (Polynomial Commitment Scheme, PCS): El esquema de compromiso polinómico se utiliza para probar si se cumple la igualdad polinómica generada por PIOP. El PCS es una herramienta criptográfica que permite al probador comprometerse a un polinomio y posteriormente verificar el resultado de la evaluación de ese polinomio, mientras oculta otra información sobre el polinomio. Los esquemas de compromiso polinómico comunes incluyen KZG, Bulletproofs, FRI (Fast Reed-Solomon IOPP) y Brakedown, entre otros. Diferentes PCS tienen diferentes rendimientos, seguridad y escenarios de aplicación.
Según las necesidades específicas, elija diferentes PIOP y PCS, y combine con un campo finito adecuado o una curva elíptica, se puede construir un sistema de prueba con diferentes atributos. Por ejemplo:
• Halo2: combina PLONK PIOP y Bulletproofs PCS, y está basado en la curva Pasta. En el diseño de Halo2, se presta atención a la escalabilidad y se elimina el trusted setup del protocolo ZCash.
• Plonky2: combina PLONK PIOP con FRI PCS y se basa en el dominio de Goldilocks. Plonky2 está diseñado para lograr una recursividad eficiente. Al diseñar estos sistemas, la PIOP y el PCS elegidos deben coincidir con el campo finito o la curva elíptica utilizada para garantizar la corrección, el rendimiento y la seguridad del sistema. La elección de estas combinaciones no solo afecta el tamaño de la prueba SNARK y la eficiencia de la verificación, sino que también determina si el sistema puede lograr transparencia sin una configuración de confianza y si puede soportar funciones de expansión como pruebas recursivas o pruebas agregadas.
Binius: HyperPlonk PIOP + Brakedown PCS + dominio binario. En concreto, Binius incluye cinco tecnologías clave para lograr su eficiencia y seguridad. Primero, la aritmética basada en torres de dominios binarios constituye la base de su cálculo, permitiendo realizar operaciones simplificadas dentro del dominio binario. En segundo lugar, Binius adapta las verificaciones de productos y permutaciones de HyperPlonk en su protocolo de prueba Oracle interactivo (PIOP), asegurando una verificación de consistencia segura y eficiente entre las variables y sus permutaciones. En tercer lugar, el protocolo introduce una nueva prueba de desplazamiento multilineal, optimizando la eficiencia de la verificación de relaciones multilineales en pequeños dominios. Cuarto, Binius utiliza una versión mejorada de la prueba de búsqueda Lasso, proporcionando flexibilidad y una fuerte seguridad al mecanismo de búsqueda. Finalmente, el protocolo emplea un esquema de compromiso de polinomios de pequeño dominio (Small-Field PCS), lo que le permite implementar un sistema de prueba eficiente en el dominio binario y reducir los costos generalmente asociados con dominios grandes.
2.1 Campos finitos: aritmética basada en torres de campos binarios
El campo binario en torre es clave para realizar cálculos verificables rápidos, principalmente debido a dos aspectos: cálculos eficientes y aritmética eficiente. El campo binario, por su naturaleza, admite operaciones aritméticas altamente eficientes, lo que lo convierte en una opción ideal para aplicaciones criptográficas que son sensibles a los requisitos de rendimiento. Además, la estructura del campo binario soporta un proceso de aritmética simplificado, es decir, las operaciones realizadas en el campo binario pueden representarse en una forma algebraica compacta y fácil de verificar. Estas características, junto con la capacidad de aprovechar plenamente su naturaleza jerárquica a través de la estructura de torre, hacen que el campo binario sea especialmente adecuado para sistemas de prueba escalables como Binius.
Donde "canónico" se refiere a la representación única y directa de un elemento en el campo binario. Por ejemplo, en el campo binario más básico F2, cualquier cadena de k bits se puede mapear directamente a un elemento del campo binario de k bits. Esto es diferente del campo primo, que no puede proporcionar esta representación canónica dentro de un número de bits dado. Aunque un campo primo de 32 bits puede caber en 32 bits, no cada cadena de 32 bits puede corresponder de manera única a un elemento del campo, mientras que el campo binario tiene esta conveniencia de mapeo uno a uno. En el campo primo Fp, los métodos de reducción comunes incluyen la reducción de Barrett, la reducción de Montgomery, y métodos de reducción especiales para campos finitos específicos como Mersenne-31 o Goldilocks-64. En el campo binario F2k, los métodos de reducción comunes incluyen la reducción especial (como se utiliza en AES), la reducción de Montgomery (como se utiliza en POLYVAL) y la reducción recursiva (como Tower). El artículo "Exploring the Design Space of Prime Field vs. Binary Field ECC-Hardware Implementations" señala que el campo binario no requiere llevar en las operaciones de suma y multiplicación, y que la operación de cuadrado en el campo binario es muy eficiente, ya que sigue la regla simplificada de (X + Y )2 = X2 + Y 2.
Como se muestra en la Figura 1, una cadena de 128 bits: esta cadena se puede interpretar de múltiples maneras en el contexto de un dominio binario. Puede ser vista como un elemento único en un dominio binario de 128 bits, o ser desglosada en dos elementos de dominio de torre de 64 bits, cuatro elementos de dominio de torre de 32 bits, 16 elementos de dominio de torre de 8 bits, o 128 elementos del dominio F2. Esta flexibilidad de representación no requiere ningún costo computacional, solo una conversión de tipo de la cadena de bits, lo cual es una propiedad muy interesante y útil. Al mismo tiempo, los elementos de dominio pequeños pueden ser empaquetados en elementos de dominio más grandes sin necesidad de costos computacionales adicionales. El protocolo Binius aprovecha esta característica para mejorar la eficiencia computacional. Además, el artículo "On Efficient Inversion in Tower Fields of Characteristic Two" explora la complejidad computacional de las operaciones de multiplicación, cuadrado e inversión en dominios binarios de torre de n bits (descomponibles en subdominios de m bits).
2.2 PIOP: versión adaptada de HyperPlonk Product y PermutationCheck------aplicable a campos binarios
El diseño de PIOP en el protocolo Binius se inspira en HyperPlonk y utiliza una serie de mecanismos de verificación centrales para validar la corrección de polinomios y conjuntos de múltiples variables. Estas verificaciones centrales incluyen:
GateCheck: Verificar si el testimonio confidencial ω y la entrada pública x satisfacen la relación de operación del circuito C(x,ω)=0, para asegurar que el circuito funcione correctamente.
PermutationCheck: Verifica si los resultados de evaluación de dos polinomios multivariables f y g en el hipercubo booleano son una relación de permutación f(x) = f(π(x)), para asegurar la consistencia de las permutaciones entre las variables del polinomio.
LookupCheck: Verifica si la evaluación del polinomio está en la tabla de búsqueda dada, es decir, f(Bµ) ⊆ T(Bµ), asegurando que ciertos valores estén dentro del rango especificado.
MultisetCheck: Verifica si dos conjuntos multivariables son iguales, es decir, {(x1,i,x2,)}i∈H={(y1,i,y2,)}i∈H, garantizando la consistencia entre múltiples conjuntos.
ProductCheck: Verifica si la evaluación de un polinomio racional en el hipercubo booleano es igual a un valor declarado ∏x∈Hµ f(x) = s, para asegurar la corrección del producto polinómico.
ZeroCheck: Verificar si un polinomio multivariable en el hipercubo booleano en cualquier punto es cero ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, para asegurar la distribución de los ceros del polinomio.
SumCheck: Detecta si la suma de un polinomio multivariable es igual al valor declarado ∑x∈Hµ f(x) = s. Al convertir el problema de evaluación del polinomio multivariable en la evaluación de un polinomio univariable, se reduce la complejidad computacional para el verificador. Además, SumCheck también permite el procesamiento por lotes al introducir números aleatorios, construyendo combinaciones lineales para llevar a cabo el procesamiento por lotes de múltiples instancias de verificación de suma.
BatchCheck: Basado en SumCheck, verifica la corrección de la evaluación de múltiples polinomios multivariables para mejorar la eficiencia del protocolo.
A pesar de que Binius y HyperPlonk tienen muchas similitudes en el diseño del protocolo, Binius ha mejorado en los siguientes 3 aspectos:
Optimización de ProductCheck: En HyperPlonk, ProductCheck requiere que el denominador U sea no cero en todo el hipercubo, y que el producto debe ser igual a un valor específico; Binius simplifica este proceso de verificación al especializar este valor a 1, reduciendo así la complejidad computacional.
Manejo del problema de división por cero: HyperPlonk no pudo manejar adecuadamente el caso de división por cero, lo que llevó a no poder afirmar que U es no cero en el hipercubo; Binius manejó correctamente este problema, incluso en el caso de que el denominador sea cero, el ProductCheck de Binius puede continuar procesándose, permitiendo la generalización a cualquier valor de producto.
Comprobación de Permutación entre Columnas: HyperPlonk no tiene esta función; Binius admite la comprobación de permutaciones entre múltiples columnas, lo que permite a Binius manejar situaciones de permutación polinómica más complejas.
Por lo tanto, Binius ha mejorado el mecanismo PIOPSumCheck existente, aumentando la flexibilidad y eficiencia del protocolo, especialmente al manejar la verificación de polinomios multivariables más complejos, proporcionando un soporte funcional más robusto. Estas mejoras no solo abordan las limitaciones en HyperPlonk, sino que también establecen una base para futuros sistemas de prueba basados en dominios binarios.
2.3 PIOP: nuevo argumento de desplazamiento multilineal ------ aplicable al hipercubo booleano
En el protocolo Binius, la construcción y el manejo de polinomios virtuales son una de las tecnologías clave, capaces de generar y operar de manera efectiva polinomios derivados de manejadores de entrada u otros polinomios virtuales. A continuación se presentan dos métodos clave: