Skip to main content

O que é ZK (zero-knowledge)

Nota: Este documento é uma tradução automática da versão original em inglês.

O que é ZK (zero-knowledge)

Provas de conhecimento zero (ZK proofs) são uma técnica criptográfica que permite a uma parte (o provador) convencer outra parte (o verificador) de que uma afirmação é verdadeira — sem revelar nenhuma informação além da veracidade da própria afirmação. Em blockchain, as ZK proofs são usadas para três finalidades principais: privacidade (ocultar detalhes da transação enquanto se prova que ela é válida), escalabilidade (comprimir muitas transações em uma única prova que é verificada on-chain) e computação verificável (provar que uma computação off-chain foi realizada corretamente).

Em resumo: as ZK proofs permitem que você prove que algo é verdadeiro sem mostrar como ou por quê. Em cripto, elas permitem transações privadas, rollups escaláveis e inferência de IA verificável — tudo sem exigir confiança no provador.

A ideia central

O conceito é contraintuitivo: como você pode provar que sabe algo sem revelá-lo? Uma analogia clássica ajuda.

Imagine uma caverna com dois caminhos (esquerda e direita) que se encontram em uma porta trancada nos fundos. Você afirma conhecer a senha da porta. Para prová-lo sem revelar a senha, um verificador fica na entrada da caverna, e você entra por um caminho aleatório. O verificador então grita de qual lado quer que você saia. Se você conhece a senha, sempre poderá sair pelo lado solicitado — você passa pela porta, se necessário. Se você não conhece a senha, só poderá sair pelo lado por onde entrou. Após muitas rodadas, o verificador se convence de que você conhece a senha, mas nunca descobre qual é a senha.

As ZK proofs formalizam essa intuição matematicamente. Elas satisfazem três propriedades:

  • Completude. Se a afirmação é verdadeira e ambas as partes seguem o protocolo, o verificador será convencido.
  • Solidez (soundness). Se a afirmação é falsa, nenhum provador trapaceiro pode convencer o verificador (exceto com probabilidade desprezível).
  • Conhecimento zero (zero-knowledge). O verificador não aprende nada além do fato de que a afirmação é verdadeira.

Como funcionam as ZK proofs (simplificado)

Um sistema de ZK proof envolve estas etapas:

  1. Formulação da afirmação. A alegação a ser provada é expressa como uma afirmação matemática — tipicamente como um circuito (uma série de operações aritméticas) ou um conjunto de equações polinomiais.
  2. Testemunha (witness). O provador possui informações privadas (a "witness") que tornam a afirmação verdadeira. Por exemplo, a witness pode ser as entradas de uma computação que produz uma saída conhecida.
  3. Geração da prova. O provador usa a witness e a afirmação para gerar uma prova — um objeto matemático compacto. Isso é computacionalmente caro para o provador.
  4. Verificação da prova. O verificador confere a prova contra a afirmação. A verificação é rápida e não requer a witness. Se a prova for válida, o verificador fica convencido de que a afirmação é verdadeira sem aprender a witness.

A prova é tipicamente muito menor do que a witness, e a verificação é muito mais barata do que reexecutar a computação. Essa assimetria é o que torna as ZK proofs úteis para escalabilidade e verificação em blockchain.

zk-SNARKs e zk-STARKs

Duas grandes famílias de sistemas de ZK proof dominam o espaço blockchain:

zk-SNARKs

Succinct Non-interactive Arguments of Knowledge. Os SNARKs produzem provas muito pequenas (algumas centenas de bytes) que são baratas de verificar. Eles são "não interativos" — o provador gera a prova em uma única etapa, sem idas e vindas com o verificador. A maioria das construções de SNARK requer uma trusted setup — uma cerimônia única que gera parâmetros públicos. Se a setup for comprometida, a garantia de solidez se quebra. Os SNARKs modernos (como o PLONK e suas variantes) usam uma trusted setup universal que funciona para qualquer circuito, reduzindo, mas não eliminando, essa preocupação.

zk-STARKs

Scalable Transparent Arguments of Knowledge. Os STARKs não requerem uma trusted setup — eles são "transparentes". Eles também oferecem segurança pós-quântica (resistente a ataques de computadores quânticos). O tradeoff é que as provas STARK são maiores do que as provas SNARK e a verificação é um pouco mais cara. Os STARKs são particularmente adequados para grandes computações porque seu tempo de prova escala de forma quase linear com o tamanho da computação.

