A prova de conhecimento zero (ZKP) é uma tecnologia criptográfica proposta pela primeira vez por S. Goldwasser, S. Micali e C. Rackoff no início dos anos 1980 em um artigo intitulado The Knowledge Complexity Of Interactive Proof Systems. Neste artigo, foi conceituado como um modelo teórico para resolver o problema de verificação de afirmações matemáticas sem revelar as evidências. Este conceito ganhou atenção significativa na comunidade acadêmica, pois desafiou os limites das técnicas tradicionais de criptografia e forneceu 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. Em 2010, Groth publicou um artigo intitulado Short Pairing-based Non-interactive Zero-Knowledge Arguments, que se tornou um trabalho seminal no desenvolvimento do zk-SNARK, uma solução importante no ZKP. A aplicação prática mais significativa do ZKP é o sistema de prova de conhecimento zero usado pela Z-cash em 2015, que alcançou proteção de privacidade para transações e valores. Posteriormente, o zk-SNARK combinou-se com contratos inteligentes, levando a uma gama mais ampla de aplicações.
Os princípios que o ZKP tradicional precisa seguir são os seguintes:
O princípio do ZKP pode ser entendido através de um exemplo simples: se eu precisar provar a A que tenho o número de telefone de B, não preciso informar diretamente o número de telefone de A B. Em vez disso, posso discar diretamente o número de telefone de B e, assim que a chamada for completada, posso provar que realmente tenho o número de telefone de B. Este processo não divulga as informações do número de B.
E o zk-SNARK atualiza ainda mais nesta base, com as seguintes características:
No artigo de Groth, ele propôs um método não interativo de prova de conhecimento zero baseado em pares que transforma um problema computacional em um Programa Aritmético Quadrático (QAP) e, em seguida, constrói uma prova eficiente usando criptografia de curva elíptica e funções hash. Projetos posteriores do zk-SNARK geralmente envolvem quatro etapas:
Para ajudar a entender, vamos considerar um exemplo simples: suponha que você tenha um mapa do tesouro que possa guiá-lo até a localização exata do tesouro enterrado. Você quer provar a alguém que conhece a localização do tesouro sem revelar o conteúdo do mapa ou a localização real do tesouro. Se você usar a tecnologia zk-SNARK, precisará criar um quebra-cabeça complexo do mapa do tesouro. Você seleciona uma pequena peça do quebra-cabeça (uma prova) e mostra para a pessoa, o que a convence de que você sabe como o quebra-cabeça completo se encaixa, ou seja, a localização do tesouro, sem ver o quebra-cabeça inteiro. No entanto, para conseguir isso, você precisará obter marcações especiais de uma gráfica confiável, que sirvam como prova de que a peça do quebra-cabeça é genuína.
A abordagem tradicional para provas de conhecimento zero envolve métodos de prova interativos, onde um provador pergunta repetidamente a um verificador “sim ou não?” perguntas até que uma resposta correta seja alcançada. Este processo é ineficiente. No entanto, o zk-SNARK elimina a necessidade de interações repetidas ao obter um CRS de um terceiro confiável. Todos os provadores podem comparar diretamente o CRS para determinar a veracidade. Isso melhora muito a eficiência das provas de conhecimento zero.
Além disso, zk-SNARK oferece as seguintes vantagens:
A primeira aplicação do zk-SNARK é o Zcash, que permite aos usuários realizar transações totalmente anônimas, ocultando informações como remetentes, destinatários e valores usando o zk-SNARK. No espaço Web3 atual, a tecnologia zk-SNARK desempenha um papel significativo na escalabilidade do blockchain e no gerenciamento de reservas cambiais.
Devido ao mecanismo de consenso e aos requisitos de segurança do blockchain, seu rendimento e eficiência são bastante limitados. Para resolver esse problema, uma solução comum é usar a tecnologia Layer2, que constrói uma camada adicional no topo do blockchain para migrar um grande número de transações ou cálculos da cadeia principal (Layer1) para a Layer2, melhorando assim o desempenho e a usabilidade do sistema. .
zk-SNARK desempenha um papel importante nesta solução, pois pode comprimir as transações ou cálculos na Camada2 em uma prova pequena e rápida, que é então submetida para verificação na cadeia principal, garantindo a correção e consistência da Camada2. Atualmente, existem duas soluções principais de Layer2 baseadas em zk-SNARK: ZK-rollup e Validium.
Devido à volatilidade e incerteza do mercado de criptomoedas, muitas bolsas precisam deter uma certa quantidade de fundos de reserva para fazer face a potenciais riscos ou exigências. No entanto, estes fundos de reserva muitas vezes carecem de transparência e fiabilidade, deixando os utilizadores incertos sobre se a bolsa tem realmente fundos de reserva suficientes para salvaguardar os seus activos.
O zk-SNARK pode fornecer uma solução nesse sentido, permitindo que as bolsas provem aos usuários ou órgãos reguladores que possuem uma quantidade e valor adequados de fundos de reserva, sem revelar detalhes ou localizações específicas de ativos.
Um exemplo típico é Gate.io, que utiliza uma combinação de árvores zk-SNARK e Merkle. Eles criptografam os dados do usuário e geram provas de fundos de reserva de 100 tokens diferentes usando circuitos restritos para demonstrar sua capacidade de solvência de 100%.
Fonte: https://www.gate.io/proof-of-reserves
Leitura adicional: Como zk-SNARK melhora a prova de reservas Gate.io
Além dos aplicativos Web3, o zk-SNARK também pode ser usado em domínios não-blockchain, como:
Na seção anterior, apresentamos os princípios técnicos do zk-SNARK, que mencionam que o zk-SNARK melhora a eficiência da prova ao encontrar um terceiro confiável para gerar CRS. No entanto, isso também leva a algumas limitações e desafios inerentes ao zk-SNARK.
Em resumo, existem várias abordagens para resolver as limitações inerentes do zk-SNARK.
zk-SNARK, como tecnologia criptográfica inovadora, possui amplos cenários de aplicação futura, especialmente na área de privacidade:
A tecnologia zk-SNARK representa um avanço significativo nas áreas de proteção de privacidade e verificação criptografada. Não é apenas promissor no fornecimento de fortes garantias de privacidade, mas também prático no aumento da escalabilidade do blockchain e de várias outras aplicações. Apesar da existência de desafios e limitações técnicas, por meio de pesquisa e inovação contínuas, esperamos que o zk-SNARK continue evoluindo, otimizando os sistemas existentes e inspirando novos modelos de aplicativos para impulsionar o avanço da proteção de privacidade e da tecnologia de criptografia. Com a maturidade da tecnologia e a crescente ênfase na privacidade dos dados na sociedade, o zk-SNARK tem potencial para se tornar uma ferramenta indispensável na era digital, capacitando os utilizadores com maior controlo sobre as suas informações e promovendo interações digitais seguras e transparentes.
A prova de conhecimento zero (ZKP) é uma tecnologia criptográfica proposta pela primeira vez por S. Goldwasser, S. Micali e C. Rackoff no início dos anos 1980 em um artigo intitulado The Knowledge Complexity Of Interactive Proof Systems. Neste artigo, foi conceituado como um modelo teórico para resolver o problema de verificação de afirmações matemáticas sem revelar as evidências. Este conceito ganhou atenção significativa na comunidade acadêmica, pois desafiou os limites das técnicas tradicionais de criptografia e forneceu 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. Em 2010, Groth publicou um artigo intitulado Short Pairing-based Non-interactive Zero-Knowledge Arguments, que se tornou um trabalho seminal no desenvolvimento do zk-SNARK, uma solução importante no ZKP. A aplicação prática mais significativa do ZKP é o sistema de prova de conhecimento zero usado pela Z-cash em 2015, que alcançou proteção de privacidade para transações e valores. Posteriormente, o zk-SNARK combinou-se com contratos inteligentes, levando a uma gama mais ampla de aplicações.
Os princípios que o ZKP tradicional precisa seguir são os seguintes:
O princípio do ZKP pode ser entendido através de um exemplo simples: se eu precisar provar a A que tenho o número de telefone de B, não preciso informar diretamente o número de telefone de A B. Em vez disso, posso discar diretamente o número de telefone de B e, assim que a chamada for completada, posso provar que realmente tenho o número de telefone de B. Este processo não divulga as informações do número de B.
E o zk-SNARK atualiza ainda mais nesta base, com as seguintes características:
No artigo de Groth, ele propôs um método não interativo de prova de conhecimento zero baseado em pares que transforma um problema computacional em um Programa Aritmético Quadrático (QAP) e, em seguida, constrói uma prova eficiente usando criptografia de curva elíptica e funções hash. Projetos posteriores do zk-SNARK geralmente envolvem quatro etapas:
Para ajudar a entender, vamos considerar um exemplo simples: suponha que você tenha um mapa do tesouro que possa guiá-lo até a localização exata do tesouro enterrado. Você quer provar a alguém que conhece a localização do tesouro sem revelar o conteúdo do mapa ou a localização real do tesouro. Se você usar a tecnologia zk-SNARK, precisará criar um quebra-cabeça complexo do mapa do tesouro. Você seleciona uma pequena peça do quebra-cabeça (uma prova) e mostra para a pessoa, o que a convence de que você sabe como o quebra-cabeça completo se encaixa, ou seja, a localização do tesouro, sem ver o quebra-cabeça inteiro. No entanto, para conseguir isso, você precisará obter marcações especiais de uma gráfica confiável, que sirvam como prova de que a peça do quebra-cabeça é genuína.
A abordagem tradicional para provas de conhecimento zero envolve métodos de prova interativos, onde um provador pergunta repetidamente a um verificador “sim ou não?” perguntas até que uma resposta correta seja alcançada. Este processo é ineficiente. No entanto, o zk-SNARK elimina a necessidade de interações repetidas ao obter um CRS de um terceiro confiável. Todos os provadores podem comparar diretamente o CRS para determinar a veracidade. Isso melhora muito a eficiência das provas de conhecimento zero.
Além disso, zk-SNARK oferece as seguintes vantagens:
A primeira aplicação do zk-SNARK é o Zcash, que permite aos usuários realizar transações totalmente anônimas, ocultando informações como remetentes, destinatários e valores usando o zk-SNARK. No espaço Web3 atual, a tecnologia zk-SNARK desempenha um papel significativo na escalabilidade do blockchain e no gerenciamento de reservas cambiais.
Devido ao mecanismo de consenso e aos requisitos de segurança do blockchain, seu rendimento e eficiência são bastante limitados. Para resolver esse problema, uma solução comum é usar a tecnologia Layer2, que constrói uma camada adicional no topo do blockchain para migrar um grande número de transações ou cálculos da cadeia principal (Layer1) para a Layer2, melhorando assim o desempenho e a usabilidade do sistema. .
zk-SNARK desempenha um papel importante nesta solução, pois pode comprimir as transações ou cálculos na Camada2 em uma prova pequena e rápida, que é então submetida para verificação na cadeia principal, garantindo a correção e consistência da Camada2. Atualmente, existem duas soluções principais de Layer2 baseadas em zk-SNARK: ZK-rollup e Validium.
Devido à volatilidade e incerteza do mercado de criptomoedas, muitas bolsas precisam deter uma certa quantidade de fundos de reserva para fazer face a potenciais riscos ou exigências. No entanto, estes fundos de reserva muitas vezes carecem de transparência e fiabilidade, deixando os utilizadores incertos sobre se a bolsa tem realmente fundos de reserva suficientes para salvaguardar os seus activos.
O zk-SNARK pode fornecer uma solução nesse sentido, permitindo que as bolsas provem aos usuários ou órgãos reguladores que possuem uma quantidade e valor adequados de fundos de reserva, sem revelar detalhes ou localizações específicas de ativos.
Um exemplo típico é Gate.io, que utiliza uma combinação de árvores zk-SNARK e Merkle. Eles criptografam os dados do usuário e geram provas de fundos de reserva de 100 tokens diferentes usando circuitos restritos para demonstrar sua capacidade de solvência de 100%.
Fonte: https://www.gate.io/proof-of-reserves
Leitura adicional: Como zk-SNARK melhora a prova de reservas Gate.io
Além dos aplicativos Web3, o zk-SNARK também pode ser usado em domínios não-blockchain, como:
Na seção anterior, apresentamos os princípios técnicos do zk-SNARK, que mencionam que o zk-SNARK melhora a eficiência da prova ao encontrar um terceiro confiável para gerar CRS. No entanto, isso também leva a algumas limitações e desafios inerentes ao zk-SNARK.
Em resumo, existem várias abordagens para resolver as limitações inerentes do zk-SNARK.
zk-SNARK, como tecnologia criptográfica inovadora, possui amplos cenários de aplicação futura, especialmente na área de privacidade:
A tecnologia zk-SNARK representa um avanço significativo nas áreas de proteção de privacidade e verificação criptografada. Não é apenas promissor no fornecimento de fortes garantias de privacidade, mas também prático no aumento da escalabilidade do blockchain e de várias outras aplicações. Apesar da existência de desafios e limitações técnicas, por meio de pesquisa e inovação contínuas, esperamos que o zk-SNARK continue evoluindo, otimizando os sistemas existentes e inspirando novos modelos de aplicativos para impulsionar o avanço da proteção de privacidade e da tecnologia de criptografia. Com a maturidade da tecnologia e a crescente ênfase na privacidade dos dados na sociedade, o zk-SNARK tem potencial para se tornar uma ferramenta indispensável na era digital, capacitando os utilizadores com maior controlo sobre as suas informações e promovendo interações digitais seguras e transparentes.