A prova de conhecimento zero (ZKP) é uma tecnologia criptográfica que foi proposta pela primeira vez por S. Goldwasser, S. Micali e C. Rackoff no início dos anos 80 num artigo intitulado The Knowledge Complexity Of Interactive Proof Systems. Neste artigo, foi conceituado como um modelo teórico para abordar o problema da verificação de afirmações matemáticas sem revelar a evidência. Este conceito ganhou atenção significativa na comunidade académica, uma vez que desafiava os limites das técnicas tradicionais de encriptação e forneceu uma nova abordagem para o 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. Em 2010, Groth publicou um artigo intitulado Short Pairing-based Non-Interactive Zero-Knowledge Argumentos, 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 utilizado pelo Z-cash em 2015, que alcançou a proteção da privacidade para transações e montantes. 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 de aderir são os seguintes:
O princípio do ZKP pode ser entendido através de um exemplo simples: Se preciso provar a A que tenho o número de telefone do B, não preciso dizer diretamente o número de telefone de A B. Em vez disso, posso discar diretamente o número de telefone do B e uma vez que a chamada esteja ligada, pode provar que tenho realmente o número de telefone do B. Este processo não divulga a informação do número do B.
E o zk-SNARK atualiza ainda 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 num Programa Aritmético Quadrático (QAP), e depois constrói uma prova eficiente usando criptografia de curva elíptica e funções hash. Os projetos posteriores do zk-SNARK geralmente envolvem quatro etapas:
Para ajudar a compreender, vamos considerar um exemplo simples: Suponha que tenha um mapa do tesouro que o possa guiar até à localização exata do tesouro enterrado. Quer provar a alguém que sabe a localização do tesouro sem revelar o conteúdo do mapa ou a localização real do tesouro. Se usar a tecnologia zk-SNARK, teria de criar um enigma complexo do mapa do tesouro. Seleciona uma pequena peça do puzzle (uma prova) e mostra-a à pessoa, o que a convence de que sabe como o puzzle completo se encaixa, ou seja, a localização do tesouro, sem ver o puzzle inteiro. No entanto, para conseguir isso, teria de obter marcações especiais de uma gráfica de confiança, que servem como prova de que a sua peça do puzzle é genuína.
A abordagem tradicional às provas de conhecimento zero envolve métodos de prova interativos, onde um provador pergunta repetidamente a um verificador “sim ou não?” perguntas até ser alcançada uma resposta correta. Este processo é ineficiente. No entanto, o zk-SNARK elimina a necessidade de interações repetidas, obtendo um CRS de um terceiro de confiança. Todos os provadores podem comparar diretamente o CRS para determinar a veracidade. Isto melhora muito a eficiência das provas de conhecimento zero.
Além disso, o zk-SNARK oferece as seguintes vantagens:
A primeira aplicação do zk-SNARK é o Zcash, que permite aos utilizadores envolverem-se em transações totalmente anónimas, ocultando informações como remetentes, receptores e montantes usando o zk-SNARK. No atual espaço Web3, a tecnologia zk-SNARK desempenha um papel significativo na escalabilidade do blockchain e na gestão de reservas cambiais.
Devido ao mecanismo de consenso e aos requisitos de segurança da blockchain, o seu rendimento e eficiência são bastante limitados. Para resolver este problema, uma solução comum é usar a tecnologia Layer2, que constrói uma camada adicional sobre a cadeia de blocos para migrar um grande número de transações ou cálculos da cadeia principal (Camada1) para a Camada2, melhorando assim o desempenho e a usabilidade do sistema.
O zk-SNARK desempenha um papel importante nesta solução, pois pode comprimir as transações ou cálculos na Camada2 numa prova pequena e rápida, que é então submetida para verificação na cadeia principal, garantindo a exatidão e consistência da Camada2. Atualmente, existem duas soluções principais de Layer2 baseadas no zk-SNARK: ZK-Rollup e Validium.
Devido à volatilidade e incerteza do mercado de criptomoedas, muitas bolsas precisam de manter uma certa quantidade de fundos de reserva para lidar com 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 realmente tem fundos de reserva suficientes para salvaguardar os seus ativos.
O zk-SNARK pode fornecer uma solução a este respeito, permitindo que as bolsas provem aos utilizadores ou organismos reguladores que possuem uma quantidade e valor adequados de fundos de reserva sem revelar detalhes ou localizações específicas dos ativos.
Um exemplo típico é o Gate.io, que utiliza uma combinação de árvores ZK-SNARK e Merkle. Criptografam os dados do utilizador e geram provas de fundos de reserva de 100 tokens diferentes usando circuitos restritos para demonstrar a sua capacidade de solvência a 100%.
Origem: https://www.gate.io/proof-of-reserves
Leituras adicionais: Como o ZK-SNARK melhora a Prova de Reservas do Gate.io
Além das aplicações Web3, o zk-SNARK também pode ser utilizado em domínios que não sejam blockchain, tais como:
Na secção anterior, introduzimos os princípios técnicos do zk-SNARK, que mencionava que o zk-SNARK melhora a eficiência da prova ao encontrar um terceiro de confiança 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 abordar as limitações inerentes do zk-SNARK.
O zk-SNARK, como uma tecnologia criptográfica inovadora, tem amplos cenários de aplicação futuros, especialmente no domínio da privacidade:
A tecnologia zk-SNARK representa um avanço significativo nos campos da proteção da privacidade e verificação encriptada. Não é apenas promissor no fornecimento de fortes garantias de privacidade mas também prático no reforço da escalabilidade da blockchain e de várias outras aplicações. Apesar da existência de desafios e limitações técnicas, através de investigação e inovação contínuas, esperamos que o zk-SNARK continue a evoluir, optimizando os sistemas existentes e inspirando novos modelos de aplicação para impulsionar o avanço da proteção da privacidade e da tecnologia de encriptação. Com a maturidade da tecnologia e a crescente ênfase na privacidade de dados na sociedade, o zk-SNARK tem o potencial de se tornar uma ferramenta indispensável na era digital, capacitando os utilizadores com um maior controlo sobre a sua informação e promovendo interações digitais seguras e transparentes.
A prova de conhecimento zero (ZKP) é uma tecnologia criptográfica que foi proposta pela primeira vez por S. Goldwasser, S. Micali e C. Rackoff no início dos anos 80 num artigo intitulado The Knowledge Complexity Of Interactive Proof Systems. Neste artigo, foi conceituado como um modelo teórico para abordar o problema da verificação de afirmações matemáticas sem revelar a evidência. Este conceito ganhou atenção significativa na comunidade académica, uma vez que desafiava os limites das técnicas tradicionais de encriptação e forneceu uma nova abordagem para o 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. Em 2010, Groth publicou um artigo intitulado Short Pairing-based Non-Interactive Zero-Knowledge Argumentos, 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 utilizado pelo Z-cash em 2015, que alcançou a proteção da privacidade para transações e montantes. 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 de aderir são os seguintes:
O princípio do ZKP pode ser entendido através de um exemplo simples: Se preciso provar a A que tenho o número de telefone do B, não preciso dizer diretamente o número de telefone de A B. Em vez disso, posso discar diretamente o número de telefone do B e uma vez que a chamada esteja ligada, pode provar que tenho realmente o número de telefone do B. Este processo não divulga a informação do número do B.
E o zk-SNARK atualiza ainda 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 num Programa Aritmético Quadrático (QAP), e depois constrói uma prova eficiente usando criptografia de curva elíptica e funções hash. Os projetos posteriores do zk-SNARK geralmente envolvem quatro etapas:
Para ajudar a compreender, vamos considerar um exemplo simples: Suponha que tenha um mapa do tesouro que o possa guiar até à localização exata do tesouro enterrado. Quer provar a alguém que sabe a localização do tesouro sem revelar o conteúdo do mapa ou a localização real do tesouro. Se usar a tecnologia zk-SNARK, teria de criar um enigma complexo do mapa do tesouro. Seleciona uma pequena peça do puzzle (uma prova) e mostra-a à pessoa, o que a convence de que sabe como o puzzle completo se encaixa, ou seja, a localização do tesouro, sem ver o puzzle inteiro. No entanto, para conseguir isso, teria de obter marcações especiais de uma gráfica de confiança, que servem como prova de que a sua peça do puzzle é genuína.
A abordagem tradicional às provas de conhecimento zero envolve métodos de prova interativos, onde um provador pergunta repetidamente a um verificador “sim ou não?” perguntas até ser alcançada uma resposta correta. Este processo é ineficiente. No entanto, o zk-SNARK elimina a necessidade de interações repetidas, obtendo um CRS de um terceiro de confiança. Todos os provadores podem comparar diretamente o CRS para determinar a veracidade. Isto melhora muito a eficiência das provas de conhecimento zero.
Além disso, o zk-SNARK oferece as seguintes vantagens:
A primeira aplicação do zk-SNARK é o Zcash, que permite aos utilizadores envolverem-se em transações totalmente anónimas, ocultando informações como remetentes, receptores e montantes usando o zk-SNARK. No atual espaço Web3, a tecnologia zk-SNARK desempenha um papel significativo na escalabilidade do blockchain e na gestão de reservas cambiais.
Devido ao mecanismo de consenso e aos requisitos de segurança da blockchain, o seu rendimento e eficiência são bastante limitados. Para resolver este problema, uma solução comum é usar a tecnologia Layer2, que constrói uma camada adicional sobre a cadeia de blocos para migrar um grande número de transações ou cálculos da cadeia principal (Camada1) para a Camada2, melhorando assim o desempenho e a usabilidade do sistema.
O zk-SNARK desempenha um papel importante nesta solução, pois pode comprimir as transações ou cálculos na Camada2 numa prova pequena e rápida, que é então submetida para verificação na cadeia principal, garantindo a exatidão e consistência da Camada2. Atualmente, existem duas soluções principais de Layer2 baseadas no zk-SNARK: ZK-Rollup e Validium.
Devido à volatilidade e incerteza do mercado de criptomoedas, muitas bolsas precisam de manter uma certa quantidade de fundos de reserva para lidar com 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 realmente tem fundos de reserva suficientes para salvaguardar os seus ativos.
O zk-SNARK pode fornecer uma solução a este respeito, permitindo que as bolsas provem aos utilizadores ou organismos reguladores que possuem uma quantidade e valor adequados de fundos de reserva sem revelar detalhes ou localizações específicas dos ativos.
Um exemplo típico é o Gate.io, que utiliza uma combinação de árvores ZK-SNARK e Merkle. Criptografam os dados do utilizador e geram provas de fundos de reserva de 100 tokens diferentes usando circuitos restritos para demonstrar a sua capacidade de solvência a 100%.
Origem: https://www.gate.io/proof-of-reserves
Leituras adicionais: Como o ZK-SNARK melhora a Prova de Reservas do Gate.io
Além das aplicações Web3, o zk-SNARK também pode ser utilizado em domínios que não sejam blockchain, tais como:
Na secção anterior, introduzimos os princípios técnicos do zk-SNARK, que mencionava que o zk-SNARK melhora a eficiência da prova ao encontrar um terceiro de confiança 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 abordar as limitações inerentes do zk-SNARK.
O zk-SNARK, como uma tecnologia criptográfica inovadora, tem amplos cenários de aplicação futuros, especialmente no domínio da privacidade:
A tecnologia zk-SNARK representa um avanço significativo nos campos da proteção da privacidade e verificação encriptada. Não é apenas promissor no fornecimento de fortes garantias de privacidade mas também prático no reforço da escalabilidade da blockchain e de várias outras aplicações. Apesar da existência de desafios e limitações técnicas, através de investigação e inovação contínuas, esperamos que o zk-SNARK continue a evoluir, optimizando os sistemas existentes e inspirando novos modelos de aplicação para impulsionar o avanço da proteção da privacidade e da tecnologia de encriptação. Com a maturidade da tecnologia e a crescente ênfase na privacidade de dados na sociedade, o zk-SNARK tem o potencial de se tornar uma ferramenta indispensável na era digital, capacitando os utilizadores com um maior controlo sobre a sua informação e promovendo interações digitais seguras e transparentes.