Uma prova de conhecimento zero é um método criptográfico para convencer um verificador de que uma afirmação específica é verdadeira, mantendo ocultas as informações privadas que a sustentam. Essas informações são chamadas de testemunha. A afirmação e as entradas definidas como públicas podem continuar visíveis; «conhecimento zero» não significa que o verificador não aprende absolutamente nada.
O que a prova estabelece
O provador usa a testemunha para gerar evidências verificáveis. Completude significa que uma prova honesta de uma afirmação verdadeira é aceita. Solidez limita a possibilidade de fazer uma afirmação falsa passar por verdadeira. A propriedade de conhecimento zero impede que a prova revele informações adicionais da testemunha além da afirmação pública.
Por exemplo, um sistema poderia provar que uma credencial assinada atende a um limite de idade sem divulgar a data de nascimento. O emissor e as regras codificadas continuam importantes. Usos em blockchain também incluem pagamentos privados e verificação de cálculos feitos em outro lugar.
A privacidade depende da aplicação
Os sistemas diferem em custo computacional, tamanho da prova e premissas de configuração. Alguns exigem uma configuração confiável; outros, não.
A prova estabelece apenas a afirmação codificada sob as premissas do sistema. Restrições incorretas ou bugs podem enfraquecê-la. Detalhes públicos de transações e metadados de rede ainda podem revelar informações; usar tecnologia ZK não torna uma aplicação automaticamente anônima.