Uma explicação detalhada das provas de conhecimento zero (ZKP)

intermediárioNov 28, 2023
Prova de Conhecimento Zero (ZKP) é um método de criptografia que permite que uma parte (conhecida como provador) prove a outra parte (conhecida como verificador) que uma afirmação é verdadeira, sem revelar qualquer outra informação. As soluções ZKP populares incluem zk-SNARKS, zk-STARKS, PLONK e Bulletproofs. Este artigo apresentará esses quatro tipos de soluções ZKP e analisará suas vantagens e desvantagens.
Uma explicação detalhada das provas de conhecimento zero (ZKP)

Plano de fundo

Zero-Knowledge Proof (ZKP) é uma tecnologia criptográfica introduzida pela primeira vez em um artigo intitulado “The Knowledge Complexity Of Interactive Proof Systems” no início dos anos 1980 por S.Goldwasser, S.Micali e C.Rackoff. Originalmente concebido como um modelo teórico, pretendia enfrentar o desafio de verificar afirmações matemáticas sem revelar qualquer evidência. Este conceito atraiu ampla atenção no mundo acadêmico por desafiar os limites das técnicas tradicionais de criptografia e oferecer uma nova abordagem para lidar com informações confidenciais.

Com o tempo, o ZKP evoluiu de um conceito teórico abstrato para protocolos concretos que podem ser integrados em diversas aplicações. No início do século 21, com o crescimento explosivo da internet e da comunicação digital, o potencial do ZKP começou a ser explorado no mundo real. Particularmente com a ascensão do blockchain e das criptomoedas, a ZKP demonstrou sua capacidade de aumentar a privacidade e a segurança, mantendo ao mesmo tempo a eficiência das transações e do processamento de dados.

Hoje, o ZKP não é apenas um tema importante na pesquisa criptográfica, mas também foi integrado em múltiplas plataformas e aplicações blockchain. Por exemplo, o aplicativo zk-SNARKs no Ethereum Layer2 oferece transações anônimas sem revelar detalhes da transação. Esta transição da teoria para a aplicação prática não só prova o valor prático do ZKP, mas também impulsiona a exploração de interações digitais mais eficientes e seguras. Com os avanços tecnológicos contínuos, o ZKP desempenha um papel cada vez mais crítico na proteção da privacidade pessoal, garantindo a segurança dos dados e estabelecendo sistemas digitais confiáveis.

Definição e Princípio do ZKP

Prova de Conhecimento Zero (ZKP) é um método de criptografia que permite que uma parte (o provador) prove a correção de uma declaração para outra parte (o verificador) sem revelar qualquer informação adicional, ou seja, sem divulgar qualquer conhecimento sobre o qual a correção de a afirmação depende. Este processo não só protege a privacidade do provador, mas também garante que o verificador não possa replicar o processo de prova ou utilizá-lo para obter qualquer informação adicional.

Diagrama conceitual de provas de conhecimento zero (fonte: ChainLink)

Os princípios básicos das Provas de Conhecimento Zero (ZKP) podem ser definidos pelos três atributos a seguir:

  • Completude: Se uma afirmação for verdadeira, um provador honesto sempre poderá passar no teste do verificador.
  • Solidez: Se uma afirmação for falsa, qualquer provador enganoso terá apenas uma pequena chance de induzir o verificador a acreditar que a afirmação é verdadeira.
  • Conhecimento Zero: Se a afirmação for verdadeira, o verificador não obtém nenhuma informação adicional além do fato de que a afirmação está correta. Em outras palavras, o processo de verificação não revela nenhuma informação que possa ser utilizada para construir a prova.

O princípio do ZKP é frequentemente compreendido através de exemplos simples: se eu precisar provar à pessoa A que tenho o número de telefone da pessoa B, não preciso revelar diretamente o número de B para A. Em vez disso, posso provar isso ligando para o número de B. . Assim que a chamada for completada, ela demonstra que realmente possuo o número de B, sem revelar qualquer informação sobre o número em si.

Em aplicações práticas, o ZKP geralmente requer construções matemáticas complexas, como equações polinomiais, curvas elípticas ou outros desafios matemáticos. A segurança destas construções baseia-se na dificuldade computacional de problemas como fatoração ou logaritmos discretos. Com o avanço da criptografia, surgiram diversas implementações de ZKP, como zk-SNARKs e zk-STARKs, oferecendo proteção eficaz à privacidade em diferentes contextos, especialmente nas áreas de blockchain e criptomoedas.

