O que é uma Prova de Conhecimento Zero?
Ultimamente, uma nova palavra da moda foi notada na indústria de mineração de criptomoedas - moedas Zero-Knowledge Proof (prova de conhecimento zero) ou ZK.
O que é prova de conhecimento zero e por que tantas pessoas falam sobre isso? Como em tudo, é preciso compreender o problema antes de compreender a solução.
Que problema resolve uma prova de conhecimento zero?
Provas de conhecimento zero resolvem vários problemas relacionados com a privacidade e segurança em vários domínios. Aqui estão alguns exemplos:
- Autenticação e Verificação de Identidade: As provas de conhecimento zero podem ser usadas para provar a identidade sem revelar nenhuma informação pessoal. Por exemplo, um utilizador pode provar que tem mais de 18 anos, sem revelar a data exata de nascimento.
- Privacidade dos Dados: As provas de conhecimento zero podem ser usadas para validar dados confidenciais, como registos médicos ou transações financeiras, sem revelar os dados reais. Isso permite partilhamento e análise segura de dados, preservando a privacidade.
- Tecnologia de Blockchain: Algumas tecnologias de blockchain usam provas de conhecimento zero para verificar transações sem revelar os detalhes. Isso ajuda a garantir a confidencialidade e privacidade das transações na blockchain.
- Cibersegurança: As provas de conhecimento zero podem ser usadas para autenticar utilizadores sem revelar as suas passwords ou outras informações confidenciais. Isso ajuda a prevenir o roubo de identidade e outras formas de crime cibernético.
O que são provas de conhecimento zero?
As provas de conhecimento zero são um protocolo criptográfico que permite que uma parte, o provador, prove a outra parte, o verificador, que uma afirmação é verdadeira sem revelar nenhuma informação adicional além da verdade da própria afirmação. Em outras palavras, o provador pode convencer o verificador de que sabe algo sem realmente revelar o que sabe. Isso é obtido usando algoritmos criptográficos complexos para criar provas que podem ser verificadas sem revelar nenhuma informação sobre a própria prova. As provas de conhecimento zero são úteis em cenários em que a privacidade é crucial, como em transações online, verificação de identidade e outros aplicativos em que informações confidenciais precisam de ser protegidas.
As provas de conhecimento zero têm três requisitos:
- Integridade: Espera-se que tanto o provador quanto o verificador cumpram o protocolo com honestidade.
- Solidez: Supondo que o provador não seja honesto e não conheça um segredo, é improvável que ele convença o verificador de que possui o segredo, pois a probabilidade de enganar o verificador é muito baixa.
- Conhecimento Zero: Isso refere-se a um cenário em que um provador (Bob) é definido para demonstrar a um verificador (Alice) que eles têm conhecimento de um segredo. No entanto, a demonstração apenas convence (Alice) do conhecimento secreto possuído por (Bob), sem meios para que estranhos possam verificar a veracidade da prova.
Experiência da Caverna de Ali Baba
O exemplo da caverna de Ali Baba é uma ilustração comumente usada para a prova de conhecimento zero. Neste cenário, Bob e Alice entram numa caverna com portas do lado oposto da entrada, ambos conhecem o código para abri-las. Bob afirma conhecer o código e quer prová-lo para Alice sem revelá-lo.
Para isso, Bob entra na caverna pelo lado esquerdo e caminha até às portas do lado oposto. Enquanto isso, Alice espera na entrada e pede a Bob que saia pelo lado direito da caverna. Se Bob abrir a porta com sucesso e sair pelo lado direito, ele deve conhecer o código. No entanto, Alice não sabe se Bob usou o caminho da direita ou da esquerda no início.
Este teste é repetido várias vezes, com Alice pedindo a Bob para emergir de diferentes lados da caverna. Se Bob emergir consistentemente do lado correto da caverna, Alice pode ter certeza de que ele conhece o código secreto sem realmente aprender o próprio código.
Desta forma, o exemplo da caverna de Ali Baba demonstra como as provas de conhecimento zero podem ser usadas para verificar uma afirmação sem revelar nenhuma informação sensível.
Que problema prático uma prova de conhecimento zero pode resolver?
Um bom exemplo prático de um problema é a publicidade de contratos inteligentes. Os contratos inteligentes são escritos na blockchain pública e podem ser observados por qualquer pessoa. Um contrato inteligente pode, por exemplo, ter uma condição por escrito que libertará os fundos bloqueados para um utilizador depois de essa condição ser atendida. Atualmente, essa condição pode ser observada por qualquer pessoa através de exploradores de blockchain.
Com a prova de conhecimento zero, uma das partes poderia provar que a condição foi atendida sem revelar nenhuma outra informação sobre o contrato inteligente ou as condições dentro desse contrato inteligente.
Outro caso de uso pode ser a comprovação de reservas de trocas de criptomoedas. Talvez a exchange não se sinta confortável em partilhar informações ao público sobre as chaves públicas das carteiras que usam para armazenamento a frio. Mas eles podem usar a prova de conhecimento zero para confirmar que possuem as reservas sem revelar nenhuma outra informação. O “verificador” desta declaração pode ter certeza de que a exchange realmente possui reservas.