Escrito por Pablo Gómez
Founder & CEO de Metlabs · Revisado el 11 de octubre de 2026
SNARK significa Succinct Non-interactive ARgument of Knowledge. Sucinto porque el tamaño de la prueba y el tiempo de verificación son constantes o polilogarítmicos respecto a la computación probada. No interactivo porque se envía una sola prueba, a menudo mediante la heurística Fiat-Shamir. Argumento porque la solidez es computacional, válida frente a adversarios con poder de cómputo acotado. De conocimiento porque el probador posee realmente el testigo. Cuando además no lo revela se añade el prefijo zk, de zero-knowledge. La computación se compila a un circuito (R1CS o gates estilo PLONKish), se traduce a polinomios y se ancla con un esquema de compromiso polinómico.
Muchos SNARKs requieren un trusted setup, una ceremonia que genera parámetros a partir de un secreto que debe destruirse. Groth16 (2016) produce la prueba más compacta, del orden de 128 bytes, pero exige un setup por circuito. PLONK (2019, Aztec) introdujo el setup universal y actualizable, reutilizable para cualquier circuito a cambio de pruebas algo mayores. Como contraste, un STARK es transparente, sin ceremonia, y al apoyarse solo en hashes resulta atractivo poscuánticamente, mientras los SNARKs con emparejamientos en curvas elípticas no lo son.
El SNARK es la base de los ZK rollups: miles de transacciones se ejecutan fuera de cadena y en Ethereum se publica una única prueba de validez que el contrato verifica sin reejecutar. Así se escala heredando la seguridad de la capa base, con verificación barata en gas. Zcash fue pionero usando zk-SNARKs sobre Groth16 para transacciones blindadas; Scroll y zkSync Era son ejemplos de rollups basados en pruebas de validez; Aztec originó PLONK. Conviene precisar que Starknet usa STARKs, no SNARKs, aunque suele envolver la STARK en un SNARK para abaratar la verificación final.
También conocido como
- Succinct Non-interactive Argument of Knowledge
- Argumento de conocimiento sucinto