A forma básica de prova de conhecimento zero consiste em três elementos: testemunha, desafio e resposta.

Testemunha: Na prova de conhecimento zero, o provador quer demonstrar conhecimento de alguma informação oculta. Esta informação secreta funciona como “testemunha” da prova. O provador, com base no conhecimento da testemunha, formula um conjunto de perguntas que somente alguém com conhecimento da informação pode responder. Assim, o provador seleciona aleatoriamente uma questão para iniciar a prova, calcula a resposta e a envia ao verificador.

Desafio: O verificador escolhe aleatoriamente outra pergunta do conjunto e pede ao provador que a responda.

Resposta: O provador recebe a pergunta, calcula a resposta e a envia de volta ao verificador. A resposta do provador permite ao verificador verificar se o provador realmente tem acesso à testemunha. Para garantir que o provador não esteja apenas adivinhando cegamente e por acaso, o verificador seleciona outra pergunta para investigação. Ao repetir esse processo várias vezes, a probabilidade de o provador fabricar a verdade diminui bastante até que o verificador fique satisfeito.

No exemplo do telefonema acima mencionado, “Eu” sou a testemunha que não deseja divulgar informações, enquanto A é o verificador, e o desafio colocado é “Prove que 'eu' possuo o número de B”. O processo de resposta envolve “eu” ligando para o número de B para provar que realmente o tenho.

Por que o ZKP é necessário?

Conforme discutido anteriormente, as Provas de Conhecimento Zero (ZKP) oferecem inerentemente vantagens significativas no domínio da proteção da privacidade. Na era atual de sobrecarga de informações, os dados pessoais são frequentemente armazenados em plataformas de terceiros, aumentando o risco de violações de dados. Além disso, devido a barreiras técnicas e ao atraso nas sanções legais, a segurança da informação depende em grande parte de restrições éticas, tornando difícil para os utilizadores controlarem verdadeiramente as suas informações privadas. O advento da tecnologia ZKP fornece uma solução que protege a privacidade e aumenta a eficiência e a segurança da verificação.

Comparado a outras tecnologias de criptografia, o ZKP tem múltiplas vantagens:

  • Proteção de Privacidade: O ZKP permite que indivíduos e instituições provem a veracidade de certas informações sem revelar o conteúdo real das informações. Por exemplo, pode ser usado para provar que uma pessoa atende aos requisitos de idade sem revelar a idade real ou a data de nascimento.
  • Segurança aprimorada: como o ZKP não exige a revelação de informações confidenciais, ele reduz o risco de vazamento de dados. Mesmo que a interceptação ocorra durante o processo de prova, nenhum dado substancial é divulgado.
  • Fraude reduzida: Em transações financeiras, o ZKP pode ser usado para verificar a legitimidade de uma transação sem expor detalhes específicos, reduzindo assim as oportunidades de fraude.
  • Eficiência: Alguns tipos de ZKP, como zk-SNARKs, são muito rápidos de criar e verificar, o que é benéfico para sistemas que precisam processar um grande número de transações ou operações de verificação.
  • Interoperabilidade: O ZKP fornece uma estrutura comum para verificação entre diferentes sistemas e domínios, permitindo que as informações sejam verificadas e compartilhadas com segurança entre vários sistemas.
  • Escalabilidade: Com a evolução da tecnologia computacional, a implementação do ZKP está se tornando mais eficiente e escalável, o que significa que pode ser implantado em sistemas de maior escala.
  • Conformidade: No ambiente regulatório atual que exige proteção da privacidade do consumidor, a ZKP pode ajudar as empresas a verificar e processar dados sem violar as leis de privacidade.
  • Controle do usuário: O ZKP aumenta o controle dos usuários sobre seus dados porque eles podem escolher a quantidade de informações a serem divulgadas.
  • Descentralização: Em blockchain e tecnologias distribuídas, o ZKP oferece uma poderosa ferramenta de privacidade para descentralização, permitindo que os usuários realizem transações e interajam sem depender de autoridades centrais.

Seja no domínio tradicional da Web 2.0 ou no domínio emergente da Web 3.0, as perspectivas de aplicação do ZKP são extensas.

Tipos de Provas de Conhecimento Zero (ZKPs)

Existem várias implementações de provas de conhecimento zero, como zk-SNARKs, zk-STARKs, PLONK e Bulletproofs. Cada tipo tem suas vantagens e desvantagens em termos de tamanho da prova, tempo de prova e tempo de verificação. Este artigo se concentra na introdução dos quatro tipos mais comumente usados em cenários de aplicativos.

