Uma Explicação Detalhada das Provas de Conhecimento Zero (ZKP)

IntermediárioNov 28, 2023
Zero-Knowledge Proof (ZKP) é um método de encriptação que permite que uma parte (conhecida como o provador) prove a outra parte (conhecida como verificador) que uma afirmação é verdadeira, sem revelar nenhuma outra informação. As soluções ZKP populares incluem zk-SNARKs, ZK-Starks, PLONK e Bulletproofs. Este artigo irá apresentar estes quatro tipos de soluções ZKP e analisar as suas vantagens e desvantagens.
Uma Explicação Detalhada das Provas de Conhecimento Zero (ZKP)

Antecedentes

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

Com o tempo, o ZKP evoluiu de um conceito teórico abstrato para protocolos concretos que podem ser integrados em várias aplicações. No início do século XXI, 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 o aumento da blockchain e das criptomoedas, a ZKP demonstrou a sua capacidade de aumentar a privacidade e a segurança, mantendo a eficiência das transações e do processamento de dados.

Hoje, o ZKP não é apenas um tópico quente na investigação criptográfica mas também foi integrado em várias plataformas e aplicações blockchain. Por exemplo, a aplicação do 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 conduz a exploração de interações digitais mais eficientes e seguras. Com os contínuos avanços tecnológicos, o ZKP desempenha um papel cada vez mais crítico na proteção da privacidade pessoal, na garantia da segurança dos dados e no estabelecimento de sistemas digitais confiáveis.

Definição e Princípio de ZKP

A Prova de Conhecimento Zero (ZKP) é um método de encriptação que permite a uma parte (o provador) provar a exatidão de uma declaração a outra parte (o verificador) sem revelar qualquer informação adicional, ou seja, sem revelar qualquer conhecimento do qual depende a exatidão da declaração. Este processo não só protege a privacidade do provador mas também garante que o verificador não pode replicar o processo de prova ou usá-lo para obter qualquer informação adicional.

Diagrama Conceptual de Provas de Conhecimento Zero (Fonte: ChainLink)

Os princípios fundamentais 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 pode sempre passar no teste do verificador.
  • Solidez: Se uma declaração for falsa, qualquer provador enganoso terá apenas uma poucas hipóteses de induzir o verificador a acreditar que a afirmação é verdadeira.
  • Conhecimento zero: Se a afirmação for verdadeira, o verificador não aprende nenhuma informação adicional além do fato de que a afirmação está correta. Por outras palavras, o processo de verificação não revela nenhuma informação que possa ser usada para construir a prova.

O princípio do ZKP é muitas vezes compreendido através de exemplos simples: Se preciso provar à pessoa A que tenho o número de telefone da pessoa B, não preciso revelar diretamente o número do B a A. Em vez disso, posso provar isso ligando para o número de B. Uma vez que a chamada se conecta, demonstra que eu realmente possuo o número B, sem divulgar nenhuma informação sobre o próprio número.

Em aplicações práticas, o ZKP requer normalmente 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 fatorização ou logaritmos discretos. Com o avanço da criptografia, surgiram várias implementações do ZKP, como o zk-SNARKs e o zk-Starks, oferecendo proteção de privacidade eficaz em diferentes contextos, especialmente nos campos de blockchain e criptomoedas.

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

Testemunha: Na prova de conhecimento zero, o provador quer demonstrar conhecimento de algumas informações ocultas. Esta informação secreta funciona como a “testemunha” da prova. O provador, com base no seu conhecimento da testemunha, estabelece um conjunto de perguntas que só alguém com conhecimento da informação pode responder. Assim, o provador selecciona aleatoriamente uma pergunta para iniciar a prova, calcula a resposta e envia-a ao verificador.

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

Resposta: O provador recebe a pergunta, calcula a resposta e envia-a 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 está apenas a adivinhar cegamente corretamente por acaso, o verificador seleciona outra pergunta para consulta. Ao repetir este processo várias vezes, a probabilidade de o provador fabricar a verdade reduz muito até que o verificador esteja satisfeito.

No exemplo de chamada telefónica acima mencionado, “eu” sou a testemunha relutante em divulgar informações, enquanto A é o verificador, e o desafio colocado é “Prove que 'eu' possuo o número B.” O processo de resposta envolve “eu” ligar uma chamada ao número B para provar que realmente o tenho.

Porque é que o ZKP é necessário?

Como 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 às 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.