Comparação

Propriedade zk-SNARKs zk-STARKs
Tamanho da prova Pequeno (centenas de bytes) Maior (dezenas a centenas de kilobytes)
Custo de verificação Baixo Moderado
Trusted setup Necessária (na maioria das construções) Não necessária (transparente)
Segurança pós-quântica Não (na maioria das construções) Sim
Custo do provador Moderado Maior, mas escala melhor para grandes circuitos

Na prática, muitos projetos usam sistemas baseados em SNARK por seus pequenos tamanhos de prova e baixos custos de verificação, enquanto os STARKs estão ganhando adoção onde a transparência e a segurança pós-quântica são prioridades.

ZK em blockchain: principais aplicações

Privacidade

As ZK proofs permitem transações privadas em blockchains públicas. Um usuário pode provar que sua transação é válida (saldos corretos, sem gasto duplo) sem revelar o remetente, o destinatário ou o valor. Protocolos focados em privacidade usam isso para criar transferências confidenciais em chains que de outra forma são transparentes.

Escalabilidade (zk-rollups)

Os zk-rollups são soluções de escalabilidade de Layer 2 que executam transações off-chain, as agrupam em lotes e geram uma ZK proof de que todo o lote foi processado corretamente. Apenas a prova e um resumo das mudanças de estado são postados na camada base (Layer 1). O smart contract da L1 verifica a prova e aceita a atualização de estado. Isso comprime milhares de transações em uma única verificação de prova, aumentando drasticamente o throughput enquanto herda a segurança da camada base. Implementações importantes de zk-rollup incluem zkSync, StarkNet, Polygon zkEVM, Scroll e Linea.

Para mais sobre escalabilidade de Layer 2, veja L2.

Computação verificável e zkML

As ZK proofs podem verificar que qualquer computação foi realizada corretamente. Isso se estende à IA: o zkML usa ZK proofs para verificar que um modelo de machine learning produziu uma saída específica a partir de uma entrada específica, sem revelar os pesos do modelo ou os dados de entrada. Um smart contract pode verificar a prova on-chain, criando uma garantia sem confiança de que a inferência de IA foi computada corretamente.

O zkML representa uma das aplicações tecnicamente mais ambiciosas de ZK em crypto IA. Ele fornece uma garantia matemática (sem confiança) de inferência correta, mas está atualmente limitado a modelos pequenos devido ao custo computacional da geração de provas.

Por que o ZK importa para crypto IA

As ZK proofs atendem a duas necessidades críticas da IA descentralizada:

  • IA verificável. Quando a inferência de IA roda em hardware de terceiros não confiável, as ZK proofs podem garantir que o resultado está correto sem reexecutar a computação. Isso é essencial para aplicações on-chain em que as saídas de IA disparam ações de smart contracts.
  • Privacidade. As ZK proofs permitem computações de IA em que o modelo, a entrada, ou ambos, permanecem privados. Um usuário pode obter um resultado gerado por IA sem que o provedor de computação veja a consulta, e um proprietário de modelo pode provar que seu modelo foi usado sem revelar os pesos.

No framework de avaliação do DecAIHub, a verificação baseada em ZK serve como um indicador de integração genuína de IA on-chain — ela cria um vínculo matematicamente verificável entre a computação de IA off-chain e o estado on-chain.

Onde aparece nos cartões de projeto do DecAIHub

Recursos relacionados a ZK aparecem em vários lugares:

  • AI component — valores como "zkML inference", "ZK-verified computation" ou "zero-knowledge proof of inference" indicam verificação de IA baseada em ZK.
  • Category — projetos que usam ZK para IA podem aparecer nas categorias AI/Inference ou AI/Compute com ZK como mecanismo de verificação.
  • Tabela Evidence — a evidência Tier-1 para ZK inclui contratos verificadores implantados, benchmarks de prova publicados, implementações de circuitos e transações de verificação on-chain.
  • Artefatos on-chain — contratos verificadores de ZK on-chain são evidência concreta de integração real de ZK, contribuindo para a dimensão Onchain necessity.