zk-SNARKs

zk-SNARKs, que significa “Argumento de conhecimento sucinto e não interativo de conhecimento zero”, são ferramentas criptográficas usadas para provar que alguém conhece uma informação sem revelar nenhuma informação em si. Em zk-SNARKs, “conhecimento zero” significa que o provador pode provar que uma afirmação é verdadeira sem fornecer qualquer informação além de sua correção. “Sucinta” refere-se ao pequeno tamanho da prova e à velocidade do processo de verificação. “Não interativo” significa que uma vez gerada uma prova, ela pode ser verificada por qualquer pessoa sem interação adicional entre o provador e o verificador. Os principais componentes dos zk-SNARKs incluem:

  • Configuração confiável: Durante a inicialização do sistema, um par de chaves (parâmetros) públicas/privadas precisa ser gerado. Este processo deve ser executado por uma parte confiável, pois a segurança do sistema pode ser comprometida se a chave privada vazar.
  • Geração de Prova: O provador conhece uma informação secreta, mas não deseja revelá-la ao verificador. Eles usam essas informações secretas e os parâmetros públicos para construir uma prova que mostre suficientemente que conhecem o segredo, sem revelar quaisquer detalhes sobre ele.
  • Processo de verificação: Assim que o verificador receber a prova, ele poderá utilizar os parâmetros públicos para verificar sua correção. Se o provador construiu uma prova correta, o processo de verificação produzirá “sim”, caso contrário, “não”.

Os zk-SNARKs são usados em vários cenários de preservação de privacidade, como criptomoedas com transações anônimas, sistemas de votação seguros, autenticação com preservação de privacidade e compartilhamento de dados e tecnologias de escalabilidade de blockchain.

zk-STARKs

zk-STARKs, ou “Argumentos de Conhecimento Transparentes Escaláveis de Conhecimento Zero”, permitem que uma parte (o provador) prove a outra (o verificador) que conhece certas informações sem revelar a informação em si. Ao contrário dos zk-SNARKs, os zk-STARKs não requerem um processo de configuração confiável. Isto significa que não dependem da confidencialidade de determinadas informações privadas, uma característica muitas vezes considerada crucial para a segurança, uma vez que a configuração confiável pode ser uma vulnerabilidade sistémica.

Os zk-STARKs funcionam com base em conceitos de vários campos matemáticos, incluindo funções hash, cálculos polinomiais e teoria de correção de erros. Eles utilizam uma construção conhecida como “argumento transparente escalável de conhecimento zero”, permitindo a geração de provas sem uma configuração confiável. As aplicações potenciais dos zk-STARKs são semelhantes às dos zk-SNARKs, mas devido à sua escalabilidade e transparência, são particularmente adequados para aplicações de grande escala, incluindo criptomoedas que preservam a privacidade, tecnologias de escalabilidade de blockchain e verificação segura em computação em nuvem. .

PLONK

PLONK, não uma sigla, refere-se aos sobrenomes de seus criadores. Ele foi projetado para fornecer uma solução ZKP universal e eficiente, especialmente em aplicações blockchain, como contratos inteligentes e transações protegidas por privacidade. O núcleo do PLONK é o uso de uma técnica de “ocultação homomórfica”, permitindo operações aritméticas em dados sem revelar os dados originais. Ele emprega um algoritmo especial – um esquema de comprometimento polinomial – para criar provas, permitindo que os provadores provem com eficiência que possuem os resultados de cálculo corretos para um conjunto de dados.

Uma característica fundamental do PLONK é a sua universalidade. Depois que os parâmetros são definidos para uma tarefa computacional específica (por meio de uma configuração confiável única), eles podem ser reutilizados diversas vezes para criar novas provas, sem a necessidade de novas configurações a cada vez. Isso torna o PLONK altamente eficiente na criação e verificação de provas e geralmente é projetado para suportar diversas tarefas computacionais em blockchain e outros sistemas distribuídos.

À prova de balas

Bulletproofs, uma solução ZKP recentemente introduzida, não requer uma configuração confiável e é projetada especificamente para construir provas de intervalo e certos tipos de provas aritméticas. Proposto por Benedikt Bunz, Jonathan Bootle, Dan Boneh e outros em 2017, o Bulletproofs opera em construções matemáticas complexas, como criptografia homomórfica e criptografia de curva elíptica. Eles utilizam uma série de técnicas matemáticas para permitir que os provadores criem uma prova de alcance eficaz para um número sem revelar seu valor exato. Especialmente no domínio das criptomoedas, isso pode ser usado para provar que os valores das transações estão dentro de uma faixa legal, sem expor os valores reais das transações.

