Innovación de Binius: solución de optimización STARKs en el dominio binario

Análisis de los principios de Binius STARKs y reflexiones sobre su optimización

1 Introducción

Una de las principales razones de la ineficiencia de STARKs es que la mayoría de los valores en los programas reales son bastante pequeños, pero para garantizar la seguridad de las pruebas basadas en árboles de Merkle, al usar codificación Reed-Solomon para expandir los datos, muchos valores redundantes adicionales ocuparán todo el campo, incluso si el valor original en sí es muy pequeño. Para resolver este problema, reducir el tamaño del campo se ha convertido en una estrategia clave.

La largura de codificación de la primera generación de STARKs es de 252 bits, la segunda generación de STARKs tiene una largura de codificación de 64 bits, y la tercera generación de STARKs tiene una largura de codificación de 32 bits, pero la largura de codificación de 32 bits aún presenta una gran cantidad de espacio desperdiciado. En comparación, el campo binario permite operar directamente sobre los bits, codificando de manera compacta y eficiente sin ningún espacio desperdiciado, es decir, la cuarta generación de STARKs.

En comparación con los dominios finitos descubiertos en investigaciones recientes como Goldilocks, BabyBear y Mersenne31, la investigación sobre dominios binarios se remonta a la década de 1980. Actualmente, los dominios binarios se han aplicado ampliamente en criptografía, ejemplos típicos incluyen:

  • Estándar de cifrado avanzado ( AES ), basado en el dominio F28;

  • Galois código de autenticación de mensajes ( GMAC ), basado en el dominio 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, basada 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 solo necesitan operar 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 una extensión de dominio más grande para garantizar 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 hacer codificación de Reed-Solomon, y el tamaño del dominio utilizado debe ser mayor que el tamaño ampliado de la codificación.

Binius propuso una solución innovadora que aborda estos dos problemas por separado y logra representar los mismos datos de dos maneras diferentes: en primer lugar, utilizando polinomios multivariables (concretamente polinomios multilineales) en lugar de polinomios univariables, 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 expansión estándar de Reed-Solomon como en los STARKs, pero se puede considerar el hipercubo como un cuadrado, realizando la expansión de Reed-Solomon basada en ese cuadrado. Este método, mientras garantiza la seguridad, mejora enormemente 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 actualmente suele incluir las siguientes dos partes:

  • Prueba de Oráculo Interactivo Polinómico Teórica 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 forma gradual 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 la evaluación de un número reducido de polinomios. Los protocolos PIOP existentes incluyen: PIOP PLONK, PIOP Spartan y PIOP HyperPlonk, entre otros, que manejan las expresiones polinómicas de manera diferente, 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 demostrar si la igualdad polinómica generada por PIOP es válida. PCS es una herramienta criptográfica que permite al probador comprometerse a un polinomio y luego 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, elige diferentes PIOP y PCS, y combina con un campo finito o una curva elíptica adecuada, se puede construir un sistema de pruebas con diferentes atributos. Por ejemplo:

• Halo2: combina PLONK PIOP y Bulletproofs PCS, y se basa en la curva Pasta. Al diseñar Halo2, se prestó atención a la escalabilidad y a la eliminación de la configuración de confianza en el protocolo ZCash.

• Plonky2: utiliza PLONK PIOP combinado con FRI PCS y se basa en el dominio 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 utilizados, 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 un entorno de confianza, y si puede soportar funciones extendidas como pruebas recursivas o pruebas de agregación.

Binius: HyperPlonk PIOP + Brakedown PCS + campos binarios. En concreto, Binius incluye cinco tecnologías clave para lograr su eficiencia y seguridad. Primero, la aritmética basada en torres de campos binarios constituye la base de su cálculo, permitiendo realizar operaciones simplificadas en campos binarios. En segundo lugar, Binius ha adaptado la verificación de productos y permutaciones de HyperPlonk en su protocolo de prueba de Oracle interactivo (PIOP), asegurando una verificación coherente, 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 campos pequeños. 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. Por último, el protocolo emplea un esquema de compromiso de polinomios de campo pequeño (Small-Field PCS), lo que le permite implementar un sistema de pruebas eficiente en campos binarios y reducir el gasto normalmente asociado con campos grandes.

2.1 Campo finito: aritmética basada en torres de campos binarios

