Una app de votación en Cardano que protege la privacidad: los votantes prueban que pertenecen al grupo mediante pruebas de conocimiento cero y sus votos son anónimos.
iden3/snarkjs
Biblioteca de JavaScript y WebAssembly para generar y verificar pruebas zkSNARK con Groth16, PLONK y FFLONK, en circuitos de circom.
- Estrellas
- 2,042
- Forks
- 489
- Issues abiertos
- 135
- Último commit
- el mes pasado
¿Qué es?
snarkjs es un conjunto de herramientas de pruebas de conocimiento cero implementado en JavaScript y WebAssembly. Admite los sistemas de prueba Groth16, PLONK y FFLONK, y funciona con circuitos compilados con el compilador circom.
Además de generar y verificar pruebas, la biblioteca incluye herramientas para ceremonias de configuración confiable multipartitas: crear archivos universales powers of tau y contribuir a ellos, realizar contribuciones de fase 2 específicas para cada circuito, aplicar balizas aleatorias y verificar las transcripciones resultantes. Se indica que los formatos Ptau son compatibles con otras implementaciones de ceremonias.
Se ejecuta en Node.js mediante una CLI y una API, y en el navegador mediante una compilación empaquetada. Se distribuye como un módulo ES, y el núcleo criptográfico se ejecuta en WASM con worker threads para el cálculo en paralelo.
Funciones clave
- 01Genera y verifica pruebas zkSNARK con Groth16, PLONK y FFLONK.
- 02Se ejecuta en Node.js mediante CLI y API, y en el navegador.
- 03Ofrece herramientas para ceremonias de powers of tau y de configuración confiable de fase 2.
- 04Exporta claves de verificación y contratos verificadores de Solidity.
- 05Calcula witnesses a partir de la salida WASM de circom y los comprueba con archivos R1CS.
Casos de uso
- Crear aplicaciones que preservan la privacidad y prueban afirmaciones sin revelar las entradas.
- Realizar una ceremonia de configuración confiable para un circuito de circom.
- Publicar un verificador de pruebas zk como contrato inteligente de Ethereum.
- Generar pruebas de conocimiento cero en una página web para verificarlas en el cliente.
Inicio rápido
- 1
Instala Node.js (una versión LTS reciente, v18 o posterior)
- 2
Instala snarkjs globalmente con npm
npm install -g snarkjs@latest - 3
Instala circom siguiendo la guía de instalación oficial
- 4
Muestra la lista de comandos de snarkjs
snarkjs --help
Antes de usarlo
- Está bajo la licencia GPL-3.0, una licencia copyleft que puede restringir su uso en código propietario.
- Funciona con circuitos compilados por el compilador independiente circom, así que también necesitas instalar circom.
Temas
Preguntas frecuentes
- ¿Qué es snarkjs?
- Biblioteca de JavaScript y WebAssembly para generar y verificar pruebas zkSNARK con Groth16, PLONK y FFLONK, en circuitos de circom. snarkjs es un conjunto de herramientas de pruebas de conocimiento cero implementado en JavaScript y WebAssembly. Admite los sistemas de prueba Groth16, PLONK y FFLONK, y funciona con circuitos compilados con el compilador circom.
- ¿snarkjs es gratuito? ¿Qué licencia tiene?
- snarkjs es open source bajo la licencia GPL-3.0. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿snarkjs sigue mantenido?
- Actualizado en los últimos 6 meses. El último commit de snarkjs fue el 1 oct 2026.
- ¿Para qué puedo usar snarkjs?
- Crear aplicaciones que preservan la privacidad y prueban afirmaciones sin revelar las entradas. Realizar una ceremonia de configuración confiable para un circuito de circom. Publicar un verificador de pruebas zk como contrato inteligente de Ethereum. Generar pruebas de conocimiento cero en una página web para verificarlas en el cliente.
- ¿Cómo se instala snarkjs?
- Instala Node.js (una versión LTS reciente, v18 o posterior) Instala snarkjs globalmente con npm: npm install -g snarkjs@latest Instala circom siguiendo la guía de instalación oficial Muestra la lista de comandos de snarkjs: snarkjs --help
- ¿Dónde consigo snarkjs?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/iden3/snarkjs
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Sistema operativo descentralizado y software de nodos que ejecuta la red Aleo para aplicaciones de conocimiento cero.
Una máquina virtual de conocimiento cero que genera pruebas de ejecución correcta para programas escritos en Rust u otros lenguajes compilados con LLVM.
Una implementación en Rust de pruebas y verificación Circle STARK sobre el cuerpo M31, con un verificador no_std y un backend de prover con SIMD.
Framework de TypeScript para crear circuitos de conocimiento cero y zkApps, con generación y verificación de pruebas en navegadores, Node o para Mina Protocol.
Una biblioteca de criptografía portable y fácil de usar, escrita en C, que ofrece cifrado, descifrado, firmas digitales y hashing seguro de contraseñas; derivada de NaCl.