Devido ao seu recurso à prova de alcance, os Bulletproofs são amplamente utilizados nos campos de criptomoedas e blockchain, especialmente em moedas de privacidade como Monero, para ocultar valores de transações e, ao mesmo tempo, verificar a legitimidade das transações. Além disso, eles podem ser empregados em outras aplicações onde a privacidade numérica é necessária.

Estudo de caso

Vamos entender melhor essas quatro tecnologias diferentes de Prova de Conhecimento Zero (ZKP) – zk-SNARKs, zk-STARKs, PLONK e Bulletproofs – por meio de uma analogia com o mapa do tesouro.

Imagine que você tem um mapa do tesouro que leva à localização exata de um tesouro enterrado. Você quer provar a alguém que sabe onde está o tesouro sem revelar o conteúdo do mapa ou a localização real do tesouro.

zk-SNARKs: Você cria um quebra-cabeça complexo do mapa do tesouro. Você seleciona uma pequena peça-chave deste quebra-cabeça (uma prova) e mostra-a à outra parte, o suficiente para convencê-la de que você sabe como montar o quebra-cabeça completo, ou seja, a localização do tesouro, sem revelar todo o quebra-cabeça. No entanto, para fazer isso, você precisa de marcadores especiais de uma impressora confiável para provar que a peça do quebra-cabeça é genuína.

zk-STARKs: Você mostra uma parte do mapa do tesouro para a outra parte, dizendo que eles podem usar uma lupa especial (um algoritmo de verificação) para verificar aleatoriamente os detalhes do mapa para verificar se ele realmente aponta para o tesouro, sem precisar saber a localização exata do tesouro. Esta lupa é tão poderosa que mesmo as tecnologias futuras (computadores quânticos) não conseguem desvendar o segredo do seu mapa do tesouro.

PLONK: Desta vez, você cria um conjunto de enigmas, cada um apontando para a localização do tesouro. Você apresenta um método universal de verificação de soluções para esses enigmas (uma configuração universal) para a outra parte, suficiente para que eles acreditem que você sabe todas as respostas sem ter que resolver cada enigma individualmente.

À prova de balas: Você decide provar que conhece a localização aproximada do tesouro sem revelar sua posição exata. Você fornece uma série de soluções de problemas matemáticos que demonstram a extensão da localização do tesouro. Seu método não requer marcadores especiais ou técnicas de impressão, o que significa que não há necessidade de confiança inicial.

Nesta analogia:

  • Os zk-SNARKs exigem confiança na origem da peça do quebra-cabeça (uma configuração confiável), mas oferecem uma prova muito pequena e rápida de verificar.
  • Os zk-STARKs não precisam de confiança em nenhuma fonte, tornando as provas mais robustas e adequadas para segurança de longo prazo e ameaças futuras.
  • PLONK oferece um método de verificação eficiente de configuração única e uso múltiplo, o que significa que você precisa fazer um esforço uma vez para provar várias vezes que sabe a localização do tesouro.
  • Bulletproofs permitem que você comprove informações sobre a localização do tesouro sem qualquer requisito de confiança inicial, embora a eficiência de geração e verificação de provas possa não corresponder às duas anteriores.

Cada método tem suas vantagens em aplicações práticas, e a escolha depende do cenário específico da aplicação e das necessidades de segurança.

Comparação simples de diferentes esquemas ZKP

Antes de comparar, precisamos entender os critérios de avaliação dos ZKPs:

  • Tamanho da prova: A quantidade de dados na prova, afetando os custos de armazenamento e transmissão
  • Tempo de verificação: O tempo necessário para verificar uma prova
  • Tempo de prova: O tempo necessário para gerar uma prova
  • Uso de memória: A quantidade de memória necessária durante os processos de geração e verificação de provas
  • Universalidade: Se o sistema de provas é aplicável a vários tipos de cálculos
  • Configuração confiável: se é necessária uma fase inicial de configuração confiável
  • Segurança pós-quântica: se ela resiste a futuros ataques de computadores quânticos

Agora, vamos comparar zk-SNARKs, zk-STARKs, PLONK e Bulletproofs com base nesses indicadores e discutir seus prós e contras.

zk-SNARKs

Prós

  • Tamanho da prova: Muito pequeno, tornando-os adequados para ambientes com largura de banda limitada
  • Tempo de verificação: Verificação rápida, adequada para cenários que necessitam de respostas rápidas
  • Universalidade: Aplicável a vários cálculos complexos

