ZKPs: Desvendando o Futuro da Privacidade em Blockchain

Foto do autor

By luis

Em um cenário global onde a vigilância se tornou quase rotineira, com diversas entidades monitorando constantemente informações pessoais, a crescente falta de privacidade clama por soluções tecnológicas inovadoras.

A tecnologia blockchain, um sistema de registro descentralizado, tem revolucionado vários aspectos de nossas vidas, alterando significativamente processos tradicionais. No entanto, apesar de seu impacto, ainda há espaço para melhorias.

Surge agora uma nova tecnologia promissora: a Prova de Conhecimento Zero (ZKP). Se você ouviu falar sobre ZKP mas ainda não compreende totalmente seu funcionamento e aplicações, você está no lugar certo.

A criptografia de conhecimento zero tem sido elogiada como um protocolo de excelência para aumentar a segurança, mas será que ela atende às expectativas e representa a solução que o mundo aguarda? Este artigo visa esclarecer essas e outras questões relevantes.

O que é um Protocolo de Conhecimento à Prova de Zero?

A Prova de Conhecimento Zero é um método criptográfico inovador que permite a uma parte (o provador) confirmar a validade de uma declaração para outra parte (o verificador) sem divulgar nenhuma informação adicional além da veracidade da declaração em si.

O processo de prova envolve o provador, o verificador e um desafio, exigindo que as partes demonstrem publicamente evidências de propriedade ou conhecimento, mantendo os detalhes subjacentes confidenciais.

Em termos mais simples, um protocolo à prova de zero permite que você convença alguém de que possui determinado conhecimento ou realizou uma ação sem revelar esse segredo específico.

Imagine que você deseja solicitar um empréstimo, mas não quer compartilhar seus dados financeiros com um banco. O banco pode utilizar a Prova de Conhecimento Zero para verificar seu histórico financeiro, incluindo pagamentos de contas, comprovante de residência, pontuação de crédito ou bens imobiliários, sem ter acesso aos detalhes específicos desses ativos.

Este protocolo foi inicialmente proposto em 1985 por Shafi Goldwasser, Silvio Micali e Charles Rackoff, pesquisadores do MIT, em um artigo intitulado “A complexidade do conhecimento dos sistemas de prova interativos“. Atualmente, vários protocolos de finanças descentralizadas (DeFi) já utilizam ZKP para garantir maior segurança e privacidade aos usuários em serviços de empréstimo, crédito e negociação.

Além disso, diversas blockchains de Camada 1, como Zcash e Polygon, estão integrando rollups baseados em ZKP ou Máquinas Virtuais Ethereum de Conhecimento Zero (zkEVMs). Há grande otimismo entre os entusiastas da blockchain e da Web 3.0 de que os ZKPs terão um papel fundamental à medida que a adoção de suas aplicações continua a crescer.

Propriedades Essenciais de uma Prova de Conhecimento Zero

O método de Prova de Conhecimento Zero é particularmente útil em cenários onde a informação é sensível e o provador acredita que o verificador não precisa ter acesso a ela.

Nesse contexto, o provador apresenta provas matemáticas, únicas e de sua autoria, que o verificador pode usar para verificar a veracidade da declaração. No entanto, essa prova não permite que as informações sejam reconstruídas.

Imagine que uma montanha imponente divide sua cidade, mas há um túnel com duas entradas conectando as extremidades da cidade, e você é o único que conhece o código secreto das portas trancadas em ambas as extremidades do túnel.

Se você exigir um pagamento antecipado de alguém que deseja usar o túnel antes de revelar sua existência, essa pessoa certamente exigirá uma prova de que você realmente conhece o código antes de confiar em você.

Os interessados podem acreditar que você possui o código secreto se, estando na entrada do túnel, o virem entrar por um lado e sair pelo outro.

Os protocolos de conhecimento à prova de zero devem apresentar três propriedades essenciais:

✅ **Completude:** O verificador deve confirmar que o provador tem o conhecimento necessário para validar a declaração.

✅ **Solidez:** É impossível falsificar a declaração. Não há como convencer o verificador de que o provador tem o conhecimento necessário se este não o possuir.

✅ **Conhecimento Zero:** Não existe nenhum mecanismo para fornecer ao verificador informações adicionais além da autenticidade da declaração. Dados pessoais ou o conteúdo de informações das partes envolvidas permanecem anônimos.

Tipos de Provas de Conhecimento Zero

Existem dois tipos principais de ZKPs:

Provas Interativas de Conhecimento Zero

Neste tipo de Prova de Conhecimento Zero, haverá várias interações entre o provador e o verificador. O verificador pode desafiar as respostas do provador várias vezes até ficar totalmente convencido.

Como as ações associadas a este tipo de ZKP estão relacionadas à probabilidade matemática, o provador deve convencer um verificador específico, ou repetir o processo para diversos verificadores, através de ações relacionadas com o fato em questão.

