Ainda que a transparência das blockchains proporcione uma vantagem em muitas situações, também há uma série de casos de usos de contratos inteligentes que precisam de mais privacidade por conta de várias necessidades legais ou comerciais.
Uma das maneiras cada vez mais praticadas no mundo blockchain para conseguir essa privacidade é por meio da prova de conhecimento zero, também conhecida como zero knowledge proof.
Contenidos
O que são provas de conhecimento zero?
Zero-Knowledge Proof (ZKP) é uma das técnicas de criptografia que permitem que uma parte (o provador) consiga mostrar para a outra parte (o verificador) que ele tem ciência de um dado em particular (um valor absoluto), sem precisar dar mais nenhuma informação.
Achou complicado? Vamos falar em palavras mais simples: em uma prova de conhecimento zero, o que eu faço é lhe convencer de que sei uma informação, sem necessariamente revelar tal informação nem como cheguei a conhecê-la.
➡️Desde uma perspectiva mais técnica, uma ZKP é uma avaliação probabilística, ou seja, isso significa que não se comprova uma certeza, e sim uma grande chance de que algo esteja certo.
De fato, ao invés da precisão, entram em jogo pequenos fragmentos de informação que não podem ser conectados, mas podem ser ‘acumulados’ para mostrar que a validade de uma afirmação é provável.
O Zero-Knowledge Proof tem potencial para criar uma nova onda de adoção das blockchains, com ainda mais privacidade tanto para usuários como para instituições.
Propriedades da ZKP
Até aí, tudo entendido? Mas como será possível demonstrar que temos, por exemplo, uma chave correta sem mostrar isso para um administrador?
A resposta é que a Zero-knowledge proof prova que uma chave privada, relacionada a uma chave pública em particular, atende a certos requisitos, ao mesmo tempo em que a chave privada não precisa ser informada.
⚠️ Isso acontece porque a chave privada e a chave pública estão vinculadas de forma matemática.
Assim, o verificador pode checar se as duas estão conectadas, mas ainda assim, mantém-se a privacidade, já que o verificador não pode nem rastrear, nem gerar a chave privada usando os fragmentos de informação.
Tipos de Prova de Conhecimento Zero
Existem dois tipos principais de ZKP, as interativas e as não-interativas.
Interactive ZKP
Os ZKP interactivos compreendem uma série de tarefas ou ações que o provador deve realizar para convencer o verificador de que possui “X” informações específicas.
A maioria das tarefas necessárias para execução da ZKP interativa costuma aplicar conceitos de probabilidade matemática.
Non-Interactive ZKP
Nesta opção, não é necessário nenhum tipo de interação entre o provador e o verificador e, inclusive, a verificação pode acontecer em uma fase posterior. Esses tipos de ZKP demandam que hardwares e/ou software extras sejam empregados na operação.
Em ambos os casos, as provas de conhecimento zero precisam atender a alguns critérios para que sejam bem-sucedidas. Confira:
- Integridade: se o provador consegue comprovar que a chave é a certa, o verificador se convence de que a operação pode ser executada já que as informações são legítimas.
- Solidez: O verificador se convence se, e somente se, o provador está informando a chave correta.
- Conhecimento zero: O verificador não precisa saber qual é a senha específica para fazer sua parte.
Zero-knowledge proof e blockchain
Como dissemos no post sobre blockchains, essa tecnologia funciona como um grande livro contábil descentralizado que registra todas as transações de forma pública e sequencial.
Isso significa que transações P2P podem ser feitas sem a intermediação de terceiros e que qualquer pessoa pode ver o que está acontecendo na cadeia de blocos.
✔️ Para ver você mesmo, entenda o que é um explorador de blockchain e como isso funciona, na prática.
Ou seja, nas blockchains, todo mundo sabe de tudo, ou pelo menos no que se refere às transações feitas tanto pela rede como por uma carteira em particular.
Mas como as ZKPs interagem com tudo isso? Elas permitem que as transações confidenciais que priorizam a privacidade sejam igualmente registradas em uma blockchain.
E como a prova de conhecimento zero cria essa opção? Ao fornecer uma maneira de comprovar que uma transação foi feita da forma correta, sem ter que revelar dados adicionais (addresses, montantes transferidos, etc.).
Aplicações da Zero Knowledge Proof: exemplos
Transações confidenciais em blockchain: os dados de uma transação são criptografados e são publicadas provas para mostrar que as transações em blockchain foram calculadas corretamente.
Documentação complexa: a combinação de ZKP e Blockchain permite que os usuários compartilhem documentos complexos sobre suas movimentações financeiras de forma segura.
☑️ A ZKP têm potencial de encriptar dados em fragmentos, permitindo que os usuários controlem determinados blocos e a visibilidade da informação contida em cada um deles. Isso permite o acesso de alguns utilizadores enquanto restringe a visualização de outros.
Verificação de preservação de privacidade: um provador apresenta uma prova de conhecimento zero a um verificador sem dar acesso a registos financeiros privados.
Aplicativos de mensagens: os apps de mensagens tradicionais exigem que os usuários verifiquem a sua identidade em um servidor. Com a ZKP, uma pessoa pode provar a sua identidade sem revelar informações pessoais adicionais.
Para citar um caso real de uso de zero-knowledge proof, podemos falar da ZCash. Autodeterminada como um ativo digital rápido e confidencial com baixas taxas de operações.
Segundo palavras da própria ZCash:
“Zcash foi o primeiro projeto a implementar zk-SNARKs, uma nova forma de criptografia zero-knowledge que dá, aos seus usuários, a maior privacidade possível entre todas as criptomoedas.”
Outra criptomoeda que aplica a ZKP em sua blockchain é a Tornado Cash. Trata-se de uma crypto que usa a prova de conhecimento zero para tornar as operações na rede Ethereum anônimas.
➡️ Como ela faz isso? Fragmentando o on-chain link entre os addresses de origem e de destino por meio de uma ZKP.
Vantagens e desvantagens da Zero-Knowledge Proof
Tudo no mundo tem seu lado bom e seus pontos negativos, ou pelo menos, pouco desejáveis. No caso da prova de conhecimento zero, não poderia ser diferente.
Veja um checklist das vantagens e desvantagens da ZKP:
Vantagens
Privacidade: aumenta a privacidade dos usuários ao impedir a divulgação de informações pessoais em blockchains públicas.
Segurança: reforça a segurança da informação ao substituir métodos de autenticação menos eficientes.
Escalabilidade: aumenta o desempenho e a escalabilidade da blockchain.
Desvantagens
Limitado: os protocolos para ZKP são geralmente baseados em equações matemáticas e respostas numéricas.
Demanda um alto poder de processamento: há cerca de 2000 cálculos por transação ZKP e cada um deles requer um tempo para ser processado.
Restrito: se o autor de uma transação esquecer suas informações, todos os dados associados a ela são perdidos.
Entendeu o que é uma Zero Knowledge proof, como funciona e quais são seus usos possíveis? Agora, aproveite para seguir aprendendo sobre o mundo crypto: dê uma olhada nos outros posts de nossa wiki!