Contras

  • Tempo de prova e uso de memória: a geração de provas pode ser demorada e consumir muita memória
  • Configuração confiável: requer uma fase inicial de configuração confiável; se comprometido, a segurança do sistema está em risco
  • Segurança pós-quântica: a maioria das construções não é segura pós-quântica

zk-STARKs

Prós

  • Nenhuma configuração confiável: elimina a necessidade de uma configuração confiável, melhorando a segurança do sistema
  • Segurança pós-quântica: resiste a ataques de computadores quânticos
  • Tamanho da prova: Embora maior que zk-SNARKs, ainda é gerenciável sob certas condições

Contras

  • Tamanho da prova: Maior que zk-SNARKs, reduzindo potencialmente a eficiência de armazenamento e transmissão
  • Tempo de prova: Possivelmente mais lento que zk-SNARKs, especialmente em cálculos complexos

PLONK

Prós

  • Universalidade: Um conjunto de parâmetros se aplica a diversas provas diferentes, reduzindo o trabalho redundante
  • Tamanho da prova: relativamente pequeno, embora maior que zk-SNARKs
  • Capacidade de atualização: Fácil de atualizar e manter

Contras

  • Configuração confiável: embora menos rigorosa que a do zk-SNARKs, uma configuração ainda é necessária
  • Segurança pós-quântica: Da mesma forma, a maioria das construções não são seguras pós-quânticas

À prova de balas

Prós

  • Sem configuração confiável: não há necessidade de uma configuração confiável, reduzindo os riscos de segurança
  • Tamanho da prova: O tamanho da prova cresce lentamente com a complexidade da declaração
  • Tempo de verificação: Rápido para provas de alcance

Contras

  • Tempo de prova: a geração de provas pode levar mais tempo
  • Tamanho da prova: Embora menor, ainda maior que zk-SNARKs em provas maiores
  • Segurança pós-quântica: Não projetada especificamente para um ambiente pós-quântico

Casos de aplicação de ZKP em Web3

Na Web3, existem muitos casos de aplicação de ZKP, e selecionamos dois casos típicos para estudo.

Dimensionamento de Blockchain - Ethereum Layer2

zk-Rollups são uma solução de Camada 2 que agrupa centenas ou milhares de transações fora da cadeia e gera uma prova zk-SNARK. Esta prova, juntamente com os dados da transação, é submetida à cadeia principal do Ethereum. Permite a validação de transações sem que a cadeia principal processe cada transação, reduzindo assim as taxas e aumentando o rendimento. zk-Sync Era e Starknet adotaram a tecnologia zk-rollup, e a Polygon introduziu recentemente o Polygon zk-EVM usando zk-rollups.

Uma demonstração de aplicação de zk-SNARKs na Camada 2 (Fonte: Simon Brown)

Privacidade de dados - Prova de reserva cambial

A prova de reserva cambial refere-se à verificação de saldos mantidos por bolsas de criptomoedas ou outras instituições financeiras, garantindo que os ativos registrados correspondam aos ativos reais mantidos. Inicialmente, as bolsas usavam árvores Merkle e empresas de auditoria terceirizadas para essa verificação, mas esse processo dependia de terceiros e poderia vazar dados privados de usuários, como saldos de contas. Exchanges como a Gate.io agora estão utilizando a tecnologia zk-SNARKs para provas de reserva, criptografando dados do usuário e obtendo números de ativos do usuário por meio de circuitos zk-SNARK, emitindo assim relatórios completos de prova de reserva.

Conclusão

As diversas soluções de tecnologia à prova de conhecimento zero destacam seu poderoso potencial na Web3. Da proteção da privacidade de dados ao dimensionamento do blockchain, o ZKP é importante para a construção de uma infraestrutura Web3 segura e eficiente. Embora diferentes abordagens tenham as suas vantagens e limitações, elas apontam coletivamente para um futuro digital mais confiável e protegido pela privacidade. À medida que a tecnologia avança, os desafios de otimização do desempenho e da segurança com o ZKP serão gradualmente superados, indicando o seu papel cada vez mais significativo no mundo digital.

Autor: Wayne
Tradutor: Piper
Revisores: Piccolo、Edward、Elisa、Ashley He、Joyce
* As informações não pretendem ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecida ou endossada pela Gate.io.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem referência à Gate.io. A contravenção é uma violação da Lei de Direitos Autorais e pode estar sujeita a ação legal.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!
Criar conta