Em comparação com outras tecnologias de encriptação, 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 da informação. Por exemplo, pode ser usado para provar que uma pessoa cumpre os requisitos de idade sem revelar a idade real ou a data de nascimento.
  • Segurança reforçada: Uma vez que o ZKP não exige a revelação de informações confidenciais, reduz o risco de fugas de dados. Mesmo que ocorra interceção durante o processo de prova, não são divulgados dados substanciais.
  • Fraude reduzida: Nas transações financeiras, o ZKP pode ser utilizado 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 o ZK-SNARKS, são muito rápidos de criar e verificar, o que é benéfico para sistemas que precisam de processar um grande número de transações ou operações de verificação.
  • Interoperabilidade: O ZKP fornece uma estrutura comum para a verificação entre diferentes sistemas e domínios, permitindo que a informação seja verificada e partilhada com segurança entre vários sistemas.
  • Escalabilidade: Com a evolução da tecnologia de computação, a implementação do ZKP está a tornar-se mais eficiente e escalável, o que significa que pode ser implementado 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.
  • Controlo do Utilizador: O ZKP aumenta o controlo dos utilizadores sobre os seus dados porque podem escolher a quantidade de informação a divulgar.
  • Descentralização: Em blockchain e tecnologias distribuídas, o ZKP oferece uma poderosa ferramenta de privacidade para a descentralização, permitindo que os utilizadores transacionem 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, tais como zk-SNARKS, zk-Starks, PLONK e Bulletproofs. Cada tipo tem as suas vantagens e desvantagens em termos de tamanho da prova, tempo de prova e tempo de verificação. Este artigo centra-se na introdução dos quatro tipos mais utilizados em cenários de aplicação.

zk-snarks

ZK-SNARKS, que representa “Zero-Knowledge Succinct Non-Interactive Argumento do Conhecimento”, são ferramentas criptográficas utilizadas para provar que alguém conhece uma informação sem revelar nenhuma das informações em si. No zk-SNARKS, “conhecimento zero” significa que o provador pode provar que uma afirmação é verdadeira sem fornecer nenhuma informação que não seja a sua exatidão. “Succinidade” refere-se ao pequeno tamanho da prova e à velocidade do processo de verificação. “Não interativo” significa uma vez que uma prova é gerada, pode ser verificada por qualquer pessoa sem interação adicional entre o provador e o verificador. Os principais componentes do zk-SNARKs incluem:

  • Configuração Confiável: Durante a inicialização do sistema, é necessário gerar um par de chaves públicas/privadas (parâmetros). Este processo deve ser executado por uma parte de confiança, uma vez que 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 esta informação secreta e os parâmetros públicos para construir uma prova que mostre suficientemente que sabem o segredo sem revelar quaisquer detalhes sobre ele.
  • Processo de Verificação: Assim que o verificador receber a prova, pode usar os parâmetros públicos para verificar a sua exatidão. Se o provador tiver construído uma prova correta, o processo de verificação produzirá “sim”, caso contrário “não”.

Os zk-SNARKs são utilizados em vários cenários de preservação da privacidade, tais como criptomoedas com transações anónimas, sistemas de votação seguros, autenticação e partilha de dados que preservam a privacidade e tecnologias de escalabilidade blockchain.

zk-Starks

ZK-Starks, ou “Argumentos de Conhecimento Transparentes Escaláveis com Zero Knowledge”, permitem que uma parte (o provador) prove a outra (o verificador) que conhece certas informações sem revelar a própria informação. Ao contrário do zk-SNARKs, os zk-Starks não exigem um processo de configuração fidedigno. Isto significa que não dependem da confidencialidade de certas informações privadas, uma funcionalidade muitas vezes considerada crucial para a segurança, uma vez que a configuração fidedigna pode ser uma vulnerabilidade sistémica.

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

PLONK

PLONK, não uma sigla, refere-se aos sobrenomes dos seus criadores. Foi concebido para fornecer uma solução ZKP universal e eficiente, especialmente em aplicações blockchain, tais como contratos inteligentes e transações protegidas pela 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. Emprega um algoritmo especial - um esquema de compromisso polinomial - para criar provas, permitindo que os provadores provem eficientemente que têm os resultados de cálculo corretos para um conjunto de dados.

Uma característica chave do PLONK é a sua universalidade. Uma vez que os parâmetros são definidos para uma tarefa computacional específica (através de uma configuração fidedigna única), podem ser reutilizados várias vezes para criar novas provas, sem a necessidade de novas configurações de cada vez. Isto torna o PLONK altamente eficiente na criação e verificação de provas e é muitas vezes concebido para suportar várias tarefas computacionais em blockchain e outros sistemas distribuídos.

À prova de balas

Bulletproofs, uma solução ZKP recém-introduzida, não requer uma configuração confiável e são especificamente concebidos para a construção de provas de alcance e certos tipos de provas aritméticas. Proposto por Benedikt Bunz, Jonathan Bootle, Dan Boneh e outros em 2017, os Bulletproofs operam em construções matemáticas complexas como a encriptação homomórfica e a criptografia de curva elíptica. Aproveitam 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 o seu valor exato. Especialmente no domínio da criptomoeda, isso pode ser usado para provar que os valores das transações estão dentro de um intervalo legal sem expor os valores reais das transações.

Devido à sua característica à prova de gama, os Bulletproofs são amplamente utilizados nos campos de criptomoeda e blockchain, particularmente em moedas de privacidade como o Monero, para ocultar os valores das transações enquanto verifica a legitimidade das transações. Além disso, podem ser empregados noutras aplicações onde é necessária a privacidade numérica.