O que o ZK não prova

  • O ZK prova que uma computação rodou corretamente — ele não prova que a computação é útil, que o modelo é bom ou que os dados são precisos. Lixo verificado ainda é lixo.
  • O ZK não prova que um token é necessário. As ZK proofs funcionam sem uma blockchain; a decisão de colocar a verificação on-chain é uma escolha arquitetural.
  • O ZK não prova descentralização. Um provedor centralizado pode gerar ZK proofs para suas próprias computações.
  • O ZK não prova que o modelo é o alegado, a menos que o compromisso do modelo (um hash dos pesos) seja publicamente ancorado e a prova esteja vinculada a esse compromisso.
  • Um projeto mencionar ZK em seu whitepaper não significa que o ZK está implementado. Procure por contratos verificadores implantados, benchmarks de prova e código de circuito como evidência.

Não confundir com

  • Privacidade — a privacidade é o objetivo mais amplo. O ZK é uma ferramenta para alcançá-la. Outros mecanismos de privacidade incluem TEE, MPC e criptografia homomórfica.
  • TEE (Trusted Execution Environment) — o TEE fornece confidencialidade baseada em hardware. O ZK fornece provas matemáticas. Ambos podem ser usados para IA verificável, com diferentes suposições de confiança e tradeoffs de desempenho.
  • zkML — a aplicação específica de ZK proofs à inferência de machine learning. O ZK é a técnica criptográfica geral; o zkML é o caso de uso especializado.
  • Criptografia — a criptografia oculta dados. As ZK proofs provam afirmações sobre dados sem revelá-los. São operações diferentes: a criptografia transforma dados em uma forma ilegível, enquanto as ZK proofs geram evidência matemática sobre dados sem expô-los.
  • Verificação otimista — assume que os resultados estão corretos e usa provas de fraude apenas quando contestados. O ZK prova proativamente a correção de antemão. São abordagens complementares usadas em diferentes designs de L2 (optimistic rollups vs zk-rollups).

Perguntas frequentes

Qual é a diferença entre zk-SNARKs e zk-STARKs?

Ambos são famílias de sistemas de prova de conhecimento zero, mas diferem em propriedades-chave. Os zk-SNARKs produzem provas menores e têm custos de verificação mais baixos, mas tipicamente requerem uma trusted setup — uma cerimônia única para gerar parâmetros do sistema. Os zk-STARKs não requerem uma trusted setup (são transparentes) e oferecem segurança pós-quântica, mas suas provas são maiores e mais caras de verificar. A escolha depende da aplicação: os SNARKs são preferidos quando o tamanho da prova e o custo de verificação são críticos (ex.: verificação on-chain), enquanto os STARKs são preferidos quando a transparência e a segurança de longo prazo são prioridades.

Como as ZK proofs são usadas para escalabilidade de blockchain?

Os zk-rollups executam transações off-chain em lotes e, em seguida, geram uma única ZK proof de que todo o lote foi processado corretamente. Essa prova é submetida à blockchain de Layer 1 junto com um resumo comprimido das mudanças de estado. O smart contract da L1 verifica a prova — o que é muito mais barato do que reexecutar todas as transações — e aceita a atualização de estado. Isso permite que a L1 processe o efeito de milhares de transações verificando uma única prova, aumentando drasticamente o throughput.

Qual é a conexão entre ZK e IA?

As ZK proofs podem verificar que uma inferência de modelo de IA foi realizada corretamente sem revelar o modelo ou os dados de entrada. Essa aplicação, chamada zkML, permite a verificação de IA sem confiança on-chain: um smart contract pode confirmar que um modelo específico produziu uma saída específica. Atualmente, o zkML é prático apenas para modelos pequenos devido ao custo computacional de converter as operações do modelo em circuitos ZK e gerar provas. À medida que os sistemas de prova melhoram, a gama de modelos de IA verificáveis vai se expandir.

As ZK proofs são computacionalmente caras?

A geração de provas é cara — significativamente mais do que a computação subjacente. Gerar uma ZK proof para uma computação pode levar de dez a mil vezes mais tempo do que simplesmente rodar a computação. No entanto, a verificação da prova é barata e rápida. Essa assimetria é intencional: o provador faz o trabalho pesado uma vez, e qualquer número de verificadores pode conferir o resultado de forma eficiente. Para aplicações de blockchain, isso significa que a cara geração de provas acontece off-chain, enquanto a barata verificação acontece on-chain.

Referências externas

Ver também