O que é Zero-Knowledge Proof (ZKP)?

Luís Pedro Pinto
Chainlink Community
8 min readSep 8, 2022

Tradução de: https://blog.chain.link/what-is-a-zero-knowledge-proof-zkp/

Embora a transparência inerente das blockchains forneça uma vantagem em muitas situações, também há vários casos de uso de contratos inteligentes que exigem privacidade devido a vários motivos comerciais ou legais, como o uso de dados proprietários como entradas para acionar a execução de um contrato inteligente. Uma maneira cada vez mais comum pela qual a privacidade é alcançada em redes públicas de blockchain é por meio de Provas de Conhecimento Zero (ZKPs) — um método para uma parte provar criptograficamente a outra que possui conhecimento sobre uma informação sem revelar a informação subjacente real. No contexto das redes blockchain, a única informação revelada on-chain por um ZKP é que alguma informação oculta é válida e conhecida pelo provador com alto grau de certeza.

Neste artigo, exploramos como as provas de conhecimento zero funcionam para fornecer garantias de privacidade, os principais benefícios que oferecem aos usuários e uma variedade de casos de uso de blockchain que aproveitam ZKPs. Além disso, mostramos como a tecnologia DECO da Chainlink permite a criação de redes oráculo de preservação de privacidade que podem provar que os dados vieram de um servidor web específico de maneira confidencial e compatível com versões anteriores.

Como funciona a Zero-Knowledge Proof

As Provas de Conhecimento Zero foram descritas pela primeira vez em um artigo do MIT de 1985 de Shafi Goldwasser e Silvio Micali chamado “A Complexidade do Conhecimento dos Sistemas de Prova Interativos”. Neste artigo, os autores demonstram que é possível para um provador convencer um verificador de que uma afirmação específica sobre um ponto de dados é verdadeira sem divulgar nenhuma informação adicional sobre os dados. Os ZKPs podem ser interativos — onde um provador convence um verificador específico, mas precisa repetir esse processo para cada verificador individual — ou não interativos — onde um provador gera uma prova que pode ser verificada por qualquer pessoa usando a mesma prova. Além disso, agora existem várias implementações de ZKPs, incluindo zk-SNARKS, zk-STARKS, PLONK e Bulletproofs, cada um com suas próprias vantagens de tamanho de prova, tempo de prova, tempo de verificação e muito mais.

As três características fundamentais que definem um ZKP incluem:

  • Completude: Se uma afirmação for verdadeira, um verificador honesto pode ser convencido por um provador honesto de que possui conhecimento sobre a entrada correta.
  • Solidez: Se uma afirmação é falsa, nenhum provador desonesto pode convencer unilateralmente um verificador honesto de que ele possui conhecimento sobre a entrada correta.
  • Conhecimento zero: Se o estado for verdadeiro, então o verificador não aprende nada mais do provador, exceto que a afirmação é verdadeira.

Em um nível alto, a criação de um ZKP envolve um verificador solicitando ao provador que execute uma série de ações que só podem ser executadas com precisão se o provador conhecer as informações subjacentes. Se o provador está apenas adivinhando o resultado dessas ações, elas acabarão sendo comprovadas erradas pelo teste do verificador com um alto grau de probabilidade.

Conceptual example of how a Zero-Knowledge Proof works to prove knowledge about data without revealing the data to another party

Um exemplo conceitual para entender intuitivamente a comprovação de dados em conhecimento zero é imaginar uma caverna com uma única entrada, mas dois caminhos (caminho A e B) que se conectam em uma porta comum bloqueada por uma senha. Alice quer provar a Bob que ela sabe a senha da porta, mas sem revelar o código para Bob. Para fazer isso, Bob fica do lado de fora da caverna e Alice entra na caverna tomando um dos dois caminhos (sem Bob saber qual caminho foi tomado). Bob então pede a Alice para pegar um dos dois caminhos de volta para a entrada da caverna (escolhido ao acaso). Se Alice originalmente escolheu o caminho A até a porta, mas Bob pede a ela para pegar o caminho B de volta, a única maneira de completar o quebra-cabeça é Alice ter conhecimento da senha da porta trancada. Esse processo pode ser repetido várias vezes para provar que Alice tem conhecimento da senha da porta e não escolheu o caminho certo a seguir inicialmente com um alto grau de probabilidade.

Após a conclusão desse processo, Bob tem um alto grau de confiança de que Alice conhece a senha da porta sem revelar a senha a Bob. Embora seja apenas um exemplo conceitual, os ZKPs implantam essa mesma estratégia, mas usando criptografia para provar o conhecimento sobre um ponto de dados sem revelar o ponto de dados. Com este exemplo de caverna, há uma entrada, um caminho e uma saída. Na computação existem sistemas semelhantes, circuitos, que recebem alguma entrada, passam o sinal de entrada por um caminho de portas elétricas e geram uma saída. As Provas de Conhecimento Zero aproveitam circuitos como esses para provar declarações.

Imagine um circuito computacional que produza um valor em uma curva, para uma determinada entrada. Se um usuário for capaz de fornecer consistentemente a resposta correta para um ponto na curva, pode-se ter certeza de que o usuário possui algum conhecimento sobre a curva, pois torna-se cada vez mais improvável adivinhar a resposta correta a cada rodada de desafio sucessiva. Pode-se pensar no circuito como o caminho que Alice percorre na caverna, se ela é capaz de percorrer o circuito com sua entrada, ela prova que detém algum conhecimento, a “senha” do circuito, com alto grau de probabilidade. Ser capaz de provar o conhecimento sobre um ponto de dados sem revelar nenhuma informação adicional além do conhecimento dos dados fornece vários benefícios importantes, especialmente no contexto das redes blockchain.

