Escrito por Pablo Gómez
Founder & CEO da Metlabs · Revisado em 11 de outubro de 2026
SNARK significa Succinct Non-interactive ARgument of Knowledge. Sucinto porque o tamanho da prova e o tempo de verificação são constantes ou polilogarítmicos em relação à computação provada. Não interativo porque se envia uma única prova, com frequência por meio da heurística de Fiat-Shamir. Argumento porque a solidez (soundness) é computacional, válida contra adversários com poder de cômputo limitado. De conhecimento porque o provador realmente possui a testemunha (witness). Quando, além disso, não a revela, acrescenta-se o prefixo zk, de zero-knowledge. A computação é compilada em um circuito (R1CS ou gates no estilo PLONKish), traduzida em polinômios e ancorada com um esquema de compromisso polinomial.
Muitos SNARKs exigem um trusted setup, uma cerimônia que gera parâmetros a partir de um segredo que deve ser destruído. Groth16 (2016) produz a prova mais compacta, da ordem de 128 bytes, mas exige um setup por circuito. PLONK (2019, Aztec) introduziu o setup universal e atualizável, reutilizável para qualquer circuito em troca de provas um pouco maiores. Em contraste, um STARK é transparente, sem cerimônia, e, por se apoiar apenas em hashes, é atraente do ponto de vista pós-quântico, enquanto os SNARKs com emparelhamentos (pairings) em curvas elípticas não são.
O SNARK é a base dos ZK rollups: milhares de transações são executadas off-chain e, no Ethereum, publica-se uma única prova de validade que o contrato verifica sem reexecutar. Assim se escala herdando a segurança da camada base, com verificação barata em gas. O Zcash foi pioneiro ao usar zk-SNARKs sobre Groth16 para transações blindadas; Scroll e zkSync Era são exemplos de rollups baseados em provas de validade; Aztec deu origem ao PLONK. Convém precisar que Starknet usa STARKs, não SNARKs, embora costume envolver a STARK em um SNARK para baratear a verificação final.
Também conhecido como
- Succinct Non-interactive Argument of Knowledge





