O conceito moderno do sistema de zk-SNARKs origina-se de um artigo coautorado por Goldwasser, Micali e Rackoff em 1985. O artigo explora a quantidade de conhecimento necessária para provar a veracidade de uma afirmação através de interações limitadas em sistemas interativos. Se a troca de conhecimento puder ser realizada sem revelar informações, é denominado zk-SNARK.
Os sistemas de zk-SNARKs da fase inicial apresentavam deficiências em termos de praticidade, permanecendo principalmente a nível teórico. Na última década, com a ascensão da criptografia no campo das criptomoedas, os zk-SNARKs tornaram-se gradualmente uma direção importante. Entre eles, desenvolver protocolos de zk-SNARKs universais, não interativos e com tamanho de prova limitado é uma das principais direções de exploração.
A grande quebra de paradigma da prova de conhecimento zero é o artigo publicado por Groth em 2010, que estabeleceu a base teórica para zk-SNARKs. No nível da aplicação, o sistema de prova de conhecimento zero adotado pelo Zcash em 2015 implementou a proteção da privacidade das transações, abrindo cenários de aplicação mais amplos para a prova de conhecimento zero.
A partir de então, uma série de importantes resultados acadêmicos surgiram constantemente:
O protocolo Pinocchio de 2013 comprimiu o tempo de prova e verificação
A Groth16 de 2016 simplificou o tamanho da prova e melhorou a eficiência da verificação.
O Bulletproofs de 2017 propôs um algoritmo de prova curta sem necessidade de configuração confiável.
O zk-STARKs de 2018 propôs um protocolo seguro contra pós-quântica.
Além disso, os avanços como PLONK e Halo2 também melhoraram os zk-SNARKs.
Dois, as principais aplicações dos zk-SNARKs
As duas aplicações mais amplas de zk-SNARKs são a proteção da privacidade e a escalabilidade.
Na proteção de privacidade, projetos representativos incluem Zcash, Monero, entre outros. Tomando Zcash como exemplo, os passos para realizar transações privadas utilizando zk-SNARKs incluem: configuração do sistema, geração de chaves, cunhagem, transferência, verificação e recepção. No entanto, Zcash ainda tem algumas limitações, como ser baseado no modelo UTXO e dificuldades de escalabilidade.
Na área de escalabilidade, o ZK Rollup é uma aplicação importante. O ZK Rollup inclui dois tipos de papéis: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator é responsável por combinar um grande número de transações e gerar provas. As vantagens do ZK Rollup incluem baixas taxas, finalização rápida, entre outras, mas também existem desvantagens, como alta carga computacional e potenciais problemas de segurança.
Atualmente, os principais projetos de ZK Rollup no mercado incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez, entre outros. Esses projetos, em termos de roteiro técnico, principalmente escolhem entre SNARK e STARK, bem como o nível de suporte ao EVM.
Três, o princípio básico dos zk-SNARKs
ZK-SNARK ( zk-SNARKs ) possui as seguintes características:
zk-SNARKs: o processo de prova não revela informações adicionais
Simples: volume de verificação pequeno
Não interativo: sem necessidade de múltiplas interações
Confiabilidade: provadores com capacidade limitada não conseguem falsificar
Conhecimento: o provador deve saber informações válidas
Usando Groth16 como exemplo, o princípio da prova de ZK-SNARKs inclui:
Converter a questão em circuito
Converter o circuito para a forma R1CS
Converter R1CS para a forma QAP
Estabelecer uma configuração confiável, gerar a chave de prova e a chave de verificação
Gerar e verificar provas zk-SNARKs
ZK-SNARKs estabeleceu a base para a ampla aplicação de provas de conhecimento zero, mas ainda existem algumas limitações. No futuro, será necessário otimizar e melhorar ainda mais para atender às necessidades de mais cenários de aplicação.
Esta página pode conter conteúdos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
História do desenvolvimento dos zk-SNARKs: da teoria à aplicação do ZK Rollup
zk-SNARKs的发展与应用
I. A evolução histórica dos zk-SNARKs
O conceito moderno do sistema de zk-SNARKs origina-se de um artigo coautorado por Goldwasser, Micali e Rackoff em 1985. O artigo explora a quantidade de conhecimento necessária para provar a veracidade de uma afirmação através de interações limitadas em sistemas interativos. Se a troca de conhecimento puder ser realizada sem revelar informações, é denominado zk-SNARK.
Os sistemas de zk-SNARKs da fase inicial apresentavam deficiências em termos de praticidade, permanecendo principalmente a nível teórico. Na última década, com a ascensão da criptografia no campo das criptomoedas, os zk-SNARKs tornaram-se gradualmente uma direção importante. Entre eles, desenvolver protocolos de zk-SNARKs universais, não interativos e com tamanho de prova limitado é uma das principais direções de exploração.
A grande quebra de paradigma da prova de conhecimento zero é o artigo publicado por Groth em 2010, que estabeleceu a base teórica para zk-SNARKs. No nível da aplicação, o sistema de prova de conhecimento zero adotado pelo Zcash em 2015 implementou a proteção da privacidade das transações, abrindo cenários de aplicação mais amplos para a prova de conhecimento zero.
A partir de então, uma série de importantes resultados acadêmicos surgiram constantemente:
Além disso, os avanços como PLONK e Halo2 também melhoraram os zk-SNARKs.
Dois, as principais aplicações dos zk-SNARKs
As duas aplicações mais amplas de zk-SNARKs são a proteção da privacidade e a escalabilidade.
Na proteção de privacidade, projetos representativos incluem Zcash, Monero, entre outros. Tomando Zcash como exemplo, os passos para realizar transações privadas utilizando zk-SNARKs incluem: configuração do sistema, geração de chaves, cunhagem, transferência, verificação e recepção. No entanto, Zcash ainda tem algumas limitações, como ser baseado no modelo UTXO e dificuldades de escalabilidade.
Na área de escalabilidade, o ZK Rollup é uma aplicação importante. O ZK Rollup inclui dois tipos de papéis: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator é responsável por combinar um grande número de transações e gerar provas. As vantagens do ZK Rollup incluem baixas taxas, finalização rápida, entre outras, mas também existem desvantagens, como alta carga computacional e potenciais problemas de segurança.
Atualmente, os principais projetos de ZK Rollup no mercado incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez, entre outros. Esses projetos, em termos de roteiro técnico, principalmente escolhem entre SNARK e STARK, bem como o nível de suporte ao EVM.
Três, o princípio básico dos zk-SNARKs
ZK-SNARK ( zk-SNARKs ) possui as seguintes características:
Usando Groth16 como exemplo, o princípio da prova de ZK-SNARKs inclui:
ZK-SNARKs estabeleceu a base para a ampla aplicação de provas de conhecimento zero, mas ainda existem algumas limitações. No futuro, será necessário otimizar e melhorar ainda mais para atender às necessidades de mais cenários de aplicação.