Benefícios da Zero-Knowledge Proof

O principal benefício do Zero-Knowledge Proofs é a capacidade de alavancar conjuntos de dados que preservam a privacidade em sistemas transparentes, como redes públicas de blockchain como o Ethereum. Embora as blockchains sejam projetadas para serem altamente transparentes, onde qualquer pessoa executando seu próprio nó de blockchain pode ver e baixar todos os dados armazenados no livro-razão, a adição da tecnologia ZKP permite que usuários e empresas aproveitem seus conjuntos de dados privados na execução de contratos inteligentes sem revelar os dados subjacentes.

Garantir a privacidade nas redes blockchain é crucial para instituições tradicionais, como empresas de cadeia de suprimentos, empresas e bancos que desejam interagir e lançar contratos inteligentes, mas precisam manter seus segredos comerciais confidenciais para se manterem competitivos. Além disso, essas instituições geralmente são obrigadas por lei a proteger as Informações de Identificação Pessoal (PII) de seus clientes e cumprir regulamentações como o Regulamento Geral de Proteção de Dados da União Europeia (GDPR) e a Lei de Portabilidade e Responsabilidade de Seguros de Saúde dos Estados Unidos (HIPAA).

Embora as redes blockchain autorizadas tenham surgido como um meio de preservar a privacidade das transações para as instituições dos olhos do público, os ZKPs permitem que as instituições interajam com segurança com redes blockchain públicas — que geralmente se beneficiam de um grande efeito de rede de usuários em todo o mundo — sem abrir mão do controle de conjuntos de dados confidenciais e proprietários. Como resultado, a tecnologia ZKP está abrindo com sucesso uma ampla gama de casos de uso institucional para redes públicas de blockchain que antes eram inacessíveis, incentivando a inovação e criando uma economia global mais eficiente.

Aplicações Zero-Knowledge Proof

Os ZKPs têm sido usados ​​por blockchains como o Zcash para permitir que os usuários criem transações de preservação de privacidade que mantêm o valor monetário, os endereços do remetente e do destinatário privados. As redes oracle descentralizadas, que fornecem contratos inteligentes com acesso a dados e computação off-chain, também podem aproveitar ZKPs para provar algum fato sobre um ponto de dados off-chain, sem revelar os dados subjacentes on-chain.

Uma implementação de uma solução oracle baseada em Zero-Knowledge Proof em desenvolvimento é o DECO, um protocolo oracle que preserva a privacidade dentro do conjunto de computações seguras off-chain da Chainlink Network. Ao estender HTTPS/TLS, o protocolo mais comum usado para transferir dados pela Internet, o DECO garante que os dados permaneçam privados e à prova de adulteração durante a entrega de várias fontes de dados privadas e premium. O DECO funciona com versões modernas de TLS, não requer hardware confiável e opera de maneira compatível com versões anteriores, não exigindo modificações no lado do servidor. Como resultado, os nós oracle Chainlink habilitados para DECO podem provar fatos sobre dados provenientes de servidores confiáveis ​​sem revelar os dados on-chain, além de provar a origem dos dados desde que a cadeia de custódia TLS seja mantida.

Com ZKPs como DECO, é possível uma ampla gama de casos de uso de contratos inteligentes, incluindo empréstimos com garantias insuficientes, em que os mutuários geram credenciais de alta garantia que atestam sua credibilidade de maneira que preserva a privacidade. Especificamente, os mutuários podem gerar essas credenciais com base em registros de fontes on-line autorizadas, como instituições estabelecidas, sem expor dados potencialmente confidenciais, como nome, localização ou valor exato da pontuação de crédito (apenas que exceda um limite predefinido).

O DECO também pode ser usado para impulsionar a criação de protocolos de identidade descentralizada (DID), como o CanDID, onde os usuários podem obter e gerenciar suas próprias credenciais, em vez de depender de um terceiro centralizado. Essas credenciais são assinadas por entidades chamadas emissores que podem associar de forma autoritativa reivindicações a usuários, como cidadania, ocupação, diplomas universitários e muito mais. O DECO permite que qualquer servidor web existente se torne um emissor e fornece gerenciamento de compartilhamento de chaves para fazer backup de contas, bem como uma forma de preservação de privacidade de resistência Sybil baseada em identificadores exclusivos definitivos, como Números de Previdência Social (SSNs).

Por fim, soluções ZKP como DECO beneficiam não apenas os usuários, mas também permitem que instituições tradicionais e provedores de dados monetizem seus conjuntos de dados proprietários e confidenciais de maneira confidencial. Em vez de postar os dados diretamente on-chain, apenas atestados derivados de ZKPs que comprovem fatos sobre os dados precisam ser publicados. Isso abre novos mercados para provedores de dados, que podem monetizar conjuntos de dados existentes e aumentar sua receita, garantindo zero vazamento de dados. Quando combinado com o Chainlink Mixicles, a privacidade é estendida além dos dados de entrada executando um contrato para incluir também os termos do próprio contrato.

Ao combinar a natureza inerentemente transparente das redes blockchain com o design de preservação da privacidade das provas de conhecimento zero, empresas e instituições se beneficiam do melhor dos dois mundos: elas podem manter seus conjuntos de dados internos privados enquanto ainda os aproveitam nos ambientes de execução confiáveis ​​de sistemas inteligentes. pedidos de contrato.

Leia o whitepaper Chainlink 2.0 para um mergulho mais profundo no papel das redes oracle descentralizadas em sistemas de contrato inteligente que preservam a confidencialidade e inscreva-se no boletim oficial da Chainlink para obter as atualizações mais recentes sobre a Chainlink Network.

--

--