Prova de conhecimento zero (ZKP) em Blockchain explicada

Num mundo onde a vigilância está quase na ordem do dia, diferentes instituições monitorizam constantemente a informação sobre as pessoas, e a consequente falta de privacidade exige uma nova intervenção tecnológica.

A blockchain, também conhecida como tecnologia de contabilidade distribuída, é um sistema descentralizado que está revolucionando a forma como tradicionalmente fazemos a maioria das coisas. A tecnologia fez mudanças profundas, mas não foi suficientemente longe.

Agora há um novo garoto no bloco chamado Zero-Knowledge Proof (ZKP). Se você já ouviu falar do ZKP e ainda não sabe o que está por trás dele e como funciona, você está no lugar certo.

A criptografia de conhecimento zero tem sido apontada como o melhor protocolo para aumentar a segurança, mas será que é boa o suficiente e poderia ser a solução que o mundo esperava? Este artigo procura responder a estas e outras questões relacionadas.

O que é um protocolo de conhecimento à prova de zero?

A prova de conhecimento zero refere-se a uma nova forma usada em criptografia pela qual uma parte (o provador) pode verificar a validade de uma declaração para uma parte diferente (o verificador) sem necessariamente revelar mais informações além do fato da legitimidade da declaração.

O sistema de prova envolve o provador, o verificador e o desafio que exige a capacidade das partes envolvidas de exibir publicamente provas de propriedade ou conhecimento, deixando intactos os detalhes mais sutis.

Para simplificar ainda mais, o protocolo à prova de zero pode ser usado em criptografia para permitir que você convença outra pessoa de que sabe ou realizou algo sem necessariamente revelar exatamente esse segredo.

Suponhamos que você pretenda fazer um empréstimo, mas não esteja disposto a revelar seus dados financeiros a um banco; o banco pode usar a prova de Conhecimento Zero para determinar seu histórico financeiro, incluindo mais informações como pagamentos de contas, comprovante de residência, pontuação de crédito ou imóveis, sem ter acesso aos detalhes específicos desses ativos.

O protocolo foi conceituado pela primeira vez em 1985 por três cientistas do MIT, Shafi Goldwasser, Silvio Micali e Charles Rackoff, por meio de um artigo de pesquisa intitulado “A complexidade do conhecimento dos sistemas de prova interativos.” Numerosos protocolos de finanças descentralizadas (DeFi) já são ZKP para garantir melhor segurança e privacidade aos usuários de seus serviços de empréstimo, empréstimo e negociação.

Vários blockchains da Camada 1, como Zcash e Polygon, já estão incorporando rollups baseados em ZKP ou Máquinas Virtuais Ethereum de Conhecimento Zero (zkEVMs). Há grandes esperanças entre os entusiastas do blockchain e da Web 3.0 de que os ZKPs desempenharão um papel integral à medida que as taxas de adoção de seus aplicativos continuam crescendo.

Propriedades de uma prova de conhecimento zero

O método de prova de Conhecimento Zero torna-se especialmente útil em situações onde a informação é profunda e o provador acredita que o verificador não precisa acessá-la.

Nesse caso, o provador oferece provas matemáticas que somente ele é capaz de gerar, que o verificador pode usar para autenticar a veracidade da afirmação. No entanto, as informações fornecidas não podem ser usadas para reconstruir as informações.

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

Se você exigiu um pagamento adiantado de alguém que desejasse acesso ao túnel antes de revelá-lo, é evidente que eles iriam querer uma prova de que você realmente conhece o código antes que possam confiar em você.

As partes interessadas poderiam acreditar que você obteve o código secreto se ficassem na entrada do túnel e observassem você andar de um lado e sair pelo outro.

Três propriedades essenciais de qualquer protocolo de conhecimento à prova de zero são:

❇️ Completude: O verificador deve certificar que o provador possui os dados necessários para qualificar a declaração.

❇️ Solidez: é impossível falsificar a afirmação e não há como convencer o verificador de que o provador possui os dados necessários se não o fizer.

❇️ Conhecimento zero: Não existe mecanismo disponível para oferecer ao verificador informações além da autenticidade da declaração. Os dados pessoais ou o conteúdo das informações pertencentes às partes permanecem anônimos.

Diferentes tipos de provas de conhecimento zero

Existem dois tipos principais de ZKPs, a saber:

Provas interativas de conhecimento zero

Neste tipo de Prova de Conhecimento Zero, haverá inúmeras interações entre o provador e o verificador. Isso porque o verificador poderia contestar as respostas do provador ao desafio existente várias vezes até estar totalmente convencido.

Como as ações associadas a este tipo de ZKP tratam de probabilidade matemática, o provador deve persuadir o verificador específico ou repetir o processo para vários verificadores através de uma série de ações relacionadas ao fato específico.

Provas de conhecimento zero não interativas