Estudo de caso

Vamos entender melhor estas quatro tecnologias diferentes de Prova de Conhecimento Zero (ZKP) — ZK-SNARKS, ZK-Starks, PLONK e Bulletproof — através de uma analogia do mapa do tesouro.

Imagine que tem um mapa do tesouro que leva à localização exata de um tesouro enterrado. 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: Cria um quebra-cabeças complexo do mapa do tesouro. Seleciona uma pequena peça chave deste puzzle (uma prova) e mostra-a à outra parte, suficiente para convencê-la de que sabe como montar o puzzle completo, ou seja, a localização do tesouro, sem revelar todo o puzzle. No entanto, para fazer isso, precisa de marcadores especiais de uma impressora de confiança para provar que a sua peça do puzzle é genuína.

zk-Starks: Mostra uma parte do mapa do tesouro à outra parte, dizendo-lhes que podem usar uma lupa especial (um algoritmo de verificação) para verificar aleatoriamente os detalhes do mapa para verificar se realmente aponta para o tesouro, sem a necessidade de saber a localização exata do tesouro. Esta lupa é tão poderosa que nem as tecnologias futuras (computadores quânticos) podem decifrar o segredo do seu mapa do tesouro.

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

Bulletproof: Decida provar que sabe o alcance aproximado da localização do tesouro sem revelar a sua posição exata. Fornece uma série de soluções de problemas matemáticos que demonstram o alcance da localização do tesouro. O seu método não requer marcadores especiais ou técnicas de impressão, o que significa que não há exigência inicial de confiança.

Nesta analogia:

  • Os zk-SNARKS exigem confiança na fonte da sua peça do puzzle (uma configuração fidedigna) 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 a longo prazo e ameaças futuras.
  • O PLONK oferece uma configuração única, método de verificação eficiente de uso múltiplo, o que significa que precisa fazer um esforço uma vez para provar várias vezes que sabe a localização do tesouro.
  • As provas de balas permitem-lhe provar informações sobre a gama de localização do tesouro sem qualquer exigência inicial de confiança, embora a eficiência de gerar e verificar provas possa não corresponder às duas anteriores.

Cada método tem as suas compensações 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 de perceber os critérios para avaliar os 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
  • Utilização da memória: A quantidade de memória necessária durante os processos de geração e verificação da prova
  • Universalidade: Se o sistema de prova é aplicável a vários tipos de cálculos
  • Configuração fidedigna: Se é necessária uma fase inicial de configuração fidedigna
  • Segurança pós-quântica: Se resiste a futuros ataques de computadores quânticos

Agora, vamos comparar zk-SNARKs, ZK-Starks, PLONK e Bulletproofs com base nestes indicadores e discutir os 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, adequado para cenários que necessitam de respostas rápidas
  • Universalidade: Aplicável a vários cálculos complexos

Cons

  • Tempo de prova e utilização de memória: A geração de provas pode ser demorada e de memória intensiva
  • Configuração fidedigna: Requer uma fase inicial de configuração fidedigna; se for comprometida, 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

  • Sem configuração fidedigna: Elimina a necessidade de uma configuração fidedigna, reforçando a segurança do sistema
  • Segurança pós-quântica: Resiste a ataques de computadores quânticos
  • Tamanho da prova: Embora maior do que zk-SNARKS, ainda é gerível sob certas condições

Cons

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

PLONK

Prós

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

Cons

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

À prova de balas

Prós

  • Sem configuração fidedigna: Não há necessidade de uma configuração fidedigna, 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

Cons

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

Casos de aplicação de ZKP na Web3

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

Escalonamento de Blockchain - Ethereum Layer2

Os zk-Rollups são uma solução de Camada 2 que empacota 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. O ZK-Sync Era e o 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 de Troca

A prova de reserva cambial refere-se à verificação de saldos detidos por bolsas de criptomoedas ou outras instituições financeiras, garantindo que os ativos registados correspondam aos ativos reais detidos. Inicialmente, as bolsas usavam árvores Merkle e firmas de auditoria terceirizadas para esta verificação, mas este processo dependia de terceiros e poderia vazar dados privados do utilizador, como saldos de contas. Trocas como o Gate.io estão agora a utilizar a tecnologia ZK-SNARKS para provas de reserva, encriptar dados do utilizador e obter números de activos do utilizador através de circuitos zk-SNARK, emitindo assim relatórios completos de prova de reserva.

Conclusão

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

作者: Wayne
譯者: Piper
文章審校: Piccolo、Edward、Elisa、Ashley He、Joyce
* 投資有風險,入市須謹慎。本文不作為Gate.io提供的投資理財建議或其他任何類型的建議。
* 在未提及Gate.io的情況下,複製、傳播或抄襲本文將違反《版權法》,Gate.io有權追究其法律責任。
即刻開始交易
註冊並交易即可獲得
$100
和價值
$5500
理財體驗金獎勵!
立即註冊