Articulo de referencia

Prueba de conocimiento cero

En criptografía , una prueba de conocimiento cero (también conocida como prueba ZK o ZKP ) es un protocolo en el que una parte (el probador) puede convencer a otra parte (el ver...

En criptografía , una prueba de conocimiento cero (también conocida como prueba ZK o ZKP ) es un protocolo en el que una parte (el probador) puede convencer a otra parte (el verificador) de que una afirmación dada es verdadera, sin transmitirle al verificador ninguna información más allá del mero hecho de la veracidad de dicha afirmación. [ 1 ] La intuición detrás de la no trivialidad de las pruebas de conocimiento cero es que es trivial probar la posesión de la información relevante simplemente revelándola; la parte difícil es probar esta posesión sin revelar esta información (ni ningún aspecto de ella). [ 2 ]

En vista de que uno solo debería poder generar una prueba de una afirmación cuando posee cierta información secreta relacionada con dicha afirmación, el verificador, incluso después de haberse convencido de la veracidad de la afirmación mediante una prueba de conocimiento cero, no obstante debería seguir siendo incapaz de probar la afirmación ante terceros.

Las pruebas de conocimiento cero pueden ser interactivas, lo que significa que el probador y el verificador intercambian mensajes según algún protocolo, o no interactivas, lo que significa que el verificador se convence con un solo mensaje del probador y no se necesita ninguna otra comunicación. En el modelo estándar , se requiere interacción, excepto para pruebas triviales de problemas BPP . [ 3 ] En los modelos comunes de cadena aleatoria y oráculo aleatorio , existen pruebas de conocimiento cero no interactivas . La heurística Fiat-Shamir se puede utilizar para transformar ciertas pruebas de conocimiento cero interactivas en no interactivas. [ 4 ] [ 5 ] [ 6 ]

Ejemplos abstractos

La prueba de la tarjeta roja

Un ejemplo de prueba de conocimiento cero sin matemáticas sería si Peggy quisiera demostrarle a Victor que ha sacado una carta roja de una baraja estándar de 52 cartas, sin revelar qué carta roja específica tiene en la mano. Victor observa cómo Peggy saca una carta al azar de la baraja barajada, pero ella la mantiene boca abajo para que él no pueda verla.

Para demostrar que su carta es roja sin revelar su identidad, Peggy toma las 51 cartas restantes de la baraja y le muestra sistemáticamente a Victor las 26 cartas negras (las 13 picas y las 13 tréboles) una por una, colocándolas boca arriba sobre la mesa. Dado que una baraja estándar contiene exactamente 26 cartas rojas y 26 negras, y Peggy ha demostrado que todas las cartas negras permanecen en la baraja, Victor puede concluir con certeza que la carta oculta de Peggy debe ser roja.

Esta prueba es de conocimiento cero porque Víctor solo sabe que la carta de Peggy es roja, pero no obtiene información sobre si es de corazones o diamantes, ni sobre qué carta roja específica tiene. La prueba sería igualmente convincente tanto si Peggy tuviera el As de Corazones como el Dos de Diamantes. Además, incluso si la interacción se grabara, la grabación no revelaría la carta específica de Peggy a futuros observadores, manteniendo así la propiedad de conocimiento cero.

Si Peggy estuviera mintiendo y en realidad tuviera una carta negra, no podría sacar las 26 cartas negras de la baraja restante, lo que haría imposible el engaño. Esto demuestra la solidez del sistema de prueba. Este tipo de prueba física de conocimiento cero, que utiliza cartas de juego estándar, pertenece a una clase más amplia de protocolos criptográficos basados ​​en cartas que permiten a los participantes realizar cálculos seguros utilizando objetos cotidianos. [ 7 ]

¿Dónde está Wally?

Otro ejemplo conocido de prueba de conocimiento cero es el de "¿Dónde está Wally?". En este ejemplo, el probador tiene una página de un libro infantil de "¿Dónde está Wally?" , que muestra cientos de personajes de dibujos animados, de los cuales solo uno es el personaje visualmente inconfundible de Wally. El probador quiere demostrar al verificador que sabe dónde está Wally en la página, sin revelarle su ubicación. [ 8 ]

El probador comienza tomando una pizarra negra grande con un pequeño agujero del tamaño de Waldo. La pizarra es el doble de grande que el libro en ambas direcciones, por lo que el verificador no puede ver dónde la coloca el probador en la página. Luego, el probador coloca la pizarra sobre la página de manera que Waldo quede dentro del agujero. [ 8 ]

El verificador ahora puede mirar a través del agujero y ver a Waldo, pero no puede ver ninguna otra parte de la página. Por lo tanto, el probador ha demostrado al verificador que sabe dónde está Waldo, sin revelar ninguna otra información sobre su ubicación. [ 8 ]

Este ejemplo no constituye una prueba de conocimiento cero perfecta, ya que quien realiza la prueba revela cierta información sobre la ubicación de Waldo, como la posición de su cuerpo. Sin embargo, ilustra adecuadamente el concepto básico de una prueba de conocimiento cero.

La cueva de Alí Babá

Peggy toma el camino A o el B, mientras Victor espera afuera.
Víctor elige una ruta de salida al azar.
Peggy aparece invariablemente en la salida que menciona Victor.

Hay una historia muy conocida que presenta las ideas fundamentales de las pruebas de conocimiento cero, publicada por primera vez en 1990 por Jean-Jacques Quisquater y otros en su artículo "Cómo explicar los protocolos de conocimiento cero a sus hijos". [ 9 ] Las dos partes en la historia de la prueba de conocimiento cero son Peggy como la probadora de la afirmación y Victor , el verificador de la afirmación.

En esta historia, Peggy ha descubierto la palabra secreta que abre una puerta mágica en una cueva. La cueva tiene forma de anillo, con la entrada en un lado y la puerta mágica bloqueando el lado opuesto. Victor quiere saber si Peggy conoce la palabra secreta; pero Peggy, siendo una persona muy reservada, no quiere revelar su conocimiento (la palabra secreta) ni a Victor ni al mundo en general.

Etiquetan los caminos desde la entrada como A y B. Primero, Víctor espera fuera de la cueva mientras Peggy entra. Peggy toma el camino A o el B; Víctor no puede ver cuál toma. Luego, Víctor entra en la cueva y grita el nombre del camino que quiere que ella use para regresar, A o B, elegido al azar. Si realmente conoce la palabra mágica, es fácil: abre la puerta, si es necesario, y regresa por el camino indicado.

Sin embargo, supongamos que ella no supiera la palabra. Entonces, solo podría regresar por el camino indicado si Victor le diera el nombre del mismo camino por el que entró. Dado que Victor elegiría A o B al azar, ella tendría un 50% de probabilidad de adivinar correctamente. Si repitieran este truco muchas veces, digamos 20 veces seguidas, su probabilidad de anticipar con éxito todas las peticiones de Victor se reduciría a 1 en 2 20 , o 9,54 × 10 −7 .

Por lo tanto, si Peggy aparece repetidamente en la salida que Victor menciona, entonces puede concluir que es extremadamente probable que Peggy, de hecho, conozca la palabra secreta.

Observación externa

Respecto a los observadores externos: incluso si Victor lleva una cámara oculta que graba toda la transacción, lo único que registrará será, en un caso, que Victor grita "¡A!" y Peggy aparece en A, o en otro, que Victor grita "¡B!" y Peggy aparece en B. Sería muy fácil falsificar una grabación de este tipo (solo se necesitaría que Peggy y Victor acordaran de antemano la secuencia de "A" y "B" que Victor gritará). Dicha grabación jamás convencerá a nadie más que a los participantes originales. De hecho, incluso una persona presente como observador en el experimento original no debería estar convencida, ya que Victor y Peggy podrían haber orquestado todo el "experimento" de principio a fin.

Además, si Victor elige sus A y B lanzando una moneda frente a la cámara, este protocolo pierde su propiedad de conocimiento cero; el lanzamiento de la moneda frente a la cámara probablemente resultaría convincente para cualquier persona que viera la grabación posteriormente. Por lo tanto, aunque esto no revela la palabra secreta a Victor, sí le permite convencer al mundo en general de que Peggy posee ese conocimiento, en contra de los deseos expresados ​​por Peggy. Sin embargo, la criptografía digital generalmente "lanza monedas" basándose en un generador de números pseudoaleatorios , que es similar a una moneda con un patrón fijo de caras y cruces conocido solo por su dueño. Si la moneda de Victor se comportara de esta manera, entonces nuevamente sería posible que Victor y Peggy hubieran falsificado el experimento, por lo que usar un generador de números pseudoaleatorios no revelaría el conocimiento de Peggy al mundo de la misma manera que lo haría usar una moneda lanzada.

Peggy podría demostrarle a Victor que conoce la palabra mágica, sin revelársela, en una sola prueba. Si ambos van juntos a la entrada de la cueva, Victor puede observar cómo Peggy entra por A y sale por B. Esto probaría con certeza que Peggy conoce la palabra mágica, sin que Victor se la revele. Sin embargo, dicha prueba podría ser observada por un tercero o grabada por Victor, y resultaría convincente para cualquiera. En otras palabras, Peggy no podría refutar la prueba alegando complicidad con Victor, y por lo tanto, ya no tiene control sobre quién conoce su conocimiento.

Dos pelotas y el amigo daltónico

Imagina que Víctor es daltónico ( a diferencia de Peggy) y que Peggy tiene dos pelotas: una roja y otra verde, pero idénticas en todo lo demás. Para Víctor, las pelotas parecen completamente iguales. Víctor duda de que realmente se puedan distinguir. Peggy quiere demostrarle a Víctor que, de hecho, las pelotas son de colores diferentes , pero nada más. En concreto, Peggy no quiere revelar cuál es la pelota roja y cuál la verde.

Este es el sistema de prueba: Peggy le da las dos bolas a Victor y él las coloca detrás de su espalda. Luego, toma una de las bolas, la saca y la muestra. Después, la vuelve a colocar detrás de su espalda y elige mostrar solo una de las dos bolas, escogiéndola al azar con igual probabilidad. Le preguntará a Peggy: "¿Cambié la bola?". Todo este procedimiento se repite tantas veces como sea necesario.

Al observar los colores de las bolas, Peggy puede, por supuesto, afirmar con certeza si las intercambió o no. Por otro lado, si las bolas fueran del mismo color y, por lo tanto, indistinguibles, la capacidad de Peggy para determinar si hubo un intercambio no sería mejor que adivinar al azar. Dado que la probabilidad de que Peggy hubiera acertado aleatoriamente en cada caso de intercambio es del 50%, la probabilidad de haber acertado aleatoriamente en todos los casos de intercambio se acerca a cero.

Tras varios intentos, la tasa de éxito convergería estadísticamente al 50%, y Peggy no lograría un resultado significativamente mejor que el azar. Si Peggy y Victor repiten esta "prueba" varias veces (por ejemplo, 20 veces), Victor debería convencerse de que las bolas son, en efecto, de colores diferentes.

La demostración anterior es de conocimiento cero porque Victor nunca aprende qué bola es verde y cuál es roja; de hecho, no adquiere ningún conocimiento sobre cómo distinguir las bolas. [ 10 ]

Definición

Una prueba de conocimiento cero de alguna afirmación debe satisfacer tres propiedades:

  1. Completitud : si la afirmación es verdadera, un verificador honesto (es decir, uno que siga el protocolo correctamente) se convencerá de este hecho por un probador honesto.
  2. Solidez : si la afirmación es falsa, ningún probador que haga trampa podrá convencer a un verificador honesto de que es verdadera, salvo con una pequeña probabilidad.
  3. Conocimiento cero : si la afirmación es verdadera, ningún verificador obtiene información adicional aparte de la veracidad de la afirmación. En otras palabras, basta con conocer la afirmación (no el secreto) para imaginar un escenario que demuestre que el probador conoce el secreto. Esto se formaliza demostrando que cada verificador posee un simulador que, con solo la afirmación a probar (y sin acceso al probador), puede generar una transcripción que simula una interacción entre un probador honesto y el verificador en cuestión.

Las dos primeras son propiedades de sistemas de prueba interactivos más generales . La tercera es lo que hace que la prueba sea de conocimiento cero. [ 11 ]

Las pruebas de conocimiento cero no son pruebas en el sentido matemático del término, ya que existe una pequeña probabilidad, el error de solidez , de que un probador que haga trampa logre convencer al verificador de una afirmación falsa. En otras palabras, las pruebas de conocimiento cero son "pruebas" probabilísticas, no deterministas. Sin embargo, existen técnicas para reducir el error de solidez a valores insignificantes (por ejemplo, adivinar correctamente cien o mil decisiones binarias tiene un error de solidez de 1/2 100 o 1/2 1000 , respectivamente. A medida que aumenta el número de bits, el error de solidez tiende a cero).

Una definición formal de conocimiento cero debe utilizar algún modelo computacional, siendo el más común el de una máquina de Turing . Sean P , V y S máquinas de Turing. Un sistema de prueba interactivo con ( P , V ) para un lenguaje L es de conocimiento cero si para cualquier verificador de tiempo polinomial probabilístico (PPT)V^{\displaystyle {\hat {V}}}Existe un simulador PPT S tal que:

incógnitaL,z{0,1},VistaV^[PAG(incógnita)V^(incógnita,z)]=S(incógnita,z),{\displaystyle \forall x\in L,z\in \{0,1\}^{*},\operatorname {View} _{\hat {V}}\left[P(x)\leftrightarrow {\hat {V}}(x,z)\right]=S(x,z),}

donde VerV^{\displaystyle {\hat {V}}}[ P ( x ) V^{\displaystyle {\hat {V}}}( x , z )] es un registro de las interacciones entre P ( x ) y V ( x , z ) . El probador P se modela como si tuviera un poder computacional ilimitado (en la práctica, P suele ser una máquina de Turing probabilística ). Intuitivamente, la definición establece que un sistema de prueba interactivo ( P , V ) es de conocimiento cero si para cualquier verificadorV^{\displaystyle {\hat {V}}}existe un simulador eficiente S (dependiendo deV^{\displaystyle {\hat {V}}}) que puede reproducir la conversación entre P yV^{\displaystyle {\hat {V}}}en cualquier entrada dada. La cadena auxiliar z en la definición juega el papel de "conocimiento previo" (incluidas las monedas aleatorias deV^{\displaystyle {\hat {V}}}). La definición implica queV^{\displaystyle {\hat {V}}}no puede utilizar ninguna cadena de conocimiento previo z para extraer información de su conversación con P , porque si a S también se le da este conocimiento previo, entonces puede reproducir la conversación entreV^{\displaystyle {\hat {V}}}y P igual que antes.

La definición dada es la de conocimiento cero perfecto. El conocimiento cero computacional se obtiene al requerir que las vistas del verificadorV^{\displaystyle {\hat {V}}}y el simulador son indistinguibles computacionalmente , dada la cadena auxiliar. [ 12 ]

Ejemplos prácticos

Logaritmo discreto de un valor dado

Estas ideas se pueden aplicar a una aplicación criptográfica más realista. Peggy quiere demostrarle a Victor que conoce el logaritmo discreto de un valor dado en un grupo dado . [ 13 ]

Por ejemplo, dado un valor y , un primo grande p y un generadorgramo{\displaystyle g}, ella quiere demostrar que conoce un valor x tal que g xy (mod p ) , sin revelar x . De hecho, el conocimiento de x podría usarse como prueba de identidad, ya que Peggy podría tener dicho conocimiento porque eligió un valor aleatorio x que no reveló a nadie, calculó y = g x mod p , y distribuyó el valor de y a todos los verificadores potenciales, de modo que en un momento posterior, probar el conocimiento de x es equivalente a probar la identidad como Peggy.

El protocolo procede de la siguiente manera: en cada ronda, Peggy genera un número aleatorio r , calcula C = g r mod p y se lo revela a Victor. Después de recibir C , Victor emite aleatoriamente una de las dos siguientes solicitudes: o bien solicita que Peggy revele el valor de r , o bien el valor de ( x + r ) mod ( p 1) .

Víctor puede verificar cualquiera de las dos respuestas; si solicitó r , puede calcular g r mod p y verificar que coincide con C. Si solicitó ( x + r ) mod ( p 1) , puede verificar que C es consistente con esto, calculando g ( x + r ) mod ( p 1) mod p y verificando que coincide con ( C · y ) mod p . Si Peggy conoce el valor de x , puede responder a cualquiera de los posibles desafíos de Víctor.

Si Peggy supiera o pudiera adivinar qué desafío le va a plantear Victor, podría engañar fácilmente y convencerlo de que sabe x cuando no lo sabe: si sabe que Victor va a pedir r , procede normalmente: elige r , calcula C = g r mod p y le revela C a Victor; podrá responder al desafío de Victor. Por otro lado, si sabe que Victor pedirá ( x + r ) mod ( p 1) , elige un valor aleatorio r , calcula C g r · ( g x ) 1 mod p y le revela C a Victor como el valor de C que espera. Cuando Victor la desafía a revelar ( x + r ) mod ( p 1) , ella revela r , para lo cual Victor verificará la consistencia, ya que a su vez calculará g r mod p , que coincide con C · y , puesto que Peggy multiplicó por el inverso multiplicativo modular de y .

Sin embargo, si en cualquiera de los escenarios anteriores Victor plantea un desafío distinto al que ella esperaba y para el cual fabricó el resultado, entonces no podrá responder al desafío bajo el supuesto de inviabilidad de resolver el logaritmo discreto para este grupo. Si escogió r y reveló C = g r mod p , entonces no podrá producir un ( x + r ) mod ( p 1) válido que pasaría la verificación de Victor, dado que no conoce x . Y si escogió un valor r que se presenta como ( x + r ) mod ( p 1) , entonces tendría que responder con el logaritmo discreto del valor que reveló , pero Peggy no conoce este logaritmo discreto, ya que el valor C que reveló se obtuvo mediante aritmética con valores conocidos, y no calculando una potencia con un exponente conocido. 

Por lo tanto, un probador que intenta hacer trampa tiene una probabilidad de 0,5 de tener éxito en una ronda. Al realizar un número suficientemente grande de rondas, la probabilidad de que un probador que intenta hacer trampa tenga éxito puede hacerse arbitrariamente baja.

Para demostrar que la prueba interactiva anterior no aporta ningún conocimiento más allá del hecho de que Peggy conoce x , se pueden utilizar argumentos similares a los empleados en la prueba anterior de completitud y solidez. Específicamente, un simulador, digamos Simon, que no conoce x , puede simular el intercambio entre Peggy y Victor mediante el siguiente procedimiento. Primero, Simon lanza una moneda justa al azar . Si el resultado es "cara", elige un valor aleatorio r , calcula C = g r mod p y revela C como si fuera un mensaje de Peggy a Victor. Luego, Simon también emite un mensaje "solicitar el valor de r " como si fuera enviado por Victor a Peggy, e inmediatamente emite el valor de r como si fuera enviado por Peggy a Victor. Se completa una ronda. Por otro lado, si el resultado del lanzamiento de la moneda es "cruz", Simon elige un número aleatorio r , calcula C = g r · y 1 mod p y revela C como si fuera un mensaje de Peggy a Victor. Luego, Simon imprime "solicitar el valor de ( x + r ) mod ( p 1) " como si fuera un mensaje de Victor a Peggy. Finalmente, Simon imprime el valor de r como si fuera la respuesta de Peggy a Victor. Se completa una ronda. Según los argumentos anteriores para demostrar la completitud y la solidez, la comunicación interactiva simulada por Simon es indistinguible de la correspondencia real entre Peggy y Victor. Por lo tanto, se garantiza la propiedad de conocimiento cero.

Ciclo hamiltoniano para un grafo grande

El siguiente esquema se debe a Manuel Blum . [ 14 ]

En este escenario, Peggy conoce un ciclo hamiltoniano para un grafo grande G. Victor conoce G , pero no el ciclo (por ejemplo, Peggy generó G y se lo reveló). Se cree que encontrar un ciclo hamiltoniano para un grafo grande es computacionalmente inviable, ya que se sabe que su versión de decisión correspondiente es NP-completa . Peggy demostrará que conoce el ciclo sin simplemente revelarlo (quizás Victor esté interesado en comprarlo, pero quiera verificarlo primero, o tal vez Peggy sea la única que conoce esta información y esté demostrando su identidad a Victor).

Para demostrar que Peggy conoce este ciclo hamiltoniano, ella y Victor juegan varias rondas de un juego:

  • Al comienzo de cada ronda, Peggy crea H , un grafo isomorfo a G ( es decir, H es igual a G excepto que todos los vértices tienen nombres diferentes). Dado que es trivial traducir un ciclo hamiltoniano entre grafos isomorfos con isomorfismo conocido, si Peggy conoce un ciclo hamiltoniano para G , también debe conocer uno para H.
  • Peggy se compromete con H. Podría hacerlo mediante un esquema de compromiso criptográfico . Alternativamente, podría numerar los vértices de H. Luego, para cada arista de H , escribe en un pequeño trozo de papel los dos vértices que une dicha arista. Después, coloca todos estos trozos de papel boca abajo sobre una mesa. El propósito de este compromiso es que Peggy no pueda modificar H, mientras que, al mismo tiempo, Victor no tenga información sobre H.
  • Victor entonces elige al azar una de dos preguntas para hacerle a Peggy. Puede pedirle que muestre el isomorfismo entre H y G (ver problema de isomorfismo de grafos ) , o puede pedirle que muestre un ciclo hamiltoniano en H.
  • Si se le pide a Peggy que demuestre que los dos grafos son isomorfos, primero descubre todo H (por ejemplo, volteando todos los papeles que puso sobre la mesa) y luego proporciona las traslaciones de los vértices que transforman G en H. Victor puede verificar que, en efecto, son isomorfos.
  • Si se le pide a Peggy que demuestre que conoce un ciclo hamiltoniano en H , entonces traslada su ciclo hamiltoniano de G a H y solo descubre las aristas del ciclo hamiltoniano. Es decir, Peggy solo voltea exactamente | V ( G ) | de los trozos de papel que corresponden a las aristas del ciclo hamiltoniano, dejando el resto boca abajo. Esto es suficiente para que Victor compruebe que H contiene, en efecto, un ciclo hamiltoniano.

Es importante que el compromiso con el grafo sea tal que Victor pueda verificar, en el segundo caso, que el ciclo está realmente formado por aristas de H. Esto se puede hacer, por ejemplo, comprometiéndose con cada arista (o su ausencia) por separado.

Lo completo

Si Peggy conoce un ciclo hamiltoniano en G , entonces puede satisfacer fácilmente la demanda de Victor de obtener el isomorfismo de grafos que produce H a partir de G (al que se había comprometido en el primer paso) o un ciclo hamiltoniano en H (que puede construir aplicando el isomorfismo al ciclo en G ).

Conocimiento cero

Las respuestas de Peggy no revelan el ciclo hamiltoniano original en G. En cada ronda, Victor solo aprenderá el isomorfismo de H a G o un ciclo hamiltoniano en H. Necesitaría ambas respuestas para un solo H para descubrir el ciclo en G , por lo que la información permanece desconocida mientras Peggy pueda generar un H distinto en cada ronda. Si Peggy no conoce un ciclo hamiltoniano en G , pero de alguna manera supiera de antemano qué pediría Victor en cada ronda, podría hacer trampa. Por ejemplo, si Peggy supiera de antemano que Victor pediría ver el ciclo hamiltoniano en H , podría generar un ciclo hamiltoniano para un grafo no relacionado. De manera similar, si Peggy supiera de antemano que Victor pediría ver el isomorfismo, podría simplemente generar un grafo isomorfo H (en el que tampoco conoce un ciclo hamiltoniano). Victor podría simular el protocolo por sí mismo (sin Peggy) porque sabe qué pedirá ver. Por lo tanto, Victor no obtiene información sobre el ciclo hamiltoniano en G a partir de la información revelada en cada ronda.

Solvencia

Si Peggy desconoce la información, puede adivinar qué pregunta le hará Victor y generar un grafo isomorfo a G o un ciclo hamiltoniano para un grafo no relacionado. Sin embargo, como desconoce un ciclo hamiltoniano para G , no puede hacer ambas cosas. Con esta suposición, su probabilidad de engañar a Victor es 2 n , donde n es el número de rondas. En la práctica, resulta prácticamente imposible refutar una prueba de conocimiento cero con un número razonable de rondas de esta manera.

Variantes del conocimiento cero

Se pueden definir diferentes variantes del conocimiento cero formalizando el concepto intuitivo de lo que significa que la salida del simulador "se parezca" a la ejecución del protocolo de prueba real de las siguientes maneras:

  • Hablamos de conocimiento cero perfecto si las distribuciones producidas por el simulador y el protocolo de prueba son exactamente iguales. Este es el caso, por ejemplo, del primer ejemplo anterior.
  • El conocimiento cero estadístico [ 15 ] significa que las distribuciones no son necesariamente exactamente iguales, pero son estadísticamente cercanas , lo que significa que su diferencia estadística es una función insignificante .
  • Hablamos de conocimiento cero computacional si ningún algoritmo eficiente puede distinguir las dos distribuciones.

Tipos de conocimiento cero

Existen varios tipos de pruebas de conocimiento cero:

Los esquemas de prueba de conocimiento cero se pueden construir a partir de varias primitivas criptográficas, como la criptografía basada en funciones hash , la criptografía basada en emparejamientos , la computación multipartita o la criptografía basada en retículos .

Aplicaciones

Generalmente, las pruebas de conocimiento cero se utilizan en los protocolos para garantizar un comportamiento honesto y, al mismo tiempo, preservar la privacidad. En términos generales, la idea es obligar al usuario a demostrar, mediante una prueba de conocimiento cero, que su comportamiento es correcto según el protocolo. [ 1 ] [ 16 ]

Sistemas de autenticación

La investigación en pruebas de conocimiento cero se ha visto impulsada por sistemas de autenticación en los que una parte desea demostrar su identidad a una segunda parte mediante información secreta (como una contraseña), pero sin que esta última conozca dicha información. Esto se conoce como " prueba de conocimiento de conocimiento cero ". Sin embargo, una contraseña suele ser demasiado corta o insuficientemente aleatoria para utilizarse en muchos esquemas de pruebas de conocimiento de conocimiento cero. Una prueba de contraseña de conocimiento cero es un tipo especial de prueba de conocimiento de conocimiento cero que aborda la limitación del tamaño de las contraseñas.

En abril de 2015, se introdujo el protocolo de prueba uno de muchos (un protocolo Sigma ). [ 17 ] En agosto de 2021, Cloudflare , una empresa estadounidense de infraestructura web y seguridad, decidió utilizar el mecanismo de prueba uno de muchos para la verificación web privada mediante hardware del proveedor. [ 18 ]

desarme nuclear

En 2016, el Laboratorio de Física de Plasmas de Princeton y la Universidad de Princeton demostraron una técnica que podría ser aplicable a futuras negociaciones sobre desarme nuclear . Esta técnica permitiría a los inspectores confirmar si un objeto es o no un arma nuclear sin necesidad de registrar, compartir ni revelar su funcionamiento interno, que podría ser secreto. [ 19 ]

Cadenas de bloques

Las pruebas de conocimiento cero se aplicaron en los protocolos Zerocoin y Zerocash, que culminaron en el nacimiento de las criptomonedas Zcoin [ 20 ] (más tarde renombrada como Firo en 2020) [ 21 ] y Zcash en 2016. Zerocoin tiene un modelo de mezcla incorporado que no confía en ningún par ni en proveedores de mezcla centralizados para garantizar el anonimato. [ 20 ] Los usuarios pueden realizar transacciones en una moneda base y pueden intercambiar la moneda dentro y fuera de Zerocoins. [ 22 ] El protocolo Zerocash utiliza un modelo similar (una variante conocida como prueba de conocimiento cero no interactiva ) [ 23 ] excepto que puede ocultar el monto de la transacción, mientras que Zerocoin no puede.

En 2018 se introdujeron las Bulletproofs. Las Bulletproofs representan una mejora con respecto a las pruebas de conocimiento cero no interactivas, donde no se requiere una configuración de confianza. [ 24 ]

Identidad

Debido a las firmas asimétricas en documentos como pasaportes y correos electrónicos , se pueden realizar pruebas de conocimiento cero de la identidad de las personas para verificar información personal de forma privada. Por ejemplo, se puede demostrar a un sitio web que se es mayor de 18 años, sin revelar otros detalles como el nombre exacto o el país de origen, demostrando, mediante pruebas de conocimiento cero, que se posee un pasaporte firmado con una clave gubernamental válida para una edad superior a 18 años. [ 25 ] De manera similar, mediante pruebas de conocimiento cero de las firmas DKIM de los correos electrónicos, las personas pueden demostrar que compraron o transfirieron un dominio o una entrada para un concierto, que poseen un nombre de usuario en una red social o que realizaron un pedido en un servicio de comercio electrónico. [ 26 ] La propiedad de conocimiento cero permite a las personas mantener la privacidad de su identidad y dirección de correo electrónico. Esto puede utilizarse para facilitar elecciones privadas y justas, [ 27 ] mercados secundarios de bajo coste, [ 28 ] y servicios de denuncia de irregularidades. [ 29 ]

SQL

Una línea de trabajo relacionada aplica pruebas de conocimiento cero al análisis de bases de datos mediante los llamados "coprocesadores" de conocimiento cero: sistemas fuera de la cadena que ejecutan consultas y devuelven tanto el resultado como una prueba de que el cálculo se realizó correctamente sobre datos no alterados. Los prototipos académicos han demostrado cómo producir pruebas de conocimiento cero para consultas SQL ad hoc, ocultando las entradas y garantizando la corrección del resultado (por ejemplo, ZKSQL). [ 30 ]

Historia

Las pruebas de conocimiento cero fueron concebidas por primera vez en 1985 por Shafi Goldwasser , Silvio Micali y Charles Rackoff en su artículo "The Knowledge Complexity of Interactive Proof-Systems" [ 1 ] . Este artículo introdujo la jerarquía IP de los sistemas de prueba interactivos ( véase sistema de prueba interactivo ) y concibió el concepto de complejidad del conocimiento , una medida de la cantidad de conocimiento sobre la prueba transferido del probador al verificador. También proporcionaron la primera prueba de conocimiento cero para un problema concreto: la decisión de residuos no cuadráticos módulo m . Junto con un artículo de László Babai y Shlomo Moran , este artículo fundamental inventó los sistemas de prueba interactivos, por los que los cinco autores ganaron el primer Premio Gödel en 1993.

En sus propias palabras, Goldwasser, Micali y Rackoff dicen:

De particular interés es el caso en el que este conocimiento adicional es esencialmente 0 y mostramos que [es] posible probar interactivamente que un número es cuadrático no residuo módulo m liberando 0 conocimiento adicional. Esto es sorprendente ya que no se conoce ningún algoritmo eficiente para decidir la residuoidad cuadrática módulo m cuando mNo se proporciona la factorización de m. Además, todas las pruebas NP conocidas para este problema muestran la factorización prima de m . Esto indica que añadir interacción al proceso de demostración puede disminuir la cantidad de conocimiento que debe comunicarse para probar un teorema.

El problema cuadrático de no residuos tiene un algoritmo NP y otro co-NP , por lo que se encuentra en la intersección de NP y co-NP. Esto también fue cierto para otros problemas para los que posteriormente se descubrieron pruebas de conocimiento cero, como un sistema de prueba no publicado de Oded Goldreich que verifica que un módulo de dos primos no es un entero de Blum . [ 31 ]

Oded Goldreich , Silvio Micali y Avi Wigderson fueron un paso más allá, demostrando que, asumiendo la existencia de un cifrado irrompible, se puede crear un sistema de prueba de conocimiento cero para el problema de coloración de grafos NP-completo con tres colores. Dado que todo problema en NP puede reducirse eficientemente a este problema, esto significa que, bajo esta suposición, todos los problemas en NP tienen pruebas de conocimiento cero. [ 32 ] La razón de la suposición es que, como en el ejemplo anterior, sus protocolos requieren cifrado. Una condición suficiente comúnmente citada para la existencia de un cifrado irrompible es la existencia de funciones unidireccionales , pero es concebible que algún medio físico también pueda lograrlo.

Además, demostraron que el problema de no isomorfismo de grafos , complemento del problema de isomorfismo de grafos , tiene una prueba de conocimiento cero. Este problema pertenece a co-NP, pero actualmente no se sabe que pertenezca a NP ni a ninguna clase práctica. De forma más general, Russell Impagliazzo y Moti Yung, así como Ben-Or et al., demostrarían que, incluso asumiendo funciones unidireccionales o cifrado irrompible, existen pruebas de conocimiento cero para todos los problemas en IP  = PSPACE , o dicho de otro modo, cualquier cosa que pueda probarse mediante un sistema de prueba interactivo puede probarse con conocimiento cero. [ 33 ] [ 34 ] 

Para evitar suposiciones innecesarias, muchos teóricos buscaron una manera de eliminar la necesidad de funciones unidireccionales . Una forma de lograrlo fue mediante sistemas de prueba interactivos con múltiples probadores (véase sistema de prueba interactivo ), que cuentan con varios probadores independientes en lugar de uno solo, lo que permite al verificador "examinar" a los probadores de forma aislada para evitar errores. Se puede demostrar que, sin ninguna suposición de intratabilidad, todos los lenguajes en NP tienen pruebas de conocimiento cero en dicho sistema. [ 35 ]

Resulta que, en un entorno similar a Internet, donde se pueden ejecutar múltiples protocolos simultáneamente, construir pruebas de conocimiento cero es más complejo. La línea de investigación sobre pruebas de conocimiento cero concurrentes fue iniciada por el trabajo de Dwork , Naor y Sahai . [ 36 ] Un desarrollo particular en este sentido ha sido el desarrollo de protocolos de prueba indistinguibles por testigo . La propiedad de indistinguibilidad por testigo está relacionada con la de conocimiento cero, pero los protocolos indistinguibles por testigo no sufren los mismos problemas de ejecución concurrente. [ 37 ]

Otra variante de las pruebas de conocimiento cero son las pruebas de conocimiento cero no interactivas . Blum, Feldman y Micali demostraron que una cadena aleatoria común compartida entre el probador y el verificador es suficiente para lograr el conocimiento cero computacional sin necesidad de interacción. [ 5 ] [ 6 ]

Protocolos

Los protocolos de prueba de conocimiento cero interactivos o no interactivos más populares (por ejemplo, zk-SNARK) se pueden categorizar ampliamente en las siguientes cuatro categorías: Argumentos de conocimiento sucintos no interactivos (SNARK), Argumento de conocimiento transparente escalable (STARK), Delegación polinomial verificable (VPD) y Argumentos sucintos no interactivos (SNARG). A continuación se proporciona una lista de protocolos y bibliotecas de prueba de conocimiento cero junto con comparaciones basadas en transparencia , universalidad , seguridad postcuántica plausible y paradigma de programación . [ 38 ] Un protocolo transparente es aquel que no requiere ninguna configuración de confianza y utiliza aleatoriedad pública. Un protocolo universal es aquel que no requiere una configuración de confianza separada para cada circuito. Finalmente, un protocolo postcuántico plausible es aquel que no es susceptible a ataques conocidos que involucran algoritmos cuánticos .

Vulnerabilidades de seguridad de los sistemas de conocimiento cero

Si bien las pruebas de conocimiento cero ofrecen una forma segura de verificar la información, los circuitos aritméticos que las implementan deben diseñarse cuidadosamente. Si estos circuitos carecen de las restricciones suficientes, pueden introducir vulnerabilidades de seguridad sutiles pero críticas.

Una de las clases más comunes de vulnerabilidades en estos sistemas es la lógica con restricciones insuficientes, donde la falta de restricciones permite que un probador malicioso produzca una prueba para una afirmación incorrecta que aún así supera la verificación. Una sistematización de ataques conocidos realizada en 2024 reveló que aproximadamente el 96 % de los errores documentados en la capa de circuitos de los sistemas basados ​​en SNARK se debían a circuitos con restricciones insuficientes. [ 59 ]

Estas vulnerabilidades suelen surgir durante la traducción de lógica de alto nivel a sistemas de restricciones de bajo nivel, especialmente al utilizar lenguajes específicos de dominio como Circom o Gnark. Investigaciones recientes han demostrado que probar formalmente el determinismo —garantizar que las salidas de un circuito estén determinadas de forma unívoca por sus entradas— puede eliminar clases enteras de estas vulnerabilidades. [ 60 ]

Máquinas virtuales de conocimiento cero

Las máquinas virtuales de conocimiento cero (zkVM) son computadoras virtuales de propósito general diseñadas para ejecutar código y generar pruebas de conocimiento cero que verifican fuera de la cadena, sin revelar entradas privadas, que el código se ejecutó correctamente y produjo el resultado declarado. [ 61 ] Una prueba es un archivo binario compacto y estructurado que cualquier persona puede verificar eficientemente utilizando la herramienta de verificación de la zkVM sin volver a ejecutar el cálculo original.

Las zkVM ofrecen ventajas tanto para el desarrollo como para la seguridad. Mediante una zkVM, los desarrolladores pueden ejecutar y verificar cálculos complejos fuera de la cadena, evitando los altos costos de "gas" (tarifas de procesamiento de la cadena de bloques) y manteniendo la privacidad del código o los datos. Varias zkVM desarrolladas recientemente, como las de RISC Zero y Succinct Labs, son compatibles con el conjunto de instrucciones RISC-V , lo que permite a los programadores escribir código en lenguajes de programación convencionales como Rust en lugar de utilizar un lenguaje de circuitos específico de dominio como Circom. [ 62 ] Otras zkVM adoptan enfoques diferentes, centrándose en WebAssembly (WASM) o implementando conjuntos de instrucciones personalizados optimizados para el rendimiento de conocimiento cero o la integración con entornos de cadena de bloques particulares.

Véase también

Referencias

  1. 1 2 3 Goldwasser, S.; Micali, S.; Rackoff, C. (1989), "La complejidad del conocimiento de los sistemas de prueba interactivos" (PDF) , SIAM Journal on Computing , 18 (1): 186–208 , doi : 10.1137/0218012 , ISSN 1095-7111 
  2. Goldreich, Oded (2001). Fundamentos de la criptografía, Volumen I. Cambridge University Press. pág. 184. doi : 10.1017/CBO9780511546891 . ISBN  978-0-511-54689-1.
  3. Goldreich, Oded (2001). Fundamentos de la criptografía, Volumen I. Cambridge University Press. pág. 247. doi : 10.1017/CBO9780511546891 . ISBN  978-0-511-54689-1.
  4. Goldreich, Oded (2001). Fundamentos de la criptografía, Volumen I. Cambridge University Press. pág. 299. doi : 10.1017/CBO9780511546891 . ISBN  978-0-511-54689-1.
  5. 1 2 Blum, Manuel; Feldman, Paul; Micali, Silvio (1988). "Conocimiento cero no interactivo y sus aplicaciones". Actas del vigésimo simposio anual de la ACM sobre Teoría de la Computación - STOC '88 (PDF) . págs. 103–112 . doi : 10.1145/62212.62222 . ISBN  978-0-89791-264-8. S2CID 7282320 . Archivado (PDF) del original el 14 de diciembre de 2018 . Recuperado el 2 de junio de 2022 . 
  6. 1 2 Wu, Huixin; Wang, Feng (2014). "Un estudio del sistema de prueba de conocimiento cero no interactivo y sus aplicaciones" . The Scientific World Journal . 2014 560484. doi : 10.1155/2014/560484 . PMC 4032740. PMID 24883407 .  
  7. "Criptografía con cartas de juego" . Cuatro años restantes . Consultado el 4 de junio de 2025 .
  8. 1 2 3 Murtagh, Jack (1 de julio de 2023). "¿Dónde está Wally? Cómo probar matemáticamente que lo encontraste sin revelar dónde está" . Scientific American . Recuperado el 2 de octubre de 2023 .
  9. Quisquater, Jean-Jacques; Guillou, Louis C.; Berson, Thomas A. (1990). «Cómo explicar los protocolos de conocimiento cero a sus hijos». Avances en criptología — Actas de CRYPTO' 89 (PDF) . Notas de clase en informática. Vol. 435. págs. 628–631 . doi : 10.1007/0-387-34805-0_60 . ISBN   978-0-387-97317-3.
  10. Chalkias, Konstantinos. "Demuestra cómo funcionan las pruebas de conocimiento cero sin usar matemáticas" . CordaCon 2017. Consultado el 13 de septiembre de 2017 .
  11. Feige, Uriel; Fiat, Amos; Shamir, Adi (1988-06-01). "Pruebas de identidad de conocimiento cero" . Journal of Cryptology . 1 (2): 77– 94. doi : 10.1007/BF02351717 . ISSN 1432-1378 . S2CID 2950602 .  
  12. Ishai, Yuval; Kushilevitz, Eyal; Ostrovsky, Rafail; Sahai, Amit (2007). "Conocimiento cero a partir de la computación multipartita segura" (PDF) . STOC '07: Actas del trigésimo noveno simposio anual de la ACM sobre teoría de la computación . doi : 10.1145/1250790.1250794 . ISBN 978-1-59593-631-8. Consultado el 25 de septiembre de 2025 .
  13. ^ Chaum, David; Evertse, Jan-Hendrik; van de Graaf, Jeroen (1988). "Un protocolo mejorado para demostrar la posesión de logaritmos discretos y algunas generalizaciones". Avances en criptología: EUROCRYPT '87 . Apuntes de conferencias sobre informática. vol. 304. págs. 127–141 . doi : 10.1007/3-540-39118-5_13 . ISBN   978-3-540-19102-5.
  14. Blum, Manuel (1986). "Cómo demostrar un teorema para que nadie más pueda reclamarlo" (PDF) . Actas del ICM : 1444–1451 . CiteSeerX 10.1.1.469.9048 . Archivado (PDF) del original el 3 de enero de 2023. 
  15. Sahai, Amit; Vadhan, Salil (1 de marzo de 2003). "Un problema completo para el conocimiento cero estadístico" ( PDF) . Journal of the ACM . 50 (2): 196–249 . CiteSeerX 10.1.1.4.3957 . doi : 10.1145/636865.636868 . S2CID 218593855. Archivado (PDF) del original el 25 de junio de 2015 .  
  16. Abascal, Jackson; Faghihi Sereshgi, Mohammad Hossein; Hazay, Carmit; Ishai, Yuval; Venkitasubramaniam, Muthuramakrishnan (30 de octubre de 2020). "¿Es práctico el paradigma GMW clásico? El caso de 2PC activo y seguro no interactivo" . Actas de la Conferencia ACM SIGSAC 2020 sobre seguridad informática y de comunicaciones . CCS '20. Evento virtual, EE. UU.: Association for Computing Machinery. págs. 1591–1605 . doi : 10.1145/3372297.3423366 . ISBN  978-1-4503-7089-9. S2CID 226228208 . 
  17. Groth, J; Kohlweiss, M (14 de abril de 2015). "One-Out-of-Many Proofs: Or How to Leak a Secret and Spend a Coin" . Advances in Cryptology - EUROCRYPT 2015. Lecture Notes in Computer Science. Vol. 9057. Berlín, Heidelberg: EUROCRYPT 2015. pp. 253–280 . doi : 10.1007/978-3-662-46803-6_9 . hdl : 20.500.11820/f6ec5d8f-cfda-4f56-9bd0-d9222b8d9a43 . ISBN   978-3-662-46802-9. S2CID 16708805 . 
  18. "Presentación de pruebas de conocimiento cero para la certificación web privada con hardware de múltiples proveedores" . El blog de Cloudflare . 12 de agosto de 2021. Consultado el 18 de agosto de 2021 .
  19. "PPPL y Princeton demuestran una técnica novedosa que podría ser útil en futuras conversaciones sobre desarme nuclear - Laboratorio de Física de Plasmas de Princeton" . www.pppl.gov . Archivado del original el 3 de julio de 2017.
  20. 1 2 Hellwig, Daniel; Karlic, Goran; Huchzermeier, Arnd (3 de mayo de 2020). «Privacidad y anonimato» . Construye tu propia cadena de bloques . Gestión para profesionales. SpringerLink. pág. 112. doi : 10.1007/978-3-030-40142-9_5 . ISBN  978-3-030-40142-9. S2CID 219058406 . Consultado el 3 de diciembre de 2020 . 
  21. Hurst, Samantha (28 de octubre de 2020). "Zcoin anuncia cambio de marca a un nuevo nombre y símbolo "Firo"" . Crowdfund Insider. Archivado del original el 1 de noviembre de 2020. Consultado el 4 de noviembre de 2020 .
  22. Bonneau, J; Miller, A; Clark, J; Narayanan, A (2015). «SoK: Perspectivas de investigación y desafíos para Bitcoin y las criptomonedas». Simposio IEEE de 2015 sobre seguridad y privacidad . San José, California. págs. 104–121 . doi : 10.1109/SP.2015.14 . ISBN  978-1-4673-6949-7. S2CID 549362 . {{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  23. Ben-Sasson, Eli; Chiesa, Alessandro; Garman, Christina; Green, Matthew; Miers, Ian; Tromer, Eran; Virza, Madars (18 de mayo de 2014). "Zerocash: Pagos anónimos descentralizados desde Bitcoin" (PDF) . IEEE . Consultado el 26 de enero de 2016 .
  24. 1 2 Bünz, B; Bootle, D; Boneh, A (2018). "Bulletproofs: Pruebas breves para transacciones confidenciales y más". Simposio IEEE de 2018 sobre seguridad y privacidad (SP) . San Francisco, California. págs. 315–334 . doi : 10.1109/SP.2018.00020 . ISBN  978-1-5386-4353-2. S2CID 3337741 . {{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  25. "Circuitos" . Documentación de OpenPassport . Self Labs . Consultado el 18 de enero de 2026 .
  26. ^ Gupta, Aayush; Suegami, Sora; Panda, Sampriti (12 de diciembre de 2022). "Correo electrónico ZK" . Correo electrónico ZK . Consultado el 18 de enero de 2026 .
  27. Foss, Nate; Ernst, David; Tavernier, Florent; Colin, Rémi. "Nueva primaria demócrata" . Nueva primaria demócrata . Nueva primaria demócrata . Consultado el 18 de enero de 2026 .
  28. Rose, Anna; Gupta, Aayush (19 de marzo de 2025). "Haciendo a ZK más humano con ZK Email" . Podcast Zero Knowledge . Episodio 353. Transcripción . Recuperado el 18 de enero de 2026 .
  29. ^ Gupta, Aayush (14 de diciembre de 2022). "Correo electrónico ZK + JWT ZK" . Consultado el 18 de enero de 2026 .
  30. Li, X.; otros (2023). "ZKSQL: Verifiable and Efficient Query Evaluation with Zero-Knowledge Proofs" (PDF) . Proceedings of the VLDB Endowment . 16 (8): 1804– 1817. doi : 10.14778/3594512.3594513 .
  31. Goldreich, Oded (1985). "Una prueba de conocimiento cero de que un módulo dos primos no es un entero de Blum". Manuscrito inédito .
  32. Goldreich, Oded; Micali, Silvio; Wigderson, Avi (1991). "Pruebas que no aportan nada más que su validez". Journal of the ACM . 38 (3): 690– 728. CiteSeerX 10.1.1.420.1478 . doi : 10.1145/116825.116852 . S2CID 2389804 .  
  33. Russell Impagliazzo, Moti Yung: Cálculos directos de conocimiento mínimo. CRYPTO 1987: 40–51
  34. Ben-Or, Michael; Goldreich, Oded; Goldwasser, Shafi; Hastad, Johan; Kilian, Joe; Micali, Silvio; Rogaway, Phillip (1990). "Todo lo demostrable es demostrable en conocimiento cero". En Goldwasser, S. (ed.). Avances en criptología – CRYPTO '88 . Notas de clase en ciencias de la computación. Vol. 403. Springer-Verlag. págs. 37–56 .  
  35. Ben-Or, Michael; Goldwasser, Shafi; Kilian, Joe; Widgerson, Avi (1988). «Pruebas interactivas con múltiples probadores: Cómo eliminar la intratabilidad» . Actas del vigésimo simposio anual de la ACM sobre Teoría de la Computación - STOC '88 . págs. 113–131 . doi : 10.1145/62212.62223 . ISBN  0-89791-264-0.
  36. ^ Dwork, Cynthia; Naor, Moni; Sahai, Amit (2004). "Conocimiento cero concurrente". Revista de la ACM . 51 (6): 851–898 . CiteSeerX 10.1.1.43.716 . doi : 10.1145/1039488.1039489 . S2CID 52827731 .  
  37. Feige, Uriel; Shamir, Adi (1990). «Protocolos de indistinguibilidad de testigos y de ocultación de testigos». Actas del vigésimo segundo simposio anual de la ACM sobre Teoría de la Computación - STOC '90 . págs. 416–426 . CiteSeerX 10.1.1.73.3911 . doi : 10.1145/100216.100272 . ISBN   978-0-89791-361-4. S2CID 11146395 . 
  38. 1 2 Mouris, Dimitris; Tsoutsos, Nektarios Georgios (2021). "Zilch: Un marco para implementar pruebas de conocimiento cero transparentes". IEEE Transactions on Information Forensics and Security . 16 : 3269– 3284. Bibcode : 2021ITIF...16.3269M . doi : 10.1109/TIFS.2021.3074869 . ISSN 1556-6021 . S2CID 222069813 .  
  39. Parno, B.; Howell, J.; Gentry, C.; Raykova, M. (mayo de 2013). "Pinocho: Computación verificable casi práctica". Simposio IEEE de 2013 sobre seguridad y privacidad . págs. 238–252 . doi : 10.1109/SP.2013.47 . ISBN  978-0-7695-4977-4. S2CID 1155080 . 
  40. Costello, Craig; Fournet, Cedric; Howell, Jon; Kohlweiss, Markulf; Kreuter, Benjamin; Naehrig, Michael; Parno, Bryan; Zahur, Samee (mayo de 2015). "Geppetto: Computación verificable versátil" . Simposio IEEE de 2015 sobre seguridad y privacidad . págs. 253–270 . doi : 10.1109/SP.2015.23 . hdl : 20.500.11820/37920e55-65aa-4a42-b678-ef5902a5dd45 . ISBN  978-1-4673-6949-7. S2CID 3343426 . 
  41. Ben-Sasson, Eli; Chiesa, Alessandro; Genkin, Daniel; Tromer, Eran; Virza, Madars (2013). "SNARKs para C: Verificación concisa de ejecuciones de programas y sin conocimiento previo". Avances en criptología – CRYPTO 2013. Notas de clase en ciencias de la computación. Vol. 8043. pp. 90–108 . doi : 10.1007/978-3-642-40084-1_6 . hdl : 1721.1/87953 . ISBN   978-3-642-40083-4.
  42. Wahby, Riad S.; Setty, Srinath; Ren, Zuocheng; Blumberg, Andrew J.; Walfish, Michael (2015). "Memoria RAM eficiente y flujo de control en computación externalizada verificable". Actas del Simposio de Seguridad de Redes y Sistemas Distribuidos de 2015. doi : 10.14722/ndss.2015.23097 . ISBN 978-1-891562-38-9.
  43. Eberhardt, Jacob; Tai, Stefan (julio de 2018). «ZoKrates: Computaciones fuera de la cadena escalables que preservan la privacidad». 2018 IEEE International Conference on Internet of Things (IThings), IEEE Green Computing and Communications (GreenCom), IEEE Cyber, Physical and Social Computing (CPSCom) e IEEE Smart Data (SmartData) . pp. 1084–1091 . doi : 10.1109/Cybermatics_2018.2018.00199 . ISBN  978-1-5386-7975-3. S2CID 49473237 . 
  44. Kosba, Ahmed; Papamanthou, Charalampos; Shi, Elaine (mayo de 2018). "XJsnark: Un marco para la computación verificable eficiente". Simposio IEEE de 2018 sobre seguridad y privacidad (SP) . págs. 944–961 . doi : 10.1109/SP.2018.00018 . ISBN  978-1-5386-4353-2.
  45. Zhang, Yupeng; Genkin, Daniel; Katz, Jonathan; Papadopoulos, Dimitrios; Papamanthou, Charalampos (mayo de 2018). «VRAM: Memoria RAM verificable más rápida con preprocesamiento independiente del programa». Simposio IEEE de 2018 sobre seguridad y privacidad (SP) . págs. 908–925 . doi : 10.1109/SP.2018.00013 . ISBN  978-1-5386-4353-2.
  46. Ben-Sasson, Eli; Chiesa, Alessandro; Tromer, Eran; Virza, Madars (20 de agosto de 2014). «Conocimiento cero no interactivo y conciso para una arquitectura de von Neumann» . Actas del 23.er Simposio de la Conferencia USENIX sobre Seguridad . Asociación USENIX: 781–796 . ISBN 978-1-931971-15-7.
  47. Kosba, Ahmed; Papadopoulos, Dimitrios; Papamanthou, Charalampos; Song, Dawn (2020). "MIRAGE: Argumentos concisos para algoritmos aleatorios con aplicaciones a zk-SNARKs universales" . Cryptology ePrint Archive .
  48. Maller, Mary; Bowe, Sean; Kohlweiss, Markulf; Meiklejohn, Sarah (6 de noviembre de 2019). "Sonic: SNARKs de conocimiento cero a partir de cadenas de referencia estructuradas universales y actualizables de tamaño lineal" . Actas de la Conferencia ACM SIGSAC de 2019 sobre seguridad informática y de comunicaciones . Association for Computing Machinery. págs. 2111–2128 . doi : 10.1145/3319535.3339817 . hdl : 20.500.11820/739b94f1-54f0-4ec3-9644-3c95eea1e8f5 . ISBN  978-1-4503-6747-9. S2CID 242772913 . 
  49. Chiesa, Alessandro; Hu, Yuncong; Maller, Mary; Mishra, Pratyush; Vesely, Noah; Ward, Nicholas (2020). "Marlin: Preprocesamiento de zkSNARKs con SRS universal y actualizable" . Avances en criptología – EUROCRYPT 2020. Notas de clase en ciencias de la computación. Vol. 12105. Springer International Publishing. págs. 738–768 . doi : 10.1007/978-3-030-45721-1_26 . ISBN   978-3-030-45720-4. S2CID 204772154 . 
  50. Gabizon, Ariel; Williamson, Zachary J.; Ciobotaru, Oana (2019). "PLONK: Permutaciones sobre bases de Lagrange para argumentos no interactivos ecuménicos del conocimiento" . Cryptology ePrint Archive .
  51. Bünz, Benedikt; Fisch, Ben; Szepieniec, Alan (2020). "SNARKs transparentes de compiladores DARK" . Avances en criptología – EUROCRYPT 2020. Notas de clase en informática. Vol. 12105. Springer International Publishing. págs. 677–706 . doi : 10.1007/978-3-030-45721-1_24 . ISBN   978-3-030-45720-4. S2CID 204892714 . 
  52. Wahby, Riad S.; Tzialla, Ioanna; Shelat, Abhi; Thaler, Justin; Walfish, Michael (mayo de 2018). "zkSNARKs doblemente eficientes sin configuración de confianza". Simposio IEEE de 2018 sobre seguridad y privacidad (SP) . págs. 926–943 . doi : 10.1109/SP.2018.00060 . ISBN  978-1-5386-4353-2.
  53. Bowe, Sean; Grigg, Jack; Hopwood, Daira (2019). "Composición de pruebas recursivas sin una configuración de confianza" . Cryptology ePrint Archive .
  54. Zhang, Jiaheng; Xie, Tiancheng; Zhang, Yupeng; Song, Dawn (mayo de 2020). «Delegación polinomial transparente y sus aplicaciones a la prueba de conocimiento cero». Simposio IEEE de 2020 sobre seguridad y privacidad (SP) . págs. 859–876 . doi : 10.1109/SP40000.2020.00052 . ISBN  978-1-7281-3497-0.
  55. Ames, Scott; Hazay, Carmit; Ishai, Yuval; Venkitasubramaniam, Muthuramakrishnan (30 de octubre de 2017). "Ligero" . Actas de la Conferencia ACM SIGSAC de 2017 sobre Seguridad Informática y de las Comunicaciones . Association for Computing Machinery. págs. 2087–2104 . doi : 10.1145/3133956.3134104 . ISBN  978-1-4503-4946-8. S2CID 5348527 . 
  56. Ben-Sasson, Eli; Chiesa, Alessandro; Riabzev, Michael; Spooner, Nicholas; Virza, Madars; Ward, Nicholas P. (2019). "Aurora: Argumentos sucintos transparentes para R1CS" . Avances en criptología – EUROCRYPT 2019. Notas de clase en ciencias de la computación. Vol. 11476. Springer International Publishing. pp. 103–128 . doi : 10.1007/978-3-030-17653-2_4 . ISBN   978-3-030-17652-5. S2CID 52832327 . 
  57. Ben-Sasson, Eli; Bentov, Iddo; Horesh, Yinon; Riabzev, Michael (2019). "Criptografía de conocimiento cero escalable sin configuración de confianza" . Avances en criptología – CRYPTO 2019. Notas de clase en ciencias de la computación. Vol. 11694. Springer International Publishing. pp. 701–732 . doi : 10.1007/978-3-030-26954-8_23 . ISBN   978-3-030-26953-1. S2CID 199501907 . 
  58. Nwosu, Emmanuel (25-11-2025). "Hyperbridge dice que está construyendo una hiperestructura para puentes criptográficos" . TechCabal . Recuperado el 1-12-2025 .
  59. Chaliasos, Stefanos; Ernstberger, Jens; Theodore, David; Wong, David; Jahanara, Mohammad; Livshits, Benjamin (2024). "SoK: ¿Qué desconocemos? Comprender las vulnerabilidades de seguridad en los SNARKs" . SEC '24: Actas del 33.º Simposio de la Conferencia USENIX sobre Seguridad . págs. 3855–3872 . arXiv : 2402.15293 . ISBN  978-1-939133-44-1.
  60. Pailoor, Shankara; Chen, Yanju; Wang, Franklyn; Rodríguez, Clara; Van Geffen, Jacob; Morton, Jason; Chu, Michael; Gu, Brian; Feng, Yu; Dillig, Işıl (2023). "Detección automatizada de circuitos subrestringidos en pruebas de conocimiento cero" . Actas de la ACM sobre lenguajes de programación . 7 : 1510–1532 . doi : 10.1145/3591282 .
  61. Diamond, Tyler (20 de junio de 2025). "Una introducción a las máquinas virtuales de conocimiento cero (zkVM)" . Veridise . Recuperado el 10 de febrero de 2026 .
  62. Bruestle, J.; Gafni, P. (29 de julio de 2023). "RISC Zero zkVM: argumentos escalables y transparentes de la integridad de RISC-V" . Borrador . Recuperado el 9 de febrero de 2026 .
  • El científico informático Amit Sahai explica la prueba de conocimiento cero en 5 niveles de dificultad en YouTube.