Não há interação voluntária entre o provador e o verificador neste tipo de ZKP, uma vez que o verificador tem apenas uma chance de autenticar a prova entregue pelo provador.

Como este tipo de ZKP depende mais do poder computacional do que o ZKP interativo, o provador é obrigado a criar provas que qualquer pessoa possa verificar para que o processo de verificação possa avançar para o próximo estágio.

O ZKP não interativo pode exigir software específico para que o mecanismo seja verdadeiramente eficaz.

Aplicação da Prova de Conhecimento Zero em Blockchains

A tecnologia Blockchain introduziu inúmeras características significativas, como descentralização, imutabilidade, transparência e registro distribuído, permitindo aos usuários realizar transações com segurança de alto nível e agir anonimamente.

Embora o blockchain possa ter dado aos usuários o controle de sua privacidade, há uma sensação de que isso não foi feito de forma completa, principalmente porque as redes blockchain usam bancos de dados públicos. Qualquer pessoa com conexão à Internet pode acessar o histórico de transações da rede.

Como resultado, muitos detalhes associados à transação e à carteira de um usuário puderam ser vistos. Mesmo que a identidade deles permaneça anônima, terceiros ainda verão suas chaves públicas.

A criação de chaves públicas através de técnicas criptográficas pode salvaguardar a privacidade. Ainda assim, pode haver técnicas que possam acabar com o anonimato e a privacidade, daí a necessidade de aplicar a Prova de Conhecimento Zero em sistemas blockchain para alcançar os seguintes resultados:

#1. Mensagens

Quando as pessoas escrevem mensagens usando criptografia de ponta a ponta, é sempre desejável que ninguém além da pessoa pretendida acesse as mensagens privadas. As plataformas de mensagens em questão fazem um esforço extra para verificar a identidade dos usuários nos servidores e vice-versa. No entanto, a implementação de ZKPs permitirá que as plataformas de mensagens criem confiança de ponta a ponta na esfera de mensagens sem revelar informações pertinentes do usuário.

#2. Autenticação

Os ZKPs podem ser usados ​​para facilitar a transmissão de informações delicadas, como autenticação, com a máxima segurança. As plataformas Blockchain serão capazes de criar canais seguros para os usuários enviarem suas informações sem revelação indevida, para evitar riscos de vazamento de dados nos piores cenários.

O melhor exemplo de transações de preservação de privacidade habilitadas para blockchain é o aplicativo descentralizado da Manta Network, MantaPay.

O DApp usa ZKPs que permitem aos usuários realizar transações em bolsas descentralizadas sem necessariamente revelar suas identidades pessoais ou detalhes de transações pertinentes. Os utilizadores são, portanto, capazes de manter a sua privacidade enquanto utilizam as plataformas.

#3. Proteção de armazenamento

Como os blockchains lidam com grandes quantidades de dados, os ZKPs também podem ser úteis no que diz respeito ao armazenamento de dados.

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

#4. Envio de transações privadas de blockchain

A essência do envio de transações privadas em blockchain é garantir que terceiros não as encontrem. Com todos os seus atributos positivos, os métodos de proteção existentes podem ter algumas lacunas, e é aí que os ZKPs entram em jogo.

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

Por exemplo, Zcash usa 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 e adicionando um nível de segurança.

#5. Documentação Complexa

Os ZKPs são projetados com o potencial de criptografar dados em pedaços consideráveis, o que dá aos usuários a capacidade de decidir quais blocos eles permitirão que determinados usuários acessem e restringirão outros. Este conceito pode ser usado para garantir que apenas as partes autorizadas possam acessar documentação complexa.

#6. Democratizando a verificação de votos

O próximo lugar prático para aplicar o ZKP no blockchain é o papel democrático que ele pode desempenhar na verificação de cotes. O protocolo pode fornecer respostas confiáveis ​​para qualquer processo de votação auditável, registrando os votos expressos em um blockchain público.

O efeito seria um processo de votação que eliminaria a exigência de restrição e quaisquer confirmações de terceiros. As provas de conhecimento zero permitiriam aos eleitores demonstrar a sua elegibilidade para votar, ao mesmo tempo que garantiriam que os seus dados pessoais sensíveis permanecessem intactos.

Os eleitores também poderiam usar ZKPs para exigir provas imutáveis ​​do seu voto na contagem final dos votos apurados.

#7. Segurança para informações delicadas

O ZKP também fornecerá a maneira como o blockchain é usado no fornecimento de transações, adicionando uma camada extra de segurança de alta qualidade aos blocos que transportam informações confidenciais.

Isso pode incluir informações bancárias confidenciais, como histórico de crédito e detalhes de cartão de crédito, para que os destinatários tenham acesso apenas aos blocos necessários que exigem informações do usuário. Em contrapartida, os outros blocos permanecem intocados e protegidos.

#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 de sua prova de propriedade. Um exemplo é que um usuário pode comprovar a propriedade de uma propriedade sem revelar publicamente suas informações pessoais.

