Análisis del principio de Binius STARKs y reflexiones sobre su optimización
1. Introducción
Una de las principales razones de la baja eficiencia de STARKs es que la mayoría de los valores en los programas reales son bastante pequeños, como los índices en los bucles for, valores booleanos, contadores, etc. Sin embargo, para garantizar la seguridad de las pruebas basadas en árboles de Merkle, al expandir los datos utilizando codificación de Reed-Solomon, muchos valores redundantes adicionales ocuparán todo el campo, incluso si el valor original en sí es muy pequeño. Para abordar este problema, reducir el tamaño del campo 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 es de 64 bits, y la de la tercera generación es de 32 bits, pero la codificación de 32 bits todavía presenta una gran cantidad de espacio desperdiciado. En comparación, el campo binario permite operar directamente en los bits, codificando de manera compacta y eficiente sin espacio desperdiciado, es decir, la cuarta generación de STARKs.
En comparación con Goldilocks, BabyBear, Mersenne31 y otros descubrimientos recientes sobre campos finitos, la investigación sobre campos binarios se remonta a la década de 1980. Actualmente, los campos binarios se utilizan ampliamente en criptografía, y ejemplos típicos incluyen:
Estándar de Cifrado Avanzado ( AES ), basado en el campo F28;
Código de autenticación de mensajes Galois ( GMAC ), basado en el campo F2128;
Código QR, 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 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. El dominio binario utilizado por Binius depende completamente de la extensión de dominio para garantizar su seguridad y viabilidad 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 operan únicamente en el dominio base, logrando así alta eficiencia en dominios pequeños. Sin embargo, la verificación de puntos aleatorios y el cálculo de FRI aún deben profundizar en dominios de extensión más grandes para asegurar la seguridad requerida.
Al construir un sistema de pruebas basado en el dominio binario, existen 2 problemas prácticos: al calcular la representación de la 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 ha propuesto una solución innovadora que aborda estos dos problemas por separado y logra representar los mismos datos de dos maneras diferentes: primero, utilizando un polinomio multivariable ( en lugar de un polinomio univariable, representando toda la trayectoria de cálculo 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 dicho cuadrado. Este método, al asegurar la seguridad, mejora en gran medida la eficiencia de codificación y el rendimiento de cálculo.
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 Oracle Interactiva Polinómica Teórica de la Información ) Information-Theoretic Polynomial Interactive Oracle Proof, PIOP(: PIOP, como el 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 gradual a través de la interacción con el validador, de modo que el validador pueda verificar si el cálculo es correcto consultando solo unos pocos resultados de evaluación de polinomios. Los protocolos PIOP existentes incluyen: PIOP PLONK, PIOP Spartan y PIOP HyperPlonk, cada uno de los cuales tiene diferentes enfoques para el tratamiento 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 una igualdad polinómica generada por PIOP. PCS es una herramienta criptográfica que permite al probador comprometerse a un polinomio y verificar más tarde los resultados de la evaluación de ese polinomio, mientras oculta otra información sobre el polinomio. Los esquemas de compromiso polinómico más comunes son KZG, Bulletproofs, FRI ) Fast Reed-Solomon IOPP ( y Brakedown, entre otros. Diferentes PCS tienen diferentes rendimientos, seguridades y escenarios de aplicación.
Según las necesidades específicas, elija diferentes PIOP y PCS, y combine con un campo finito o una curva elíptica adecuada, se puede construir un sistema de prueba con diferentes atributos. Por ejemplo:
• Halo2: combinado de PLONK PIOP y Bulletproofs PCS, basado en la curva Pasta. Halo2 se diseñó con un enfoque en la escalabilidad y en eliminar la configuración de confianza del protocolo ZCash.
• Plonky2: utiliza PLONK PIOP y FRI PCS combinados, 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 la PCS seleccionadas 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 verificación, sino que también determina si el sistema puede lograr transparencia sin necesidad de una configuración confiable, y si puede admitir funciones extendidas como pruebas recursivas o pruebas de agregación.
Binius: HyperPlonk PIOP + Brakedown PCS + dominios binarios. Concretamente, Binius incluye cinco tecnologías clave para lograr su eficiencia y seguridad. Primero, la aritmética basada en torres de dominios binarios )towers of binary fields( constituye la base de su cálculo, permitiendo realizar operaciones simplificadas dentro del dominio binario. En segundo lugar, Binius adapta la verificación de productos y permutaciones de HyperPlonk en su protocolo de prueba Oracle interactivo )PIOP(, asegurando una verificación consistente, segura y eficiente entre las variables y sus permutaciones. Tercero, 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 sólida seguridad para el mecanismo de búsqueda. Finalmente, el protocolo utiliza un esquema de compromiso polinómico de pequeños dominios )Small-Field PCS(, permitiendo un sistema de pruebas eficiente en el dominio binario y reduciendo los costos asociados normalmente con los dominios grandes.
) 2.1 Campo finito: aritmética basada en torres de campos binarios
Los campos binarios en torre son clave para lograr cálculos verificables rápidos, principalmente debido a dos aspectos: el cálculo eficiente y la aritmética eficiente. Los campos binarios, en esencia, soportan operaciones aritméticas altamente eficientes, lo que los convierte en una elección ideal para aplicaciones criptográficas sensibles al rendimiento. Además, la estructura del campo binario apoya un proceso de aritmética simplificado, es decir, las operaciones realizadas sobre el campo binario pueden expresarse en una forma algebraica compacta y fácil de verificar. Estas características, junto con la capacidad de aprovechar plenamente sus características jerárquicas a través de la estructura de torre, hacen que el campo binario sea particularmente adecuado para sistemas de prueba escalables como Binius.
Donde "canonical" se refiere a la representación única y directa de elementos 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 de 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 fijo de bits. Aunque el campo primo de 32 bits puede contenerse en 32 bits, no cada cadena de 32 bits puede corresponder de manera única a un elemento de 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, así como 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 comúnmente utilizados 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 en el campo binario no es necesario introducir acarreo en las operaciones de adición 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 + Y2.
Como se muestra en la figura 1, una cadena de 128 bits: esta cadena se puede interpretar de diversas maneras en el contexto del campo binario. Puede ser considerada un elemento único en un campo binario de 128 bits, o ser descompuesta en dos elementos de campo torre de 64 bits, cuatro elementos de campo torre de 32 bits, 16 elementos de campo torre de 8 bits, o 128 elementos de campo F2. Esta flexibilidad en la representación no requiere ningún costo computacional, solo una conversión de tipo de cadena de bits )typecast(, lo cual es una propiedad muy interesante y útil. Al mismo tiempo, los elementos de campo pequeños pueden ser empaquetados en elementos de campo más grandes sin necesidad de costos computacionales adicionales. El protocolo Binius se beneficia de 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 realizar multiplicaciones, cuadrados y operaciones de inversión en un campo binario de torre de n bits ) descompuesto en un subcampo de m bits (.
![Investigación de Bitlayer: Análisis de los principios de Binius STARKs y reflexiones sobre su optimización])https://img-cdn.gateio.im/webp-social/moments-5775a629f494c4e01e2b74d864fa4100.webp(
) 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 basa en HyperPlonk, utilizando una serie de mecanismos de verificación centrales para validar la corrección de polinomios y conjuntos multivariables. Estas verificaciones centrales incluyen:
GateCheck: Verifica si el testigo de confidencialidad ω y la entrada pública x cumplen con la relación de operación del circuito C(x, ω)=0, para asegurar que el circuito funcione correctamente.
PermutationCheck: Verificar 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 la permutación entre las variables del polinomio.
LookupCheck: Verificar 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 varios conjuntos.
ProductCheck: Verificar si la evaluación de un polinomio racional en el hipercubo booleano es igual a un valor declarado ∏x∈Hµ f)x( = s, para garantizar la corrección del producto del polinomio.
ZeroCheck: Verifica 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: Verifica si la suma de un polinomio multivariable es igual al valor declarado ∑x∈Hµ f)x( = s. Al transformar el problema de evaluación de un 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, introduciendo números aleatorios para construir combinaciones lineales que permiten procesar múltiples instancias de verificación de sumas.
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 realizado mejoras en los siguientes 3 aspectos:
Optimización de ProductCheck: en HyperPlonk, ProductCheck requiere que el denominador U sea siempre distinto de cero en el hipercubo, y que el producto sea igual a un valor específico; Binius simplifica este proceso de verificación al especializar ese valor en 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 diferente de 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 procesando, permitiendo la generalización a cualquier valor de producto.
PermutationCheck de columnas cruzadas: HyperPlonk no tiene esta función; Binius admite la verificación de permutaciones entre múltiples columnas, lo que permite a Binius manejar situaciones de arreglos polinómicos más complejas.
Por lo tanto, Binius ha mejorado la flexibilidad y eficiencia del protocolo mediante la mejora del mecanismo PIOPSumCheck existente, proporcionando un soporte funcional más fuerte, especialmente al manejar validaciones de polinomios multivariantes más complejas. Estas mejoras no solo abordan las limitaciones en HyperPlonk, sino que también establecen una base para futuros sistemas de prueba basados en campos binarios.
) 2.3 PIOP: nuevo argumento de cambio multilineal------aplicable a hipercubo booleano
En el protocolo Binius, la construcción y el manejo de polinomios virtuales es una de las técnicas clave, capaz de generar y operar eficazmente polinomios derivados de un manejador de entrada u otros polinomios virtuales. A continuación se presentan dos métodos clave:
Empaque: Este método optimiza la operación empaquetando elementos más pequeños en posiciones adyacentes en el orden del diccionario en elementos más grandes. El operador Pack está diseñado para bloques de tamaño 2κ y los combina en alto
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.
25 me gusta
Recompensa
25
7
Compartir
Comentar
0/400
ChainSpy
· 07-06 02:52
¿Solo esto? El enfoque es realmente nuevo.
Ver originalesResponder0
GasFeeCryer
· 07-05 11:30
Otra vez promoviendo la mejora del rendimiento, estoy un poco cansado.
Ver originalesResponder0
GasFeeBarbecue
· 07-04 15:47
La nueva versión de stark es realmente difícil de debilitar~
Ver originalesResponder0
RuntimeError
· 07-04 15:47
No puedo manejarlo bien en 32 bits, ¿cuándo intentaré con 2 bits?
Ver originalesResponder0
OnchainGossiper
· 07-04 15:36
¿Cómo manejar el desperdicio de espacio? ¡La clave está en reducir el ámbito!
Ver originalesResponder0
BoredStaker
· 07-04 15:28
¿A quién le importa el ancho de banda? Solo quiero saber cuándo funcionará y se implementará.
Ver originalesResponder0
SmartContractPlumber
· 07-04 15:22
El problema del tamaño del dominio es como el reingreso de theDAO en 2016, ambos son debilidades de la infraestructura.
Mejoras de Binius STARKs: sistema de pruebas de conocimiento cero eficiente basado en campos binarios
Análisis del principio de Binius STARKs y reflexiones sobre su optimización
1. Introducción
Una de las principales razones de la baja eficiencia de STARKs es que la mayoría de los valores en los programas reales son bastante pequeños, como los índices en los bucles for, valores booleanos, contadores, etc. Sin embargo, para garantizar la seguridad de las pruebas basadas en árboles de Merkle, al expandir los datos utilizando codificación de Reed-Solomon, muchos valores redundantes adicionales ocuparán todo el campo, incluso si el valor original en sí es muy pequeño. Para abordar este problema, reducir el tamaño del campo 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 es de 64 bits, y la de la tercera generación es de 32 bits, pero la codificación de 32 bits todavía presenta una gran cantidad de espacio desperdiciado. En comparación, el campo binario permite operar directamente en los bits, codificando de manera compacta y eficiente sin espacio desperdiciado, es decir, la cuarta generación de STARKs.
En comparación con Goldilocks, BabyBear, Mersenne31 y otros descubrimientos recientes sobre campos finitos, la investigación sobre campos binarios se remonta a la década de 1980. Actualmente, los campos binarios se utilizan ampliamente en criptografía, y ejemplos típicos incluyen:
Estándar de Cifrado Avanzado ( AES ), basado en el campo F28;
Código de autenticación de mensajes Galois ( GMAC ), basado en el campo F2128;
Código QR, 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 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. El dominio binario utilizado por Binius depende completamente de la extensión de dominio para garantizar su seguridad y viabilidad 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 operan únicamente en el dominio base, logrando así alta eficiencia en dominios pequeños. Sin embargo, la verificación de puntos aleatorios y el cálculo de FRI aún deben profundizar en dominios de extensión más grandes para asegurar la seguridad requerida.
Al construir un sistema de pruebas basado en el dominio binario, existen 2 problemas prácticos: al calcular la representación de la 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 ha propuesto una solución innovadora que aborda estos dos problemas por separado y logra representar los mismos datos de dos maneras diferentes: primero, utilizando un polinomio multivariable ( en lugar de un polinomio univariable, representando toda la trayectoria de cálculo 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 dicho cuadrado. Este método, al asegurar la seguridad, mejora en gran medida la eficiencia de codificación y el rendimiento de cálculo.
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 Oracle Interactiva Polinómica Teórica de la Información ) Information-Theoretic Polynomial Interactive Oracle Proof, PIOP(: PIOP, como el 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 gradual a través de la interacción con el validador, de modo que el validador pueda verificar si el cálculo es correcto consultando solo unos pocos resultados de evaluación de polinomios. Los protocolos PIOP existentes incluyen: PIOP PLONK, PIOP Spartan y PIOP HyperPlonk, cada uno de los cuales tiene diferentes enfoques para el tratamiento 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 una igualdad polinómica generada por PIOP. PCS es una herramienta criptográfica que permite al probador comprometerse a un polinomio y verificar más tarde los resultados de la evaluación de ese polinomio, mientras oculta otra información sobre el polinomio. Los esquemas de compromiso polinómico más comunes son KZG, Bulletproofs, FRI ) Fast Reed-Solomon IOPP ( y Brakedown, entre otros. Diferentes PCS tienen diferentes rendimientos, seguridades y escenarios de aplicación.
Según las necesidades específicas, elija diferentes PIOP y PCS, y combine con un campo finito o una curva elíptica adecuada, se puede construir un sistema de prueba con diferentes atributos. Por ejemplo:
• Halo2: combinado de PLONK PIOP y Bulletproofs PCS, basado en la curva Pasta. Halo2 se diseñó con un enfoque en la escalabilidad y en eliminar la configuración de confianza del protocolo ZCash.
• Plonky2: utiliza PLONK PIOP y FRI PCS combinados, 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 la PCS seleccionadas 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 verificación, sino que también determina si el sistema puede lograr transparencia sin necesidad de una configuración confiable, y si puede admitir funciones extendidas como pruebas recursivas o pruebas de agregación.
Binius: HyperPlonk PIOP + Brakedown PCS + dominios binarios. Concretamente, Binius incluye cinco tecnologías clave para lograr su eficiencia y seguridad. Primero, la aritmética basada en torres de dominios binarios )towers of binary fields( constituye la base de su cálculo, permitiendo realizar operaciones simplificadas dentro del dominio binario. En segundo lugar, Binius adapta la verificación de productos y permutaciones de HyperPlonk en su protocolo de prueba Oracle interactivo )PIOP(, asegurando una verificación consistente, segura y eficiente entre las variables y sus permutaciones. Tercero, 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 sólida seguridad para el mecanismo de búsqueda. Finalmente, el protocolo utiliza un esquema de compromiso polinómico de pequeños dominios )Small-Field PCS(, permitiendo un sistema de pruebas eficiente en el dominio binario y reduciendo los costos asociados normalmente con los dominios grandes.
) 2.1 Campo finito: aritmética basada en torres de campos binarios
Los campos binarios en torre son clave para lograr cálculos verificables rápidos, principalmente debido a dos aspectos: el cálculo eficiente y la aritmética eficiente. Los campos binarios, en esencia, soportan operaciones aritméticas altamente eficientes, lo que los convierte en una elección ideal para aplicaciones criptográficas sensibles al rendimiento. Además, la estructura del campo binario apoya un proceso de aritmética simplificado, es decir, las operaciones realizadas sobre el campo binario pueden expresarse en una forma algebraica compacta y fácil de verificar. Estas características, junto con la capacidad de aprovechar plenamente sus características jerárquicas a través de la estructura de torre, hacen que el campo binario sea particularmente adecuado para sistemas de prueba escalables como Binius.
Donde "canonical" se refiere a la representación única y directa de elementos 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 de 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 fijo de bits. Aunque el campo primo de 32 bits puede contenerse en 32 bits, no cada cadena de 32 bits puede corresponder de manera única a un elemento de 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, así como 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 comúnmente utilizados 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 en el campo binario no es necesario introducir acarreo en las operaciones de adición 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 + Y2.
Como se muestra en la figura 1, una cadena de 128 bits: esta cadena se puede interpretar de diversas maneras en el contexto del campo binario. Puede ser considerada un elemento único en un campo binario de 128 bits, o ser descompuesta en dos elementos de campo torre de 64 bits, cuatro elementos de campo torre de 32 bits, 16 elementos de campo torre de 8 bits, o 128 elementos de campo F2. Esta flexibilidad en la representación no requiere ningún costo computacional, solo una conversión de tipo de cadena de bits )typecast(, lo cual es una propiedad muy interesante y útil. Al mismo tiempo, los elementos de campo pequeños pueden ser empaquetados en elementos de campo más grandes sin necesidad de costos computacionales adicionales. El protocolo Binius se beneficia de 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 realizar multiplicaciones, cuadrados y operaciones de inversión en un campo binario de torre de n bits ) descompuesto en un subcampo de m bits (.
![Investigación de Bitlayer: Análisis de los principios de Binius STARKs y reflexiones sobre su optimización])https://img-cdn.gateio.im/webp-social/moments-5775a629f494c4e01e2b74d864fa4100.webp(
) 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 basa en HyperPlonk, utilizando una serie de mecanismos de verificación centrales para validar la corrección de polinomios y conjuntos multivariables. Estas verificaciones centrales incluyen:
GateCheck: Verifica si el testigo de confidencialidad ω y la entrada pública x cumplen con la relación de operación del circuito C(x, ω)=0, para asegurar que el circuito funcione correctamente.
PermutationCheck: Verificar 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 la permutación entre las variables del polinomio.
LookupCheck: Verificar 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 varios conjuntos.
ProductCheck: Verificar si la evaluación de un polinomio racional en el hipercubo booleano es igual a un valor declarado ∏x∈Hµ f)x( = s, para garantizar la corrección del producto del polinomio.
ZeroCheck: Verifica 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: Verifica si la suma de un polinomio multivariable es igual al valor declarado ∑x∈Hµ f)x( = s. Al transformar el problema de evaluación de un 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, introduciendo números aleatorios para construir combinaciones lineales que permiten procesar múltiples instancias de verificación de sumas.
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 realizado mejoras en los siguientes 3 aspectos:
Optimización de ProductCheck: en HyperPlonk, ProductCheck requiere que el denominador U sea siempre distinto de cero en el hipercubo, y que el producto sea igual a un valor específico; Binius simplifica este proceso de verificación al especializar ese valor en 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 diferente de 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 procesando, permitiendo la generalización a cualquier valor de producto.
PermutationCheck de columnas cruzadas: HyperPlonk no tiene esta función; Binius admite la verificación de permutaciones entre múltiples columnas, lo que permite a Binius manejar situaciones de arreglos polinómicos más complejas.
Por lo tanto, Binius ha mejorado la flexibilidad y eficiencia del protocolo mediante la mejora del mecanismo PIOPSumCheck existente, proporcionando un soporte funcional más fuerte, especialmente al manejar validaciones de polinomios multivariantes más complejas. Estas mejoras no solo abordan las limitaciones en HyperPlonk, sino que también establecen una base para futuros sistemas de prueba basados en campos binarios.
) 2.3 PIOP: nuevo argumento de cambio multilineal------aplicable a hipercubo booleano
En el protocolo Binius, la construcción y el manejo de polinomios virtuales es una de las técnicas clave, capaz de generar y operar eficazmente polinomios derivados de un manejador de entrada u otros polinomios virtuales. A continuación se presentan dos métodos clave: