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:
- 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.
- 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.
- 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.
- 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
- Ethereum.org — Zero-knowledge proofs — introdução abrangente aos conceitos de ZK proof, tipos e suas aplicações no Ethereum.
- ZKProof Standards — esforço orientado pela comunidade para padronizar a terminologia, os frameworks e as definições de segurança das provas de conhecimento zero.
- Vitalik Buterin — An incomplete guide to rollups — comparação fundamental entre optimistic rollups e ZK rollups pelo cofundador do Ethereum.
No comments to display
No comments to display