Vantagens de usar prova de conhecimento zero

Como qualquer outra forma de nova tecnologia, o uso de ZKPs traz consigo uma série de vantagens quando usados ​​em combinação com protocolos blockchain. Além da liberdade e flexibilidade que oferece aos usuários, os outros benefícios do uso das Provas de Conhecimento Zero incluem o seguinte:

🔷 Simplicidade: A simplicidade é talvez a vantagem mais notável do uso de ZKPs, pois os usuários não precisam saber como usar softwares complexos para aplicar as diferentes soluções superiores que eles oferecem. Além disso, os ZKPs são totalmente seguros, apesar de não serem criptografados, o que significa que eles abrangem perfeitamente os dois mundos.

🔷 Segurança: Os protocolos Zero-Knowledge Proof são altamente seguros na forma como facilitam o compartilhamento de informações. Isso significa que os usuários podem usá-los com segurança para interagir, sem precisar dominar nenhum código ou análise específica.

🔷 Economia de tempo: com ZKPs, os usuários economizam a quantidade de tempo necessária para concluir transações de blockchain, oferecendo valor decentemente.

🔷 Privacidade: Proteger e preservar a privacidade dos usuários é uma característica principal dos ZKPs. Isso ocorre porque os usuários não precisam compartilhar dados confidenciais, tornando-o um protocolo extremamente privado.

🔷 Segurança: Os usuários dos protocolos Zero-Knowledge Proof já conhecem sua política em relação ao compartilhamento de dados, o que significa que manterão afastada qualquer entidade que solicite suas informações pessoais sem motivos válidos.

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

Já estabelecemos que os ZKPs envolvem uma sequência única usada para provar a autenticidade de uma declaração contendo valor público sem revelar os detalhes mais sutis à parte correspondente. Isto pode envolver a estrutura oculta de alguma comunicação ou uma chave secreta relacionada à chave pública.

No contexto das transações blockchain, isso pode significar que o originador de uma transação ocultará seu valor exato, ao mesmo tempo que oferece prova de que uma transação válida realmente ocorreu.

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 os detalhes individualmente para si.

Um bom cenário seria ter três partes com um número secreto cada uma e poder calcular a soma dos três números. Ainda assim, as partes precisam saber o número secreto detido pelas outras duas contrapartes, além do total dos três algarismos.

A principal característica do MPC, portanto, é que há numerosos pares envolvidos, e cada um deles visa avaliar com segurança o valor secreto das funções dos seus pares, ao mesmo tempo que permite aos seus pares o mesmo privilégio sem revelar o seu valor pessoal privado.

Prova de conhecimento zero vs. Confiança Zero

O aspecto da verificação é o que traça a linha entre Provas de Conhecimento Zero e Confiança Zero. O modelo Zero Trust exige verificação rigorosa da identidade dos usuários e de seus dispositivos antes que possam acessar aplicativos e dados confidenciais.

Os ZKPs, por outro lado, criptografam os dados de uma forma que apenas uma parte autorizada pode acessá-los. Embora a verificação de identidade seja a força motriz por trás de todo o mecanismo Zero Trust, a criptografia é o princípio fundamental do protocolo Zero-Knowledge.

O aspecto do escopo também diferencia os dois protocolos, de modo que onde a segurança da rede é o foco principal do Zero Trust, a segurança dos dados é o esteio do Zero Knowledge.

Onde Zero Trust é aplicado para garantir que apenas um dispositivo ou usuário autorizado e autenticado seja capaz de acessar aplicativos ou dados confidenciais, Zero Knowledge Proof protege os dados pessoais criptografando-os de forma que apenas um participante autorizado possa acessá-los.

Pensamentos finais

A Prova de Conhecimento Zero pode não ser mágica, mas introduziu uma nova e excitante fronteira para a tecnologia blockchain. O protocolo propõe um imenso potencial para uma ampla gama de aplicativos que são executados com informações confidenciais, como prova de identidade, confirmação de senha ou prova de adesão.

À medida que os ZKPs continuam ganhando atenção, graças à sua escalabilidade e propriedades de preservação da privacidade, eles estão sendo cada vez mais aplicados em blockchain, criptomoedas e aplicações DeFi. Além disso, espera-se que continuem a expandir os seus horizontes, uma vez que desempenham um papel integral nos ecossistemas DApp, onde a segurança, a privacidade e a eficiência são críticas.

Quando usadas como uma ferramenta fundamental em criptografia, as Provas de Conhecimento Zero ajudarão a provar as propriedades dos dados e se tornarão o elo perdido interessante e versátil que poderia trazer o blockchain e suas aplicações para o mainstream. Os operadores de Blockchain podem aproveitar os ZKPs de última geração para obter enormes benefícios a preços acessíveis.

A seguir, confira o guia detalhado sobre Zero Trust Security.