Página Inicial
Glossário
Zero-Knowledge Proofs

Zero-Knowledge Proofs

Avançado

O zero-knowledge proof (ou prova de conhecimento zero), também conhecido como protocolo zk ou ZKP, é um método de verificação que ocorre entre dois participantes, um comprovador e um verificador. Em um sistema de zero-knowledge proof, o comprovador é capaz de provar ao verificador que ele tem conhecimento de uma determinada informação (como a solução de uma equação matemática) sem revelar a informação em si. Esses sistemas de prova podem ser usados por criptógrafos modernos para fornecer mais privacidade e segurança.

O conceito de zero-knowledge proof foi descrito pela primeira vez em um artigo do MIT de 1985, publicado por Shafi Goldwasser e Silvio Micali. Eles demonstraram que era possível provar algumas propriedades de um número sem divulgar o número em si ou qualquer informação adicional sobre ele. Este artigo também introduziu a importante descoberta matemática de que as interações entre um comprovador e um verificador podem reduzir a quantidade de informações necessárias para provar um determinado teorema. 

O protocolo zk proof deve atender a dois requisitos básicos: integridade e solidez. A integridade se refere à capacidade do comprovador de demonstrar conhecimento das informações relevantes com um alto grau de precisão que pode ser comprovada. Para que a prova seja sólida, o verificador deve ser capaz de determinar com segurança se o participante responsável pela prova tem, de fato, a posse das informações. Por fim, para ser de fato uma prova "de conhecimento zero", ela deve alcançar integridade e solidez sem que as informações em questão sejam comunicadas entre o comprovador e o verificador.

Os protocolos zero-knowledge proof são usados principalmente para aplicações em que privacidade e segurança são essenciais. Sistemas de autenticação, por exemplo, podem empregar zk proofs para verificar credenciais ou identidades sem divulgá-las. Como um exemplo simples, esse sistema pode ser usado para verificar se uma pessoa possui a senha para um sistema de computador sem a necessidade de revelar qual é a senha. 

Um caso de uso proeminente no mundo real de provas de conhecimento zero pode ser encontrado no mundo da criptomoeda e da tecnologia blockchain. Usando um tipo de zero-knowledge proof conhecido como zk-SNARK (Succinct Non-interactive Argument of Knowledge), criptomoedas com foco em privacidade, como o Zcash, oferecem transações blockchain com maiores níveis de privacidade para seus usuários. A Ethereum também está trabalhando com zk-SNARKs desde sua atualização Byzantium, implementada em 2017.