0Pricing
Cryptology Academy · Lección

zk-SNARK: argumentos sucintos no interactivos

Comprenda la configuración de Groth16, la generación de pruebas y la verificación.

zk-SNARK: argumentos sucintos no interactivos es una lección gratuita de Cryptology Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cryptology Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué es un zk-SNARK?

Un zk-SNARK (Zero-Knowledge Succinct Non-interactive ARgument of Knowledge) es una prueba que: (1) ofrece conocimiento cero, (2) es sucinta (prueba pequeña y verificación rápida independientemente del tamaño del cálculo), (3) no es interactiva (una única cadena de prueba).

Motivación

Los protocolos Sigma funcionan para afirmaciones sencillas (conocimiento del logaritmo discreto). Para cálculos complejos —"ejecuté correctamente esta función sobre entradas privadas"— necesitamos un sistema de pruebas de propósito general. Los SNARK demuestran cálculos arbitrarios en un tiempo de verificación O(1).

Circuitos aritméticos

Primero, el cálculo se expresa como un circuito aritmético: un grafo dirigido acíclico de puertas de suma y multiplicación sobre un cuerpo finito. Ejemplo: demostrar que conoce x tal que x^3 + x + 5 = 35 sin revelar que x=3. El circuito tiene aproximadamente 5 puertas.

R1CS: sistema de restricciones de rango 1

Un circuito aritmético se convierte en R1CS: un conjunto de restricciones (A*z)*(B*z) = C*z, donde z es un vector con todos los valores de los cables. Cada puerta de multiplicación se convierte en una restricción. El probador debe encontrar z que satisfaga todas las restricciones sin revelar los cables privados.

QAP: programas aritméticos cuadráticos

R1CS se convierte en un QAP: polinomios A(x), B(x), C(x) tales que A(x)*B(x)-C(x) es divisible por un polinomio objetivo t(x) si y solo si se satisfacen las restricciones. El probador demuestra que conoce un cociente polinómico H(x) sin revelar el testigo.

Prueba Groth16

Groth16 (2016) es el SNARK general más eficiente. Después de una configuración confiable (generación de CRS), el probador produce una prueba formada por 3 elementos de grupo (aproximadamente 192 bytes para BLS12-381). Verificación: 3 operaciones de emparejamiento. La prueba tiene un tamaño constante independientemente del tamaño del circuito.

Ceremonia de configuración confiable

Groth16 requiere una configuración confiable para cada circuito: se generan residuos tóxicos (un secreto aleatorio), se calcula la cadena de referencia común y, después, se destruyen los residuos tóxicos. Si los residuos sobreviven, un adversario puede falsificar pruebas. Las ceremonias multipartitas (Powers of Tau) distribuyen la confianza.

PLONK: configuración universal

PLONK (2019) utiliza una configuración confiable universal: una sola ceremonia funciona para todos los circuitos hasta un límite de tamaño. No se necesita una configuración específica para cada circuito. La contrapartida son pruebas ligeramente más grandes que las de Groth16. Se utiliza en implementaciones de ZK-EVM (Polygon Hermez, zkSync Era).

STARK frente a SNARK

Los STARK (Scalable Transparent ARguments of Knowledge) no requieren una configuración confiable y utilizan funciones hash (seguras frente a ataques cuánticos). La contrapartida son pruebas más grandes (decenas de KB frente a 200 bytes). Se utilizan en StarkWare/StarkNet y en el lenguaje Cairo. Los SNARK son más pequeños; los STARK son resistentes a la computación cuántica.

Criptografía basada en emparejamientos

Groth16 utiliza emparejamientos bilineales: e: G1 × G2 → GT, donde e(a*P, b*Q) = e(P,Q)^{ab}. Esto permite comprobar identidades polinómicas en el exponente sin revelar los valores. La curva BLS12-381 está optimizada para realizar emparejamientos Groth16 de forma eficiente.

Coste de generación de pruebas

Tiempo de generación de pruebas de Groth16 para un circuito de 10^6 puertas: aproximadamente 10 segundos en una CPU moderna. Verificación: aproximadamente 1 ms. Esta asimetría es intencionada: el probador (quien realizó el cálculo pesado) hace el trabajo; el verificador (el nodo de la cadena de bloques) realiza un trabajo casi nulo.

Comprobación rápida

¿Cuál es el principal inconveniente de Groth16 frente a PLONK?

Repaso

Los zk-SNARK demuestran cálculos arbitrarios mediante pruebas de tamaño constante. Flujo: cálculo → circuito aritmético → R1CS → QAP → prueba SNARK. Groth16 es el más eficiente (configuración confiable para cada circuito); PLONK utiliza una configuración universal. Siguiente tema: aplicaciones de las ZKP en blockchain.

Preguntas frecuentes

¿La lección «zk-SNARK: argumentos sucintos no interactivos» es gratis?

Sí — el texto completo de «zk-SNARK: argumentos sucintos no interactivos» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cryptology Academy, actualiza a CoddyKit PRO. El curso de Cryptology Academy incluye 4 lecciones en total.

¿Qué aprenderé en «zk-SNARK: argumentos sucintos no interactivos»?

Comprenda la configuración de Groth16, la generación de pruebas y la verificación. Practicas Cryptology Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cryptology Academy?

No se requiere experiencia previa. Cryptology Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «zk-SNARK: argumentos sucintos no interactivos»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cryptology Academy?

Sí. Cada lección de Cryptology Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Intuición sobre ZKP: la cueva de Alí Babá
  2. Protocolos Sigma e identificación de Schnorr
  3. zk-SNARK: argumentos sucintos no interactivos
  4. Aplicaciones de ZKP: ZK Rollups y monedas privadas
← Volver a Cryptology Academy