Repolode
iden3

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. 1

    Instale o Node.js (uma versão LTS recente, v18 ou posterior)

  2. 2

    Instale o snarkjs globalmente com npm

    npm install -g snarkjs@latest
  3. 3

    Instale o circom seguindo o guia oficial de instalação

  4. 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

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.

Segurança#cryptography#encryption#digital-signatures
14 mil+14 esta semana1,9 milCOtherBem mantidoAtualizado há 6 horas