Más información sobre Lasso+Jolt

1. Introducción

Los blogs de prefacio son:

Para artículos relacionados ver:

  • Srinath Setty (Centro de investigación de Microsoft), Justin Thaler (Centro de investigación de criptografía a16z y Universidad de Georgetown), Riad Wahby (Universidad Carnegie Mellon) Artículo de 2023 " Desbloquear la singularidad de búsqueda con Lasso "
  • Arasu Arun (Universidad de Nueva York), Srinath Setty (Centro de investigación de Microsoft), Justin Thaler (Centro de investigación de criptografía a16z y Universidad de Georgetown) Artículo de 2023 "Jolt: SNARKs para máquinas virtuales mediante búsquedas "

Para conocer la implementación del código fuente abierto correspondiente, consulte:

La estructura general de este artículo es:

  • ¿Qué son los argumentos de búsqueda?
  • ¿Qué es Lasso/Jolt?
  • Detalles del lazo
  • Detalles de sacudida
  • ¿Cómo pensar en Lasso como una herramienta?
    • ¿Y cuál es el escenario de aplicación del argumento de búsqueda fuera de zkVM?

2. ¿Qué son los argumentos de búsqueda?

Los argumentos de búsqueda se pueden dividir en:

  • 1)Argumento de búsqueda no indexado:
    • 为 prueba de relación de subconjunto, 即, prueba de membresía de conjunto por lotes—— aauna mesattUn cierto subconjunto de t .
  • 2) Argumento de búsqueda indexada: [Lasso y Jolt usan un argumento de búsqueda indexada]
    • Para leer desde la memoria de sólo lectura. puede ser ttt se considera memoria,ai = t [ bi ] a_i=t[b_i]ayo=t [ segundoyo] significa leerbi b_ibyoEl valor en la celda de memoria.

Tomando como ejemplo la verificación de rango, el argumento de búsqueda se refiere a:

  • 1)令t = ( 0 , 1 , 2 , 3 , ⋯ , 2 128 − 1 ) t=(0,1,2,3,\cdots,2^{128}-1)t=( 0 ,1 ,2 ,3 ,,21281 ) por tenerNNUn vector de N elementos de tabla (es decir,ttt为 tabla predeterminada)。
  • 2)令a ∈ F ma\in\mathbf{F}^maFm es una lista de valores que deben incluirse en la tabla anterior.
  • 3)Verificador VVV conocido:aaValor de compromiso de un cma cm_acm _un
  • 4)Probador PPP afirma:aaTodos los elementos en a están en la tabla tten t .
    ProbadorPPP dice sabercma cm_acm _unapertura aaa , tal que:
    • Para cada i = 0 , ⋯ , m − 1 i=0,\cdots, m-1i=0 ,,metro1 , existe un índicebi ∈ { 0 , 1 , ⋯ , N − 1 } b_i\in\{0,1,\cdots, N-1\}byo{ 0 ,1 ,,norte1 } , usandoai = t [ bi ] a_i=t[b_i]ayo=t [ segundoyo]
  • 5) Este argumento de búsqueda generalmente se denomina argumento de búsqueda no indexado.

