﻿---
title: "Prova de conhecimento zero"
description: "Guia preciso sobre provas de conhecimento zero: completude, solidez, simulação, testemunhas, premissas de configuração, usos em blockchain e riscos de verificação."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Prova de conhecimento zero

> Somente para fins educacionais; não constitui aconselhamento de investimento ou segurança. Uma prova válida garante apenas a afirmação codificada sob as premissas do sistema de prova.

<a id="answer"></a>

## Resposta direta

Uma prova de conhecimento zero (ZKP) permite que um provador convença um verificador de que uma afirmação é verdadeira sem revelar a testemunha secreta usada para comprová-la. A garantia formal não diz que a transcrição não contém literalmente nenhuma informação. Ela diz que tudo o que um verificador permitido aprende pode ser simulado sem a testemunha, além do que decorre da afirmação pública.

Um sistema de prova tem três propriedades separadas: **completude**, para que um provador honesto com testemunha válida seja aceito; **solidez**, para que uma afirmação falsa seja aceita apenas com probabilidade desprezível; e **conhecimento zero**, para que a testemunha permaneça oculta no modelo de ameaça definido. Muitos sistemas práticos são argumentos computacionais: a solidez vale contra adversários computacionalmente limitados e depende de premissas criptográficas declaradas.

Conhecimento zero também difere de concisão e validade. Uma prova pode ser ZK e cara de verificar, concisa mas expor dados públicos, ou provar corretamente uma relação codificada que não corresponde à regra pretendida pelo aplicativo.

<a id="mechanism"></a>

## Como funciona

Comece com uma afirmação pública `x`, uma testemunha privada `w` e uma relação precisa `R`. O provador gera a prova e o verificador a avalia com parâmetros públicos ou uma chave de verificação. A solidez pretendida pode ser resumida assim:

`Verify(vk, x, proof) = 1 => exists w: R(x, w) = 1`

A equação afirma apenas que existe uma testemunha adequada à relação codificada. Não a revela, não autentica entradas offchain e não mostra que `R` contém todas as regras de negócio pretendidas.

- **Interativa e não interativa.** Protocolos ZK iniciais trocam desafios e respostas. Sistemas não interativos reúnem a evidência em uma prova e geralmente dependem de material de configuração, modelo de oráculo aleatório ou ambos.
- **Modelo de configuração.** Groth16 produz provas muito pequenas, mas usa configuração estruturada específica do circuito. Sistemas do tipo PLONK podem usar uma string de referência estruturada universal e atualizável. STARK evita configuração estruturada confiável, mas em geral gera provas maiores e depende de hashes e testes de baixo grau.
- **Aritmetização e compromissos.** Implementações convertem o programa em restrições algébricas, comprometem valores derivados da testemunha e usam verificações aleatórias para testar o cálculo sem refazê-lo ou ver a testemunha.
- **Prova de conhecimento.** Alguns sistemas também afirmam que um provador aceito conhece uma testemunha, formalizado por um extrator. É uma propriedade separada e não decorre do rótulo “conhecimento zero”.

<a id="example"></a>

## Exemplo

Suponha que `x` contenha um compromisso e um limite de `100 units`, e `w` contenha o saldo comprometido e o fator de ocultação. A relação verifica a abertura correta do compromisso e saldo de pelo menos `100 units`. Uma ZKP válida comprova isso sem revelar o saldo exato.

O resultado não prova sozinho que o provador possui a conta, que os fundos estão livres ou que o mesmo compromisso não foi reutilizado. Essas alegações exigem restrições e entradas públicas adicionais.

Em uma criptomoeda protegida, um circuito pode impor autorização, conservação de valor e não duplicação ocultando alguns dados. Em um validity rollup, uma prova certifica uma transição de estado em lote; os dados ainda podem ser públicos, portanto “ZK Rollup” não significa automaticamente transações privadas.

<a id="risks"></a>

## Riscos

- Um circuito incompleto ou incorreto pode provar perfeitamente a regra errada.
- Falta de separação de domínio, identificadores de rede, raízes ou compromissos pode vincular a prova ao contexto errado.
- Configuração comprometida ou resíduo tóxico retido pode quebrar a solidez de sistemas com configuração confiável.
- Falhas no provador, verificador, transcrição, curva, hash, compilador ou contrato podem invalidar a garantia teórica.
- Entradas públicas, horário, grafos de transação, taxas e metadados podem vazar informações fora da afirmação ZK.
- Canais laterais na geração da testemunha, navegador, hardware ou serviço remoto podem expor segredos antes da prova.
- Verificação não fornece disponibilidade de dados, atividade do sequenciador, finalidade, resistência à censura ou upgrades seguros.
- Premissas e margens concretas variam; tamanho ou velocidade de verificação não classificam sozinhos a segurança.

<a id="misconceptions"></a>

## Equívocos comuns

- **“Conhecimento zero significa que nenhum dado é revelado.”** A afirmação pública e saídas expostas continuam visíveis; metadados podem vazar fora do modelo.
- **“Uma prova válida significa que o aplicativo está correto.”** A relação codificada foi aceita; erros de circuito, integração e política continuam possíveis.
- **“Todos os sistemas ZK têm as mesmas premissas de confiança.”** Cerimônias, curvas, hashes, modelos de transcrição e controles de upgrade diferem muito.
- **“ZK é criptografia.”** A criptografia oculta dados para um autorizado decifrar; uma ZKP comprova uma alegação sem enviar a testemunha para decifração.

<a id="related"></a>

## Tópicos relacionados

- [Hash criptográfico](/pt-br/crypto/cryptographic-hash/)
- [Moeda de privacidade](/pt-br/crypto/privacy-coin/)
- [Prova de validade](/pt-br/crypto/validity-proof/)
- [ZK Rollup](/pt-br/crypto/zk-rollup/)

<a id="sources"></a>

## Fontes

- [The Knowledge Complexity of Interactive Proof Systems](https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Zero%20Knowledge/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf) - SIAM Journal on Computing (acessado em: 2026-08-22)
- [On the Size of Pairing-based Non-interactive Arguments](https://eprint.iacr.org/2016/260.pdf) - IACR Cryptology ePrint Archive (acessado em: 2026-08-22)
- [Scalable, transparent, and post-quantum secure computational integrity](https://eprint.iacr.org/2018/046.pdf) - IACR Cryptology ePrint Archive (acessado em: 2026-08-22)
- [PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge](https://eprint.iacr.org/2019/953.pdf) - IACR Cryptology ePrint Archive (acessado em: 2026-08-22)
- [Zcash Protocol Specification](https://zips.z.cash/protocol/protocol.pdf) - Zcash Protocol Specification (acessado em: 2026-08-22)

Source: https://wiki.fcontext.com/pt-br/crypto/zero-knowledge-proof/index.mdx
