Glossário

Prova de Conhecimento Zero (ZKP)

17/04/2026

Uma prova de conhecimento zero (ZKP) é um protocolo criptográfico no qual uma parte (o proponente) convence outra (o verificador) de que uma declaração é verdadeira — sem revelar qualquer informação adicional além do fato de que é verdadeira. As provas de conhecimento zero foram introduzidas por Shafi Goldwasser, Silvio Micali e Charles Rackoff em seu artigo de 1985 "The Knowledge Complexity of Interactive Proof Systems" — um resultado que ganhou o Prêmio Gödel (1993) e contribuiu para o Prêmio Turing de Goldwasser e Micali (2012).

As três propriedades

Todo sistema de prova de conhecimento zero satisfaz:

  • Completude — se a declaração é verdadeira, um proponente honesto pode convencer um verificador honesto
  • Solidez — se a declaração é falsa, nenhum proponente trapaceiro pode convencer o verificador (exceto com probabilidade negligenciável)
  • Conhecimento zero — o verificador não aprende nada além da verdade da declaração; nenhuma informação sobre por que a declaração é verdadeira é revelada

A intuição canônica: provar que você conhece uma senha sem revelar a senha.

Sistemas de prova modernos

  • zk-SNARK (Argumento de Conhecimento Não Interativo Sucinto) — provas muito pequenas (centenas de bytes), verificação em tempo constante. Construções clássicas (Groth16, PGHR13) requerem uma configuração confiável específica do circuito; PLONK e Marlin usam uma configuração atualizável universal; Halo 2 (desenvolvido pela Electric Coin Company para Zcash) usa um compromisso polinomial sem configuração confiável.
  • zk-STARK (Argumento de Conhecimento Transparente e Escalável) — introduzido por Ben-Sasson et al. (2018). Transparente (sem configuração confiável), baseia-se apenas em funções hash e é plausivelmente seguro pós-quântico. As provas são maiores (dezenas a centenas de KB). Usado pela StarkWare em Starknet e StarkEx.
  • Bulletproofs — provas de intervalo curtas sem configuração confiável. Usado pelo Monero para valores confidenciais desde 2018.
  • Nova / HyperNova, Plonky2 / Plonky3 — sistemas modernos de SNARK de esquema de dobramento e recursivos, otimizados para computação incremental.

Usos em cripto

Privacidade

  • Zcash — transações protegidas usando zk-SNARKs (Groth16 → Halo 2)
  • Aztec Network, Aleo, Namada — contratos inteligentes focados em privacidade
  • Monero — Bulletproofs para provas de intervalo
  • Tornado Cash — mistura zk-SNARK (sanções do Tesouro dos EUA parcialmente revertidas pelo 5º Circuito em 2024)

Escalabilidade — ZK-rollups

  • zkSync Era, Starknet, Polygon zkEVM, Scroll, Linea — comprimem milhares de transações L2 em uma única prova de validade postada no Ethereum. Esses rollups usam ZK para sucintez, não para ocultar dados.

Identidade e credenciais

  • Worldcoin — prova de identidade a partir de escaneamentos de íris sem revelar o próprio escaneamento
  • zk-email — provando recebimentos de e-mail sem revelar o conteúdo do e-mail
  • Polygon ID, Semaphore — identidade on-chain sem histórico de carteira vinculável

Computação verificável

  • zkML (EZKL, Modulus Labs) — provando que um modelo de IA foi executado corretamente em entradas específicas
  • Coprocessadores on-chain (Axiom, Herodotus) — provando resultados de computação off-chain

Conceito errado comum — "ZK" ≠ "privado"

Um zk-rollup anuncia "ZK" em seu nome, mas normalmente não fornece privacidade ao usuário. A propriedade de conhecimento zero aqui é usada para sucintez — uma pequena prova atesta muitas transações — não para ocultar dados. Todas as transações permanecem públicas no rollup. Para privacidade do usuário, é necessário um design adicional (Aztec, Aleo).

Veja também