Los campos binarios en torre son clave para lograr cálculos rápidos y verificables, principalmente debido a dos aspectos: cálculo eficiente y aritmética eficiente. Los campos binarios, en esencia, soportan operaciones aritméticas altamente eficientes, lo que los convierte en una opción ideal para aplicaciones criptográficas que son sensibles a los requisitos de rendimiento. Además, la estructura de los campos binarios soporta un proceso de aritmética simplificado, es decir, las operaciones realizadas sobre campos binarios pueden representarse en una forma algebraica compacta y fácil de verificar. Estas características, junto con la capacidad de aprovechar completamente su jerarquía a través de la estructura en torre, hacen que los campos binarios sean especialmente adecuados para sistemas de prueba escalables como Binius.

El término "canónico" se refiere a la representación única y directa de un elemento en un 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 de k bits. Esto es diferente de los campos primos, que no pueden proporcionar esta representación canónica dentro de una longitud de bits determinada. Aunque un campo primo de 32 bits puede caber en 32 bits, no todas las cadenas de 32 bits pueden 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, 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 usa en AES), la reducción de Montgomery (como se usa en POLYVAL) y la reducción recursiva (como Tower). El documento "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 (X + Y )2 = X2 + Y 2.

Como se muestra en la Figura 1, una cadena de 128 bits: esta cadena se puede interpretar de varias maneras en el contexto del dominio binario. Puede ser vista como un elemento único en un dominio binario de 128 bits, o ser analizada como 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 que es una propiedad muy interesante y útil. Al mismo tiempo, los elementos del pequeño dominio pueden ser empaquetados como 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 documento "On Efficient Inversion in Tower Fields of Characteristic Two" explora la complejidad computacional de las operaciones de multiplicación, cuadrado e inversión en un dominio binario de torre de n bits (que puede descomponerse en subdominios de m bits).

Bitlayer Research: Análisis de los principios de Binius STARKs y reflexiones sobre su optimización

2.2 PIOP: versión adaptada del Producto HyperPlonk 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 multivariables. Estas verificaciones centrales incluyen:

  1. GateCheck: Verifica si el testigo secreto ω 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.

  2. PermutationCheck: Verifica si los resultados de evaluación de los 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 en la permutación entre las variables del polinomio.

  3. 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.

  4. 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.

  5. 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.

  6. ZeroCheck: Verificar si un polinomio multivariable en el hipercubo booleano es cero en cualquier punto ∏x∈Hµ f(x) = 0, ∀x ∈ Bµ, para garantizar la distribución de los ceros del polinomio.

  7. SumCheck: Detecta 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 uno univariante, se reduce la complejidad computacional del verificador. Además, SumCheck permite el procesamiento por lotes, introduciendo números aleatorios para construir combinaciones lineales que permiten el procesamiento por lotes de múltiples instancias de verificación de sumas.

  8. 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 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 este valor en 1, reduciendo así la complejidad computacional.

  • Manejo del problema de la división por cero: HyperPlonk no pudo manejar adecuadamente la situación de división por cero, lo que impide 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 procesando, 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 arreglo polinómico más complejas.

Por lo tanto, Binius ha mejorado el mecanismo existente PIOPSumCheck, 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 sientan las bases para futuros sistemas de prueba basados en dominios binarios.

Investigación de Bitlayer: Análisis del principio de Binius STARKs y reflexiones sobre su optimización

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 es una de las tecnologías clave, que puede generar y operar de manera efectiva los polinomios derivados de un manejador de entrada u otros polinomios virtuales. A continuación se presentan dos métodos clave:

  • Packing:Este método funciona al comprimir los elementos más pequeños en posiciones adyacentes en el orden del diccionario.
Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • 4
  • Republicar
  • Compartir
Comentar
0/400
FancyResearchLabvip
· hace15h
¿Otra solución de compresión colorida y llamativa? ¿Cuántas veces se ha investigado a Luban 7?
Ver originalesResponder0
ChainMelonWatchervip
· hace22h
Ah, esto puede mejorar bastante la eficiencia.
Ver originalesResponder0
SolidityNewbievip
· 08-14 15:50
La mejora en la codificación es tan grande, ¡es alcista!
Ver originalesResponder0
SnapshotLaborervip
· 08-14 15:32
La segunda versión finalmente ha sido comprimida a 32 bits, lo cual ha sido bastante difícil.
Ver originalesResponder0
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)