
Fuente: Comunidad Denglian
La prueba de conocimiento de conocimiento cero, conciso, no interactiva (ZK-Snarks) son poderosas primitivas criptográficas que permiten que una parte, es decir, la prueba, convencer a la otra parte, de que una declaración es cierta sin revelarla. que la validez de esta declaración.Han atraído una atención generalizada debido a sus aplicaciones en la informática privada verificable, proporcionando pruebas de la corrección de la ejecución del programa de computadora y ayudando a escalar blockchains.Creemos que los snarks tendrán un impacto significativo en la configuración de nuestro mundo, como lo hemos hecho en nuestro artículo.[6]como se describe en.Los SNARK son un término general para diferentes tipos de sistemas de prueba, utilizando diferentes esquemas de compromiso polinómico (PC), esquemas aritméticos, pruebas de oráculo interactivas (PIO) o pruebas probabilísticas de control (PCP).Sin embargo, estas ideas y conceptos básicos se remontan a mediados de la década de 1980.Los esfuerzos de desarrollo se han acelerado significativamente después de la introducción de Bitcoin y Ethereum, lo que demuestra que son un caso de uso emocionante y poderoso porque puede usar pruebas de conocimiento cero (a menudo llamado la prueba de validez de este caso de uso particular) expandirlas.Los snarks son una herramienta importante para la escalabilidad blockchain.Como describe Ben-Sasson, en los últimos años han sido testigos del brote cámbrico de cripto-a prueba de[7].Cada sistema de prueba tiene sus ventajas y desventajas, y se tienen en cuenta ciertas compensaciones al diseñar.Los avances en hardware, mejores algoritmos, nuevos argumentos y dispositivos han llevado a mejoras de rendimiento y al nacimiento de nuevos sistemas.Muchos de estos sistemas se están utilizando en producción y seguimos superando los límites.¿Tendremos un sistema de prueba universal para todas las aplicaciones, o varios sistemas para diferentes necesidades?Creemos que hay pocas posibilidades de que un sistema de prueba domine todas las aplicaciones porque:
-
Diversidad de aplicaciones.
-
Tenemos diferentes tipos de restricciones (sobre la memoria, el tiempo de verificación, el tiempo de prueba).
-
La necesidad de robustez (si se agrieta un sistema de prueba, todavía tenemos otros sistemas).
Incluso si el sistema de prueba cambia enormemente, todos tienen una característica importante: las pruebas se pueden verificar rápidamente.Las dificultades asociadas con el cambio de la capa subyacente (como Ethereum) también se resuelven al tener capas de prueba de trabajo de prueba de prueba y fácilmente adaptadas a las capas que manejan nuevos sistemas de prueba de trabajo.
Para describir las diferentes características de los snarks:
-
Hipótesis de contraseña: función de hash anticollision, problemas logarítmicos discretos en curvas elípticas, conocimiento exponencial.
-
Configuración transparente vs confiable.
-
Tiempo de correctores: lineal vs hiperlineal.
-
Tiempo del verificador: tiempo constante, logarítmico, sublinear, lineal.
-
Tamaño de prueba.
-
La conveniencia de la recursión.
-
Esquema aritmético.
-
Unary vs polinomio multivariado.
Este artículo explorará los orígenes de los snarks, algunos bloques de construcción básicos y el aumento (y el declive) de diferentes sistemas de prueba.Este artículo no tiene la intención de realizar un análisis detallado del sistema de prueba.En cambio, nos centramos en aquellos que tienen un impacto en nosotros en este momento.Por supuesto, estos desarrollos solo se pueden lograr en función del gran trabajo e ideas de los pioneros en este campo.
Conocimiento básico
Como mencionamos, la prueba de conocimiento cero no es nueva.Se establecieron definiciones, cimientos, teoremas importantes e incluso protocolos importantes a mediados de la década de 1980.Se propusieron algunas de las ideas y protocolos clave utilizados para construir snarks modernos en la década de 1990 (protocolo SumCheck), incluso antes de que surgiera Bitcoin (GKR en 2007).Los principales problemas adoptados en ese momento estaban relacionados principalmente con la falta de casos de uso fuertes (Internet no fue tan desarrollado como en la década de 1990) y la potencia informática requerida.
Prueba de conocimiento cero: origen (1985/1989)
El campo de la prueba de conocimiento cero apareció por primera vez en la literatura académica en [Goldwasser, Micali y Rackoff] (https://people.csail.mit.edu/silvio/Selected Scientific Dopers/Proof Systems/the_kno Wledge_Complexity_of_interactive_ynstems.pdf? Refir. Blog. Lambdaclass .com «Goldwasser, Micali y Rackoff») papel.Para una discusión de origen, puede consultar el siguiente video[8].Este artículo introduce los conceptos de integridad, corrección y cero conocimiento, y proporciona la construcción de residuosidad cuadrática y no residuosidad cuadrática.
Acuerdo de SumCheck (1992)
protocolo SumCheck[9]Es por Lund, Fortnow, Karloff y Nisan[10]Propuesto en 1992.Es uno de los bloques de construcción más importantes para la prueba de interacción concisa.Nos ayuda a reducir la declaración de suma de evaluaciones de múltiples polinomios a una sola evaluación en puntos seleccionados al azar.
Goldwasser-Kalai-Rothblum (GKR) (2007)
Protocolo GKR[11]Es un protocolo interactivo, donde el tiempo de ejecución del Prover está relacionado linealmente con el número de puertas del circuito, mientras que el tiempo de ejecución del verificador está relacionado linealmente con el tamaño del circuito.En este protocolo, el prover y el verificador acuerdan un circuito aritmético de ventilador en dos en un dominio finito de profundidad d, donde la capa D corresponde a la capa de entrada y la capa 0 corresponde a la capa de salida.El protocolo comienza con una declaración de salida del circuito y lo reduce a una declaración del valor de la capa anterior.Por recursión, podemos convertirlo en una declaración de la entrada del circuito, que se puede verificar fácilmente.Estas reducciones se logran a través del protocolo SumCheck.
Solución de compromiso polinómico KZG (2010)
Esquema de compromiso polinómico KZG (PCS) Kate, Zaverucha y Goldberg[12]En 2010 se introdujo un esquema de compromiso polinómico utilizando grupos de emparejamiento bilineal.Este compromiso consiste en un solo elemento grupal y el comitvero puede abrir efectivamente el compromiso con cualquier evaluación correcta del polinomio.Además, debido a la tecnología por lotes, se pueden activar múltiples evaluaciones.KZG promete que varios snarks eficientes como Pinocho, Groth16 y Plonk proporcionan los bloques de construcción básicos.También es EIP-4844[13]el núcleo de.Para una comprensión intuitiva de la tecnología de procesamiento por lotes, puede ver nuestro puente sobre Mina-Ethereum[14]Artículos.
Snarks prácticos usando curvas elípticas
Las primeras construcciones prácticas de Snarks surgieron en 2013.Estas configuraciones requieren pasos de preprocesamiento para generar claves de prueba y verificación y son específicos del programa/circuito.Estas claves pueden ser bastante grandes y depender de parámetros secretos desconocidos que deben mantenerse;La conversión del código a contenido probable requiere compilar el código en una serie de sistemas de restricción polinomial.Al principio, esto debe hacerse manualmente, lo que lleva mucho tiempo y es propenso a errores.El progreso en esta área intenta eliminar algunos de los principales problemas:
-
Hay más eficientes.
-
Reducir el número de pretratamientos.
-
Configuración con circuitos generales en lugar de específicos.
-
Evite la configuración de confianza.
-
Desarrolle métodos para describir los circuitos en idiomas de alto nivel, en lugar de escribir restricciones polinomiales manualmente.
Pinocho (2013)
Pinocho[15]es el primer ZK-Snark práctico y utilizable.Snark se basa en un programa aritmético cuadrático (QAP).El tamaño de prueba es inicialmente 288 bytes.La cadena de herramientas de Pinocho proporciona un compilador desde el código C hasta los circuitos aritméticos, convertido aún más en QAP.El protocolo requiere que el verificador genere claves que sean específicas del circuito.Utiliza emparejamiento de curva elíptica para verificar la ecuación.Demuestre que la asintoticidad de la configuración de generación y clave está relacionada linealmente con el tamaño del cálculo, y el tiempo de verificación está relacionado linealmente con el tamaño de la entrada y salida comunes.
Groth 16 (2016)
Malhumorado[16]Se ha introducido un nuevo argumento de conocimiento con rendimiento mejorado[17], utilizado para describir el problema de R1CS.Tiene el tamaño de prueba más pequeño (solo tres elementos de grupo) y una validación rápida, que involucra tres emparejamientos.También implica un paso de preprocesamiento para obtener una cadena de referencia estructurada.El principal inconveniente es que requiere diferentes configuraciones de confianza para cada programa que queremos probar, lo cual es inconveniente.Groth16 es utilizado por Zcash.
Bulletproofs & amp;
Una debilidad de las PC KZG es que requiere una configuración de confianza.Botle et al.[18]Se introduce un sistema de argumentación de conocimiento cero efectivo que satisface la relación interna del producto.El argumento interno del producto tiene prover lineal, comunicación logarítmica e interacción, pero verificación de tiempo lineal.También desarrollaron un esquema de compromiso polinómico que no requiere configuraciones de confianza.Halo 2 y Kimchi utilizaron el esquema de compromiso polinomial (PC) utilizando estas ideas.
Sonic, Marlin y Plonk (2019)
Sónico[19], Plonk[20]y marlin[veintiuno]Aborda el problema donde cada programa que encontramos en Groth16 requiere la configuración de confianza al introducir cadenas de referencia estructuradas comunes y actualizadas.Marlin proporciona un sistema de prueba basado en R1CS (sistema de restricción Rank-1) que está en el corazón de Aleo.
Morapio[Veintidós]Se introdujo un nuevo esquema aritmético (más tarde llamado Plonkish) y se usó una verificación de productos de abuelas para verificar las restricciones de replicación.Plonkish también permite la introducción de puertas especializadas para ciertas operaciones, las llamadas puertas personalizadas.Varios proyectos tienen versiones personalizadas de Plonk, incluidas Aztec, ZK-Sync, Polygon Zkevm, Mina’s Kimchi, Plonky2, Halo 2 y Scroll, entre otros.
Búsquedas (2018/2020)
Gabizon y Williamson introducen Plookup en 2020[veintitrés], use las verificaciones de productos macro para demostrar que un valor está contenido en una tabla de valor precalculada.Aunque los parámetros de búsqueda estaban previamente en arya[Veinticuatro]Sin embargo, esta construcción requiere determinar la multiplicidad de la búsqueda, lo que hace que la construcción sea lo suficientemente ineficiente.Plonkup[25]El documento muestra cómo introducir parámetros de pendientes en plonk.El problema con estos parámetros de búsqueda es que obligan al Prover a pagar toda la tabla sin tener en cuenta la cantidad de búsqueda.Esto significa que el costo de las tablas grandes es bastante grande, y las personas han hecho mucho esfuerzo para reducir el costo del Provergido que solo pagan la cantidad de búsqueda que usa.Haböck presenta logup[26], que convierte la verificación del producto Grande a la suma de la inversa utilizando un derivado de log.Logup para Polygon Zkevm[27]El rendimiento en ellos es crítico, necesitan dividir toda la tabla en varios módulos Stark.Estos módulos deben estar correctamente vinculados, la búsqueda transversal de la mesa transmite esto.Presentación de logup-gkr[28]Use el protocolo GKR para mejorar el rendimiento de la logarítmica.Calafatear[29]es el primer esquema que demuestra el tiempo sublinear con el tamaño de la tabla, utilizando el tiempo de preprocesamiento O (nLogn) y el almacenamiento O (n), donde n es el tamaño de la tabla.Siguieron varias otras opciones, como Baloo[30], Flookup[31], CQ[32]y cala+[33].Lazo[34]Se proponen varias mejoras para evitar cometer una tabla cuando tiene una estructura dada.Además, el Prover de Lasso paga solo por las entradas de mesa a la que la operación de búsqueda accede.Sacudida[35]Use Lasso para probar la ejecución de la máquina virtual a través de las búsquedas.
Spartan (2019)
espartano[36]Se proporciona un PIO («Prueba de oráculo interactivo») para el circuito descrito usando R1CS, utilizando las propiedades de los polinomios multivariados y el protocolo SumCheck.Utilizando un esquema de compromiso polinómico adecuado, produce un snark transparente de prueba de tiempo lineal.
Hyperplonk (2022)
Hiperplonk[37]Según la idea de Plonk, se utilizan polinomios multivariados.Se basa en el protocolo SumCheck en lugar del cociente para verificar la ejecución de las restricciones.También admite limitaciones de orden alto sin afectar el tiempo de ejecución del Prover.Dado que se basa en polinomios multivariados, no hay necesidad de realizar FFT, y el tiempo de ejecución del Prover está relacionado linealmente con el tamaño del circuito.Hyperplonk presenta un nuevo PIO de permutación para campos más pequeños, y un protocolo de apertura por lotes basado en SumCheck que reduce el trabajo de Prover, el tamaño de prueba y el tiempo de validador.
Esquemas plegables (2008/2021)
Estrella nueva[38]Se introduce el concepto de un esquema de plegado, que es un nuevo método para implementar la informática verificable incrementalmente.El concepto de IVC se remonta a Valiant[39], Muestra cómo combinar dos pruebas de longitud k en una sola prueba de longitud k.La idea es que podemos demostrar que la ejecución del paso I al paso I +1 es correcta al pruebas recursivamente de que la transformación del paso I-1 al paso I es correcta, cualquier cálculo de larga duración.Nova maneja bien la computación unificada;[40].Nova utiliza una versión relajada de R1CS y funciona en curvas elípticas amigables.IVC se implementa utilizando bucles amigables para las curvas (como curvas de pasta) y también se usa como el principal bloque de construcción para la implementación del estado conciso de Pickles, Mina.Sin embargo, el concepto de plegamiento es diferente de la verificación recursiva de Snark.
La idea del acumulador está más profundamente conectada al concepto de prueba de lotes.Halo[41]El concepto de acumulación se introduce como una alternativa a las combinaciones de prueba recursiva.Protostar[42]Proporciona una solución IVC no uniforme para PLONK, que admite puertas de alto orden y búsquedas vectoriales.
Uso de la función de hash anticollision
Mientras Pinocho se estaba desarrollando, había algunas ideas para generar esquemas de circuito/aritméticos que podrían probar la ejecución de máquinas virtuales correctamente.Aunque la aritmética del desarrollo de máquinas virtuales puede ser más compleja o menos eficiente que escribir circuitos dedicados para algunos programas, su ventaja es que puede probar cualquier programa complejo al demostrar que el programa se ejecuta correctamente en la máquina virtual.La idea en Tinyram se mejora mediante el diseño de Cairo VM, y las máquinas virtuales posteriores como ZK-EVM o ZKVM de propósito general.El uso de una función hash resistente a la colisión elimina la necesidad de configuraciones confiables o operaciones de curva elíptica, pero a costa de la prueba se hace más larga.
Tinyram (2013)
En Snarks para C[43]En este artículo, desarrollaron un Snark basado en PCP para demostrar la corrección de ejecución del programa C, que se compila en Tinyram, que es una computadora de conjunto de instrucciones delgada.
Nota: PCP, probabilidad de prueba probable.A diferencia de los sistemas de prueba tradicionales donde los verificadores deben verificar toda la prueba, PCP solo requiere una aleatoriedad limitada para permitir una verificación eficiente.
La computadora adopta una estructura de Harvard con una memoria aleatoria que se puede dirigir a nivel de bytes.Usando no determinismo, el tamaño del circuito está casi relacionado linealmente con el tamaño calculado, y cualquier bucles relacionados con los datos, flujos de control y acceso de memoria se pueden manejar de manera eficiente.
Starks (2018)
Starks[44]Propuesta en 2018 por Ben Sasson et al.Implementan tamaños de prueba de 0 (log^2 n), tienen un prover y validador rápido, no requieren una configuración confiable y se hipotetizan que es seguridad posterior al quantum.Scarkware/Starknet los utilizan por primera vez, junto con Cairo VM.Sus introducciones clave incluyen la representación intermedia algebraica (AIR) y los protocolos de viernes[45](Prueba de proximidad de oráculo interactivo de Solomon Rast Reed Solomon).También es utilizado por otros proyectos (Polygon Miden, Risc0, Winterfell, Neptuno), o ha visto algunas adaptaciones de componentes (Boojum, Plonky2, Starky of ZK-Sync).
Ligero (2017)
Ligero[46]Se propone un sistema de prueba para implementar un tamaño de prueba de O (√n), donde n es el tamaño del circuito.Organiza coeficientes polinomiales en forma de matriz y utiliza códigos lineales.Frenado[47]Sobre la base de Ligero, se introdujo el concepto de esquemas de compromiso polinómico independiente del dominio.
Algunos desarrollos nuevos
El uso de diferentes sistemas de prueba en la producción demuestra las ventajas de cada método e impulsa nuevos desarrollos.Por ejemplo, la aritmética de Plonkish proporciona una manera fácil de incluir puertas personalizadas y argumentos de búsqueda;Del mismo modo, el uso de la verificación de macroproductos en el aire (aire aleatorio que trae preprocesamiento) mejora su rendimiento y simplifica los parámetros de acceso a la memoria.La promesa de las funciones hash se ha vuelto popular debido a su velocidad en el hardware o la introducción de nuevas funciones hash para Snark.
Nuevo esquema de compromiso polinómico (2023)
Con la aparición de sarcasos eficientes basados en polinomios multivariados, como Spartan o Hyperplonk, ha habido un mayor interés en los nuevos esquemas de compromiso que se aplican a tales polinomios.Binio[48]Zeromorfo[49]y huella de la base[50]Todos proponen nuevas formas de compromiso con polinomios multilineales.Binius tiene la ventaja de no tener una sobrecarga adicional al denotar tipos de datos (mientras que muchos sistemas de prueba usan al menos elementos de campo de 32 bits para representar bits únicos) y pueden funcionar en dominios binarios.El esquema de compromiso utiliza un frenado diseñado para fines independientes del campo.Basefold promueve el viernes a códigos distintos de Reed-Solomon, trayendo un PCS independiente del dominio.
Nota Independiente del dominio: en un esquema de compromiso polinómico independiente del dominio, el proceso de compromiso no depende de propiedades específicas de ningún dominio en particular.Esto significa que se pueden hacer compromisos a polinomios de cualquier estructura algebraica, como dominios finitos, curvas elípticas e incluso anillos enteros.
Sistema de restricción personalizable (2023)
CCS[51]R1C generalizados, mientras capturan R1C, plonkish y aritméticos de aire, sin sobrecarga adicional.El uso de CCS junto con la PIO espartana produce SuperSpartan, lo que respalda las limitaciones de alta dimensión y los procesadores no tienen que soportar el costo criptográfico que escala a medida que aumentan las métricas de restricción.En particular, SuperSpartan proporciona a Air un sarcástico de tiempo lineal a prueba de tiempo.
en conclusión
Este artículo describe el progreso de los snarks desde mediados de la década de 1980.Los avances en ciencias de la computación, matemáticas y hardware, y la introducción de blockchain, han llevado a la aparición de snarks nuevos y más eficientes, abriendo la puerta a muchas aplicaciones que pueden cambiar nuestra sociedad.Investigadores e ingenieros propusieron mejoras y adaptaciones a los sarcasos en función de sus necesidades, centrándose en el tamaño de la prueba, el uso de la memoria, la configuración transparente, la seguridad posterior al quanto, el tiempo de prueba y el tiempo de verificación.Aunque inicialmente había dos líneas principales (Snarks vs Starks), los límites entre los dos han comenzado a desaparecer, intentando combinar las ventajas de diferentes sistemas de prueba.Por ejemplo, una combinación de diferentes esquemas aritméticos con nuevos esquemas de compromiso polinomial.Podemos esperar que los nuevos sistemas de prueba continúen emergiendo y el rendimiento mejore, y será difícil para algunos sistemas que tomen algún tiempo adaptarse para mantenerse al día con estos desarrollos a menos que podamos usar fácilmente estas herramientas sin cambiar una infraestructura central.
Referencias
[1] Enlace: https://blog.lambdaclass.com/our-highly-subjective-view-on-the-history-of- cero-knowledge-proofs/
[2] Plan de traducción de enlaces: https://github.com/lbc-team/pioneer
[3] Equipo de traducción: https://learnblockchain.cn/people/412
[4] Tiny Bear: https://learnblockchain.cn/people/15
[5] Learnblockchain.cn/article…: https://learnblockchain.cn/article/7422
[6] Artículo: https://blog.lambdaclass.com/transforming-the-future-with- cero- knowledge-proofs-fly homomomorfic-gryption-and-new-distributed-syst ems-algorithms/
[7] El brote cámbrico de la prueba de cifrado: https://medium.com/starkware/cambrian-explosion-of-cryptográfica-proofs-5740a41cdbd2?ref=blog.lambdaclass.com
[8] El siguiente video: https://www.youtube.com/watch?v=uchjtilpzfo& ;ref=blog.lambdaclass.com
[9] Protocolo SumCheck: https://blog.lambdaclass.com/have-you-checked-your-sums/
[10] Lund, Fortnow, Karloff y Nisan: https://dl.acm.org/doi/pdf/10.1145/146585.146605?ref=blog.lambdaclass.com
[11] Protocolo GKR: https://www.microsoft.com/en-us/research/wp-content/uploads/2016/12/2008-delegatingcomputation.pdf?ref=blog.lambdaclass.com
[12] Kate, Zaverucha y Goldberg: https://www.iac.org/archive/asiacrypt2010/6477178/6477178.pdf?ref=blog.lambdaclass.com
[13] EIP-4844: https://github.com/ethereum/eips/blob/master/eips/eip-4844.md?ref=blog.lambdaclass.com
[14] Puente de Mina-Ethereum: https://blog.lambdaclass.com/mina-to-ethereum-fridge/
[15] Pinocho: https://eprint.iac.org/2013/279?ref=blog.lambdaclass.com
[16] Groth: https://eprint.iac.org/2016/260.pdf?ref=blog.lambdaclass.com
[17] Nuevo argumento de conocimiento con rendimiento mejorado: https://blog.lambdaclass.com/groth16/
[18] Bootle et al.: Https://eprint.iac.org/2016/263?ref=blog.lambdaclass.com
[19] Sonic: https://eprint.iac.org/2019/099?ref=blog.lambdaclass.com
[20] Plonk: https://eprint.iac.org/2019/953?ref=blog.lambdaclass.com
[21] Marlin: https://eprint.iac.org/2019/1047?ref=blog.lambdaclass.com
[22] Plonk: https://blog.lambdaclass.com/all-you-wanted-to-know-bout-plonk/
[23] Prookup: https://eprint.iac.org/2020/315?ref=blog.lambdaclass.com
[24] Arya: https://eprint.iac.org/2018/380?ref=blog.lambdaclass.com
[25] Plonkup: https://eprint.iac.org/2022/086?ref=blog.lambdaclass.com
[26] logup: https://eprint.iac.org/2022/1530?ref=blog.lambdaclass.com
[27] Polygon Zkevm: https://toposware.medium.com/beyond-limits-pushing-the-boundaries-of-zk-evm-9dd0c5ec9fca?ref=blog.lambdaclass.com
[28] logup-gkr: https://eprint.iac.org/2023/1284?ref=blog.lambdaclass.com
[29] Caulk: https://eprint.iac.org/2022/621?ref=blog.lambdaclass.com
[30] Baloo: https://eprint.iac.org/2022/1565?ref=blog.lambdaclass.com
[31] Flookup: https://eprint.iac.org/2022/1447?ref=blog.lambdaclass.com
[32] CQ: https://eprint.iacr.org/2022/1763?ref=blog.lambdaclass.com
[33] Caulk+: https://eprint.iac.org/2022/957?ref=blog.lambdaclass.com
[34] Lasso: https://eprint.iac.org/2023/1216?ref=blog.lambdaclass.com
[35] Jolt: https://eprint.iac.org/2023/1217?ref=blog.lambdaclass.com
[36] Spartan: https://eprint.iac.org/2019/550?ref=blog.lambdaclass.com
[37] Hyperplonk: https://eprint.iac.org/2022/1355.pdf?ref=blog.lambdaclass.com
[38] Nova: https://eprint.iac.org/2021/370?ref=blog.lambdaclass.com
[39] Valiant: https: //https//iacr.org/archive/tcc2008/49480001/49480001.pdf? Ref = blog.lambdaclass.com
[40] Supernova: https://eprint.iac.org/2022/1758?ref=blog.lambdaclass.com
[41] Halo: https://eprint.iac.org/2019/1021.pdf?ref=blog.lambdaclass.com
[42] Protostar: https://eprint.iac.org/2023/620?ref=blog.lambdaclass.com
[43] Snarks para C: https://eprint.iac.org/2013/507?ref=blog.lambdaclass.com
[44] Starks: https://eprint.iac.org/2018/046?ref=blog.lambdaclass.com
[45] Protocolo de viernes: https://blog.lambdaclass.com/how-to-code-fri-from-scratch/
[46] Ligero: https://eprint.iac.org/2022/1608?ref=blog.lambdaclass.com
[47] Braedown: https://eprint.iac.org/2021/1043?ref=blog.lambdaclass.com
[48] Binius: https://blog.lambdaclass.com/snarks-on-binary-fields-binius/
[49] Zeromorph: https://eprint.iac.org/2023/917?ref=blog.lambdaclass.com
[50] Basefold: https://blog.lambdaclass.com/how-does-basefold-polynomial-commitmitmitmitmit-scheme-generalize-fri/
[51] CCS: https://eprint.iac.org/2023/552?ref=blog.lambdaclass.com
[52] DECERT.ME: https://decert.me/