El argumento de búsqueda indexada significa que se agrega un valor de índice al elemento que se va a verificar, y el argumento de búsqueda indexada se define como: [El verificador sabe que la tabla ttdescripción sucinta de t .

  • 1)令t ∈ F nt\in\mathbf{F}^ntFn es conNNUn vector de N elementos de tabla (es decir,ttt为 tabla predeterminada)。
  • 2)Probador PPVector de par P ( ( a 1 , b 1 ) , ⋯ , ( am , bm ) ) ((a_1,b_1),\cdots,(a_m,b_m))(( un1,b1) ,,( unm,bm)) comprometerse.
  • 3)Probador PPP afirma que parai = 1 , ⋯ , mi=1,\cdots,mi=1 ,,m,有ai = t [ bi ] a_i=t[b_i]ayo=t [ segundoyo] . [Inmediatoai a_iayo为 valor, bi b_ibyoCorrespondiente a la tabla ttNúmero índice de t , Prover PPP afirmaaaTodos los elementos en a existen en ttEl índice correspondiente en t .

3. ¿Qué es Lasso/Jolt?

Lazo: para un conjunto de argumentos de búsqueda (indexados):

  • Probador de lazo PPP es un orden de magnitud más rápido que el esquema anterior.
    • Probador PPEl cuello de botella clave de P es: gastos generales de compromiso.
  • Probador de lazo PPP confirma menos elementos de campo y todos los elementos de campo a confirmar son pequeños.
  • Sin compromiso con ttNo es necesario para muchas mesas. [Para una gran cantidad de tablas de búsqueda (obligatorias en Jolt), no es necesario que una parte honesta confirme y preprocese la tabla. El Verificador basado en Lasso puede procesar una tabla enorme por sí solo (solo se requieren alrededor de 50/100/200 operaciones de campo), en lugar de recibir el valor prometido de la tabla.
  • Soporte para tablas enormes (descomponibles o estructuradas LDE):
    • Probador PPLa sobrecarga de compromiso para P es: O ( c ( m + N 1 / c ) ) O(c(m+N^{1/c}))O ( c ( metro+norte1/ c ))elementos de campo.
    • La descomposición de la tabla tiene principalmente dos aspectos de la sobrecarga de Prover, generalmente c = 6 c = 6C=6 para equilibrar estos dos aspectos de los gastos generales:
      • Solo depende de la sobrecarga del tamaño de la mesa.
      • Sólo depende de la sobrecarga de los tiempos de búsqueda.

Jolt: Para la nueva tecnología zkVM:

  • Probador de sacudidas PPLos gastos generales de compromiso de P son mucho más bajos que los del esquema anterior.
  • La instrucción primitiva se realiza mediante una búsqueda de toda la tabla de evaluación de una sola instrucción.

4. Detalles del lazo

4.1 Detalles generales del lazo

Para talla NNN , con parámetroccLa tabla de c , dommm orden de búsqueda indexada:

  • Probador de lazo PPP arriba es: para3 cm + c N 1 / c 3cm+cN^{1/c}3cm _ _+c norte1/ c elementos de campo para confirmación.
    • Todos los elementos del campo son pequeños, es decir, en el conjunto { 0 , 1 , ⋯ , m } \{0,1,\cdots,m\}{ 0 ,1 ,,metro } en:
      • Esquema de compromiso polinomial basado en MSM, Lasso Prover PPPara cada elemento de campo comprometido (pequeño), P solo necesita realizar aproximadamente 1 operación de grupo.
        Los esquemas de compromiso polinomiales actuales basados ​​en HSH son:
        • Esquema de compromiso polinómico basado en KZG
        • Esquema de compromiso polinómico IPA/Bulletproofs
        • Esquema de compromiso polinomial de Hyrax
        • Esquema de compromiso polinomial de Dory
  • Verificador de lazo VVEl costo V es:
    • O ( Iniciar sesión ⁡ metro ) O(\log metro)O ( log _m ) Operaciones de campo y evaluaciones de hash (de Fiat-Shamir).
    • + 1个 prueba de evaluación para un polinomio comprometido de tamaño N 1 / c N^{1/c}norte1/ c .
    • A través de composición/recursión, el Lasso Verifier VV anterior, suficientemente bajo, puede serLos gastos generales de V se reducen aún más.

Cuando c = 1 c = 1C=1 , correspondiente al caso especial de Lasso - Basic-Lasso:

  • Probador de lazo básico PPP am + N m + Nmetro+Se confirman N elementos de campo.
  • Este m + N m+Nmetro+Muchos de los N elementos del campo son 0. En el esquema de compromiso polinómico basado en MSM, el costo de comprometer un valor de 0 también es 0, es decir, "gratis".
  • Este m + N m+Nmetro+Entre los N elementos de campo, hay como máximo2 m 2 m2 m son valores distintos de cero:
    • Si se lee una celda de tabla diferente cada vez, hay mmLos m elementos del campo son 1 y los demás son 0.

4.2 Utilice Lasso para mesa enorme: c > 1 c>1C>1

De hecho, la mayoría de las tablas de búsqueda grandes se pueden descomponer :

  • El tamaño grande se puede configurar en NNUna búsqueda de la tabla de N , descompuesta enN 1 / c N^{1/c}norte1/ la tabla de c es de aproximadamenteccbúsqueda de c veces y luego "cotejo" elccLos resultados de las búsquedas de c :
    • Lasso utiliza el protocolo de verificación de suma para "clasificar" el ccLos resultados de las búsquedas de c . Entonces a Lasso ProverPPP , no hay gastos generales de compromiso adicionales.

Lasso puede considerarse como c > 1 c>1C>1. Para la búsqueda de una única tabla grande y descomponible, la reducción esccc búsquedas:

  • Para tablas pequeñas, se puede utilizar cualquier argumento de búsqueda.
    • Para tablas pequeñas, el esquema de argumentos de búsqueda Basic-Lasso se utiliza en Lasso.
  • Nota adicional: el argumento de búsqueda de tabla pequeña debe estar indexado.
  • Soluciones conocidas actualmente para convertir un argumento de búsqueda no indexado en un argumento de búsqueda indexado.
    • Sin embargo, estos esquemas conocidos no logran preservar la "pequeñez" de las entradas de la tabla o no logran preservar la capacidad de descomposición de las tablas grandes; la razón es que estos esquemas "empaquetan" índices y valores en un solo elemento de campo.

[El tamaño de la prueba no depende del número de tablas diferentes, ni del tamaño de la tabla pequeña. El Verificador necesita evaluar el polinomio de extensión multilineal de cada tabla pequeña en un punto aleatorio. El aumento en el número de tablas pequeñas aumentará el tiempo del Verificador, pero estas son operaciones de campo. En comparación con otras operaciones criptográficas, esto no lo será. convertirse en el cuello de botella de Verifier.
Hay alrededor de 45 subtablas diferentes en Jolt.

4.3 Antecedentes: argumentos del gran producto

Todos los argumentos de búsqueda conocidos toman el argumento del gran producto :

  • El argumento del gran producto es un esquema SNARK para demostrar que nnEl producto de n valores comprometidos.
  • El gran argumento popular de hoy en día sobre el producto: su Prover PPP necesita un par extra dennSe comprometen N valores (productos parciales).
  • Esto es innecesario.
  • En el artículo T13: Se proporciona la versión optimizada del protocolo GKR (el llamado protocolo GKR es una prueba interactiva basada en verificación de suma para la evaluación de circuitos): [El circuito similar al árbol binario de puertas de multiplicación está optimizado.
    • Probador PPP Sin gastos generales de compromiso.
    • Probador PPP realiza operaciones de campo de orden lineal.
    • Tamaño de prueba/Verificador VVV tiempo为O ( log ⁡ ( n ) 2 ) O(\log(n)^2)O ( log ( n ) _2 )Operaciones de campo (y evaluaciones de hash de Fiat-Shamir):
      • Mucho menos que el tamaño de prueba/Verificador VV de FRIV tiempo。
      • [Lee, Setty 2019]中将Verificador VVLa sobrecarga de V se reduce aún más a aproximadamenteO ( log ⁡ ( n ) ) O(\log(n))O ( log ( n )) , solo aumenta ProverPPUn pequeño gasto de compromiso para P.

4.4 Puntos clave de Basic-Lasso

  • Para muchos argumentos de búsqueda existentes, si se cambia el argumento del gran producto invocado por T13, Prover PPP solo necesita comprometer pequeños elementos de campo.
  • Lasso/Jolt necesita utilizar un argumento de búsqueda indexada para "cotejar" los resultados de búsqueda de tablas pequeñas en resultados de tablas grandes.
  • Punto de venta técnico: la comunidad actual todavía no está utilizando plenamente el potencial de la verificación de suma para evitar Prover PPP por encima.
  • Para conocer el principio de funcionamiento de Basic-Lasso, consulte:

5. Detalles de la sacudida

Front-end de la ejecución actual de VM:

  • Probador PPP afirma ejecutar un programa de computadora parammm pasos:
    • El programa está escrito en el lenguaje ensamblador de una VM.
    • Las máquinas virtuales orientadas a objetivos populares son: RISC-V, Ethereum Virtual Machine (EVM).
  • Actualmente, el front-end genera un circuito para cada paso de cálculo:
    • Paso 1: Señale qué instrucción debe ejecutarse en este paso.
    • Paso 2: ejecuta el comando.
  • Y Lasso reemplaza el paso 2 anterior con una única búsqueda:
    • Para cada instrucción, la tabla de evaluación completa para esa instrucción se almacena en esta tabla .
    • Si el comando fff tiene 2 entradas de 64 bits, entonces para cada par de entradas de 64 bits( x , y ) (x,y)( x ,y ) , la tabla de búsqueda almacenará todoslos f ( x , y ) f(x,y)f ( x ,y ) :
      • El tamaño de la tabla de búsqueda es 2 128 2^{128}2128 .
      • Como se muestra en Jolt, todas las instrucciones RISC-V son descomponibles.

La imagen general de Jolt es:
inserte la descripción de la imagen aquí
Se espera que Jolt haga realidad la visión de Singularidad de búsqueda de Barry Whitehat :

  • Tiene las ventajas de una fácil auditoría, simplificación y escalabilidad.
  • ventaja de rendimiento
  • Maneras esencialmente diferentes de construir zkVM:
    • Hay muchas similitudes con lo que la gente está haciendo ahora.
    • La visión de la gente es convertir funciones de cálculo como AND bit a bit en búsquedas múltiples en tablas pequeñas y combinar los resultados.
    • Las diferencias clave del Jolt son:
      • a) El nuevo argumento de búsqueda de tabla pequeña tiene un Jolt Prover PP mucho más rápidoP. _
      • b) El nuevo argumento de búsqueda en tabla pequeña está indexado de forma natural.
      • c)Probador de sacudidas PPP tiene una técnica de clasificación mucho más rápida:
        • La multiplicación y suma "gratis" se pueden realizar en resultados de búsqueda de tablas pequeñas.
    • Estas diferencias de Jolt hacen posible utilizar la búsqueda para realizar casi todo en la emulación de VM .

5.1 Ejemplo 1 de descomposición de sacudidas: Y bit a bit

Para dos entradas de 64 bits x, yx,yx ,El ácido crudo AND bit a bit de y , su idea de descomposición es la siguiente:

  • x , y x,y x ,y se descompone enc = 8 c=8C=8 trozos, cada trozo tiene 8 bits.
  • Calcule el AND bit a bit de cada fragmento
  • Concatene los resultados de cada fragmento, la salida es:
    ∑ i = 1 8 8 i − 1 ⋅ bit a bit AND ( xi , yi ) \sum_{i=1}^{8}8^{i-1}\cdot \text{ bit a bitAND}(x_i,y_i)yo = 188yo - 1bit a bitAND ( xyo,yyo)

Para evitar la necesidad de que una parte honesta confirme la subtabla:

  • bit a bitAND ( xi , yi ) = ∑ j = 1 8 2 j − 1 ⋅ xj ⋅ yj \text{bitwiseAND}(x_i,y_i)=\sum_{j=1}^{8}2^{j-1}\ cdot x_j\cdot y_jbit a bitAND ( xyo,yyo)=j = 182j - 1XjyjEs un polinomio multilineal, que puede evaluarse con menos de 25 operaciones de campo.
  • Verificador de lazo VVV necesita conocer la subtabla y solo necesita conocer una evaluación del polinomio.

5.2 Ejemplo 2 de descomposición de sacudidas: adición de RISC-V

Para dos números de 64 bits x, yx,yx ,En resumen, RISC-V estipula que la suma es correcta e ignora cualquier "bit de desbordamiento".

Jolt (al agregar una restricción al R1CS auxiliar) calcula z = x + yz=x+y en un campo finitoz=X+y , y luego use la búsqueda para identificar el bit de desbordamiento correspondiente; si hay un bit de desbordamiento, ajuste el resultado correspondiente en consecuencia.

  • Probador de sacudidas PPP,对elemento de campoz = x + yz=x+yz=X+y的“descomposición de extremidades”( b 1 , ⋯ , bc ) (b_1,\cdots,b_c)( segundo1,,bc) comprometerse.
  • Sea M = 2 64 / c M=2^{64/c}METRO=264/ c es el máximo por extremidad.
  • Agregue una restricción a R1CS para confirmar:
    • Paso 1: z = ∑ j = 1 c M j − 1 ⋅ bjz=\sum_{j=1}^{c}M^{j-1}\cdot b_jz=j = 1cMETROj - 1bj
    • Paso 2: Y para cada bj b_jbjAlmacene { 0 , ⋯ , M − 1 } \{0,\cdots,M-1\} mediante búsqueda en{ 0 ,,METRO1 } subtabla para realizar la verificación de rango.
  • A través del paso 1 y el paso 2 de las restricciones anteriores, se puede garantizar que b 1 , ⋯ , bj b_1,\cdots,b_jb1,,bjde hecho para zzLa descomposición de extremidades prescrita de z .
  • Para identificar el bit de desbordamiento, solo es necesario realizar una búsqueda en el índice bc b_cbc, en una mesa cuyo iiLa i 'ésima entrada escupe el bit de orden superior relevante deiiyo .

5.3 Ejemplo 2 de descomposición de sacudidas: MENOS QUE SIN FIRMAR

Para 2 entradas de 64 bits x, yx,yx ,y hace menos que la operación:

  • x , y x,y x ,y se descompone enc = 8 c=8C=8 trozos, cada trozo tiene 8 bits.
  • Calcule MENOS QUE (LT) e IGUALDAD (EQ) de cada fragmento
  • Ejemplo: ∑ i = 1 8 2 i − 1 ⋅ LT ( xi , yi ) ∏ j = i + 1 8 EQ ( xj , yj ) \sum_{i=1}^{8}2^{i-1} \cdot \text{LT}(x_i,y_i)\prod_{j=i+1}^{8}\text{EQ}(x_j,y_j)yo = 182yo - 1LT ( xyo,yyo)j = yo + 18Ecualizador ( xj,yj)

Para evitar cometer 2 subtablas:

  • EQ ( xj , yj ) = ∏ k = 1 8 ( xj , kyj , k + ( 1 − xj , k ) ( 1 − yj , k ) ) \text{EQ}(x_j,y_j)=\prod_{k= 1}^{8}(x_{j,k}y_{j,k}+(1-x_{j,k})(1-y_{j,k}))Ecualizador ( xj,yj)=k = 18( xj , kyj , k+( 1Xj , k) ( 1yj , k))
  • LT ( xi , yi ) = ∑ k = 1 8 ( 1 − xi ) yi ∏ z = k 8 ( xi , kyi , k + ( 1 − xi , k ) ( 1 − yi , k ) ) \text{LT} (x_i,y_i)=\sum_{k=1}^{8}(1-x_i)y_i\prod_{z=k}^{8}(x_{i,k}y_{i,k}+(1 -x_ {i, k} (1-y_ {i, k}))LT ( xyo,yyo)=k = 18( 1Xyo) yyoz = k8( xyo , kyyo , k+( 1Xyo , k) ( 1yyo , k))
  • Se trata de polinomios multilineales, que pueden evaluarse en menos de 50 operaciones archivadas.

6. ¿Cómo pensar en Lasso como herramienta? ¿Y cuál es el escenario de aplicación del argumento de búsqueda fuera de zkVM?

6.1 Intuición de Lasso como herramienta

  • Lasso admite operaciones simples en descomposición de bits de elementos de campo sin Lasso Prover PPP confirma cada bit.
  • Las subtablas tienen una extensión multilineal rápidamente evaluable, si cada subtabla corresponde a una función simple en los (bits de) los índices de la tabla:
    • Esto garantiza que la parte honesta no necesite confirmar estas subtablas durante el preprocesamiento.
  • El valor de 2 elementos de campo es { 0 , 1 , ⋯ , 2 64 − 1 } \{0,1,\cdots,2^{64}-1\}{ 0 ,1 ,,2641 } 's operación AND bit a bit, en comparación con la sobrecarga de cada puerta de suma o multiplicación en Plonk, Lasso Prover tiene una sobrecarga menor.
  • Nota: Los argumentos de búsqueda son economías de escala. Bueno para realizar muchas búsquedas en una tabla (es decir, múltiples llamadas a la misma función).

6.2 Trate los argumentos de búsqueda indexados como el esquema SNARK de evaluación de funciones repetidas

Se han realizado muchos estudios sobre "SNARK para evaluación de funciones repetidas" antes:

  • Basado en muchas entradas diferentes x 1 , ⋯ , xm x_1,\cdots,x_mX1,,Xm, calculando la misma función ffF. _
  • Piense en ello como una cantidad "polinómica" de paralelismo de datos:
    • Si la función ffLa longitud de entrada de f esnnn , entonces el número de entradas diferentes esm = poli ( n ) m=\text{poli}(n)metro=poli ( n )
  • Todavía se requiere el probador PPP evaluarfff de una manera muy específica:
    • Ejecutar un circuito específico para calcular ffF. _

Una nueva perspectiva sobre los argumentos de búsqueda:

  • Piense en la tabla de búsqueda como si almacenara una función ffTodas las evaluaciones de f
  • argumento de búsqueda: un SNARK para una evaluación muy repetida de ffF :
    • Según Prover, vector comprometido ( ( a 1 , f ( a 1 ) ) , ⋯ , ( am , f ( am ) ) ) ((a_1,f(a_1)),\cdots,(a_m,f(a_m)) )(( un1,f ( un1)) ,,( unm,f ( unm))) , contiene la entrada diferentea 1 , ⋯ , am a_1,\cdots,a_ma1,,amel ff correctof evaluaciones。
  • Probador de lazo PPLa sobrecarga de P esO ( c ( m + N 1 / c ) ) O(c(m+N^{1/c}))O ( c ( metro+norte1/ c )), cuando la búsqueda multiplica pormmm no es mayor que el tamaño de la mesaNNN , cuando es demasiado pequeño, Lasso ProverPPP es eficiente:
    • es decir, correr ffEl grado de f debe ser exponencial en el tamaño de entrada deffF. _

7. Resumen

  • Lasso es adecuado para escenarios donde la misma función se evalúa muchas veces.
  • zkVM es solo uno de los escenarios de aplicación de Lasso:
    • Por definición, la abstracción VM representa el cálculo de la ejecución repetida de instrucciones primitivas.
    • La implementación de la abstracción de VM suele tener una sobrecarga de rendimiento significativa.
  • Direcciones futuras de interés:
    • Otras formas mejores de aislar estructuras repetidas en cálculos
    • Ejemplos de trabajos son:
      • corte de bits
      • evaluar la función hash o el cifrado de bloque (como SHA/AES) para construir un circuito booleano CC con 64 entradas diferentesC para calcular:
        • Empaque el primer bit de cada entrada en un único elemento de campo, el segundo bit de cada entrada en un único elemento de campo, y así sucesivamente.
        • circuito CCPara cada puerta AND en C , reemplácela con AND bit a bit; reemplace el circuito CCCada puerta OR en C , reemplazada por OR bit a bit y así sucesivamente.
        • alrededor de 200La salida de cada puerta en C es un bit de las 64 evaluaciones de SHA/AES.
        • circuito CCC usa Lazo.

Referencias

[1] Justin Thaler compartió zkStudyClub - Lasso/Jolt (Justin Thaler, Georgetown University/a16z) en zkStudyClub en agosto de 2023

Serie de blogs de Justin Thaler

blog de la serie de búsqueda

Supongo que te gusta

Origin blog.csdn.net/mutourend/article/details/132516398
Recomendado
Clasificación