Provas Não Interativas de Conhecimento Zero

Neste tipo de ZKP, não há interações diretas entre o provador e o verificador. O verificador tem apenas uma chance de confirmar a prova apresentada pelo provador.

Este tipo de ZKP depende mais do poder computacional do que o ZKP interativo. O provador precisa gerar provas que possam ser verificadas por qualquer pessoa para que o processo de verificação possa avançar.

O ZKP não interativo pode necessitar de softwares específicos para funcionar de forma eficaz.

Aplicações da Prova de Conhecimento Zero em Blockchains

A tecnologia Blockchain introduziu diversas características importantes, como descentralização, imutabilidade, transparência e registro distribuído, permitindo que os usuários façam transações com segurança e anonimato.

Embora a blockchain tenha dado aos usuários maior controle sobre sua privacidade, ainda há a percepção de que ela não foi totalmente alcançada, principalmente porque as redes blockchain usam bancos de dados públicos. Qualquer pessoa com acesso à internet pode consultar o histórico de transações da rede.

Isso significa que detalhes associados a transações e carteiras dos usuários podem ser visualizados. Mesmo que as identidades permaneçam anônimas, terceiros ainda têm acesso às chaves públicas.

A criação de chaves públicas através de técnicas criptográficas pode proteger a privacidade. No entanto, podem existir técnicas que acabam por comprometer o anonimato e a privacidade, daí a necessidade de aplicar a Prova de Conhecimento Zero em sistemas blockchain para alcançar os seguintes objetivos:

#1. Mensagens

Em mensagens criptografadas de ponta a ponta, o ideal é que apenas o destinatário tenha acesso à comunicação privada. As plataformas de mensagens tentam verificar a identidade dos usuários nos servidores, mas a implementação de ZKPs permite que essas plataformas criem confiança de ponta a ponta no envio de mensagens sem revelar as informações confidenciais do usuário.

#2. Autenticação

Os ZKPs podem ser utilizados para facilitar a transmissão segura de informações sensíveis, como autenticações. Plataformas Blockchain conseguem criar canais seguros para que os usuários enviem informações sem divulgação indevida, evitando riscos de vazamento de dados.

O aplicativo descentralizado da Manta Network, MantaPay, é um bom exemplo de transações que preservam a privacidade habilitadas por blockchain.

Este DApp utiliza ZKPs para que os usuários possam realizar transações em exchanges descentralizadas sem revelar suas identidades pessoais ou detalhes de transações relevantes. Isso permite que os usuários mantenham a privacidade ao utilizar as plataformas.

#3. Proteção de Armazenamento

Como as blockchains lidam com grandes volumes de dados, os ZKPs também podem ser úteis na gestão do armazenamento.

As provas de conhecimento zero integram protocolos que podem proteger dados confidenciais além da própria unidade de armazenamento. Além disso, os ZKPs podem proteger os canais de acesso, proporcionando aos usuários uma experiência segura e contínua.

#4. Envio de Transações Privadas em Blockchain

O principal objetivo do envio de transações privadas em blockchain é garantir que terceiros não as encontrem. Apesar dos métodos de proteção existentes, ainda existem algumas lacunas, e é aí que os ZKPs entram em jogo.

Se implementados corretamente, os ZKPs tornarão impossível para terceiros hackear, interceptar ou desviar transações privadas em blockchain.

Por exemplo, Zcash utiliza Transações de Conhecimento Zero para permitir transações protegidas que ocultam os endereços do remetente e do destinatário, além dos valores envolvidos no blockchain público, adicionando uma camada extra de segurança.

#5. Documentação Complexa

Os ZKPs são projetados para criptografar grandes quantidades de dados, permitindo que os usuários decidam quais blocos de informação podem ser acessados por determinados usuários e restrinjam o acesso a outros. Este conceito pode ser utilizado para garantir que apenas partes autorizadas possam aceder a documentação complexa.

#6. Democratização da Verificação de Votos

Outra aplicação prática do ZKP no blockchain é o papel que pode desempenhar na verificação de votos. O protocolo pode fornecer respostas confiáveis em qualquer processo de votação auditável, registrando os votos em um blockchain público.

Isso eliminaria a necessidade de restrição e confirmações de terceiros. As provas de conhecimento zero permitiriam que os eleitores demonstrassem sua elegibilidade para votar, mantendo seus dados pessoais sensíveis em segurança.

Os eleitores também poderiam usar ZKPs para obter provas imutáveis de seu voto na contagem final.

#7. Segurança para Informações Sensíveis

Os ZKPs podem adicionar uma camada extra de segurança aos blocos que contêm informações confidenciais em blockchains.

Isso pode incluir informações bancárias confidenciais, como histórico de crédito e detalhes de cartão, garantindo que os destinatários acessem apenas os blocos necessários e que o restante permaneça protegido.

