App de votação privada on-chain na Cardano, em que os eleitores comprovam sua participação com provas de conhecimento zero e mantêm seus votos anônimos.
iden3/snarkjs
Biblioteca JavaScript e WebAssembly para gerar e verificar provas zkSNARK com Groth16, PLONK e FFLONK, usada com circuitos circom.
- Estrelas
- 2,042
- Forks
- 489
- Issues abertas
- 135
- Último commit
- mês passado
O que é?
snarkjs é um toolkit de provas de conhecimento zero implementado em JavaScript e WebAssembly. Oferece suporte aos sistemas de prova Groth16, PLONK e FFLONK e funciona com circuitos compilados pelo compilador circom.
Além de gerar e verificar provas, a biblioteca inclui ferramentas para cerimônias de trusted setup com múltiplas partes: criar arquivos universais powers of tau e contribuir para eles, realizar contribuições de fase 2 específicas para cada circuito, aplicar random beacons e verificar as transcrições resultantes. Os formatos Ptau são declarados compatíveis com outras implementações de cerimônias.
É executada no Node.js por meio de CLI e API e no navegador por meio de um build empacotado. É distribuída como um módulo ES, e o núcleo criptográfico é executado em WASM com worker threads para computação paralela.
Recursos principais
- 01Gera e verifica provas zkSNARK com Groth16, PLONK e FFLONK.
- 02É executada no Node.js por meio de CLI e API e no navegador.
- 03Oferece ferramentas para cerimônias de trusted setup de powers of tau e fase 2.
- 04Exporta chaves de verificação e contratos verificadores em Solidity.
- 05Calcula witnesses a partir da saída WASM do circom e os verifica com arquivos R1CS.
Casos de uso
- Criar aplicações que preservam a privacidade e provam afirmações sem revelar as entradas.
- Realizar uma cerimônia de trusted setup para um circuito circom.
- Publicar um verificador de provas zk como um contrato inteligente na Ethereum.
- Gerar provas de conhecimento zero em uma página da web para verificação no cliente.
Início rápido
- 1
Instale o Node.js (uma versão LTS recente, v18 ou posterior)
- 2
Instale o snarkjs globalmente com npm
npm install -g snarkjs@latest - 3
Instale o circom seguindo o guia oficial de instalação
- 4
Exiba a lista de comandos do snarkjs
snarkjs --help
Antes de usar
- Licenciado sob a GPL-3.0, uma licença copyleft que pode restringir o uso em código proprietário.
- Funciona com circuitos compilados pelo compilador independente circom, então você também precisa instalar o circom.
Tópicos
Perguntas frequentes
- O que é snarkjs?
- Biblioteca JavaScript e WebAssembly para gerar e verificar provas zkSNARK com Groth16, PLONK e FFLONK, usada com circuitos circom. snarkjs é um toolkit de provas de conhecimento zero implementado em JavaScript e WebAssembly. Oferece suporte aos sistemas de prova Groth16, PLONK e FFLONK e funciona com circuitos compilados pelo compilador circom.
- snarkjs é gratuito? Qual é a licença?
- snarkjs é open source sob a licença GPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
- snarkjs ainda é mantido?
- Atualizado nos últimos 6 meses. O último commit de snarkjs foi em 1 de out. de 2026.
- Para que posso usar snarkjs?
- Criar aplicações que preservam a privacidade e provam afirmações sem revelar as entradas. Realizar uma cerimônia de trusted setup para um circuito circom. Publicar um verificador de provas zk como um contrato inteligente na Ethereum. Gerar provas de conhecimento zero em uma página da web para verificação no cliente.
- Como instalar snarkjs?
- Instale o Node.js (uma versão LTS recente, v18 ou posterior) Instale o snarkjs globalmente com npm: npm install -g snarkjs@latest Instale o circom seguindo o guia oficial de instalação Exiba a lista de comandos do snarkjs: snarkjs --help
- Onde consigo snarkjs?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/iden3/snarkjs
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Sistema operacional descentralizado e software de nós que executam a rede Aleo para aplicações de conhecimento zero.
Uma máquina virtual de conhecimento zero que gera provas de execução correta para programas escritos em Rust ou em outras linguagens compiladas com LLVM.
Implementação em Rust de prova e verificação de Circle STARK sobre o campo M31, com um verificador no_std e backend de prova com SIMD.
Framework TypeScript para criar circuitos de conhecimento zero e zkApps, com geração e verificação de provas no navegador, no Node ou para o Mina Protocol.
Biblioteca de criptografia em C portátil e fácil de usar, com criptografia, descriptografia, assinaturas digitais e hash seguro de senhas, derivada da NaCl.