#8. Tokenização e Verificação de Propriedade

As plataformas Blockchain também podem usar ZKPs no processo de tokenização de ativos e verificação da propriedade. Por exemplo, um usuário pode comprovar a propriedade de um imóvel sem divulgar informações pessoais.

Vantagens de Usar Provas de Conhecimento Zero

Assim como qualquer outra nova tecnologia, o uso de ZKPs em conjunto com protocolos blockchain traz consigo uma série de vantagens. Além da liberdade e flexibilidade que oferece aos usuários, os benefícios incluem:

❖ **Simplicidade:** A simplicidade é talvez a vantagem mais notável do uso de ZKPs. Os usuários não precisam dominar softwares complexos para usar as soluções que ele oferece. Além disso, os ZKPs são totalmente seguros, mesmo sem criptografia, oferecendo o melhor de dois mundos.

❖ **Segurança:** Os protocolos de Prova de Conhecimento Zero são altamente seguros na forma como facilitam o compartilhamento de informações. Isso significa que os usuários podem interagir de forma segura, sem precisar dominar códigos ou análises específicas.

❖ **Economia de tempo:** Com ZKPs, os usuários economizam tempo na realização de transações de blockchain, o que agrega valor significativo.

❖ **Privacidade:** A proteção da privacidade do usuário é uma característica principal dos ZKPs, que dispensam o compartilhamento de dados confidenciais.

❖ **Controle:** Usuários de protocolos de Prova de Conhecimento Zero têm controle sobre o compartilhamento de dados, protegendo-se de solicitações injustificadas de informações pessoais.

ZKP vs. Computação Multipartidária (MPC)

Já estabelecemos que os ZKPs envolvem uma sequência única usada para comprovar a veracidade de uma declaração, sem revelar detalhes confidenciais. Isso pode incluir a estrutura de uma comunicação ou uma chave secreta associada à chave pública.

No contexto das transações blockchain, isso pode significar que o criador de uma transação oculta o valor exato, oferecendo prova de que uma transação válida ocorreu.

A Computação Multipartidária (MPC), por outro lado, refere-se à comunicação interativa entre várias partes que lhes permite calcular de forma segura e simultânea uma função idêntica de seus valores não divulgados, mantendo seus detalhes em privado.

Por exemplo, imagine três partes com um número secreto cada uma, que desejam calcular a soma dos três números. No entanto, nenhuma das partes pode revelar seu número secreto para as outras.

A principal característica do MPC é que existem vários participantes envolvidos, cada um visando avaliar o valor secreto das funções de seus pares com segurança, ao mesmo tempo que permite que seus pares façam o mesmo sem revelar seu valor privado pessoal.

Prova de Conhecimento Zero vs. Confiança Zero

O aspecto da verificação é o que diferencia Provas de Conhecimento Zero e Confiança Zero. O modelo Zero Trust exige uma verificação rigorosa da identidade dos usuários e seus dispositivos antes que eles possam acessar aplicações e dados sensíveis.

Os ZKPs, por outro lado, criptografam os dados de modo que apenas uma parte autorizada possa acessá-los. Embora a verificação de identidade seja a base do modelo Zero Trust, a criptografia é o princípio fundamental do protocolo Zero-Knowledge.

O escopo também diferencia os dois protocolos: enquanto a segurança da rede é o foco principal do Zero Trust, a segurança dos dados é a base do Zero Knowledge.

O Zero Trust garante que apenas um dispositivo ou usuário autorizado acesse aplicativos ou dados confidenciais, enquanto o Zero Knowledge Proof protege os dados pessoais por meio de criptografia, garantindo que apenas um participante autorizado tenha acesso.

Considerações Finais

A Prova de Conhecimento Zero pode não ser mágica, mas introduziu uma nova e estimulante fronteira para a tecnologia blockchain. O protocolo apresenta um imenso potencial para uma ampla gama de aplicações que envolvem informações sensíveis, como provas de identidade, confirmação de senhas e provas de adesão.

À medida que os ZKPs ganham atenção, devido a sua escalabilidade e capacidade de preservação de privacidade, são cada vez mais aplicados em blockchains, criptomoedas e aplicações DeFi. Espera-se que expandam seus horizontes e desempenhem um papel fundamental em ecossistemas DApp, onde segurança, privacidade e eficiência são cruciais.

Quando utilizadas como ferramenta fundamental em criptografia, as Provas de Conhecimento Zero ajudarão a comprovar as propriedades dos dados e se tornarão a solução versátil para trazer a blockchain e suas aplicações para o mainstream. Operadores de Blockchain podem aproveitar os ZKPs para obter enormes benefícios a preços acessíveis.

A seguir, confira um guia detalhado sobre Segurança Zero Trust.