O sistema de provas de conhecimento zero teve origem em 1985 com o artigo de Goldwasser, Micali e Rackoff intitulado "A complexidade do conhecimento em sistemas de prova interativa". Este artigo explora a quantidade de conhecimento que precisa ser trocada para provar a veracidade de uma afirmação através de múltiplas interações em um sistema interativo. Se a prova puder ser concluída sem revelar qualquer informação adicional, é chamada de zk-SNARKs.
Os sistemas de zk-SNARKs das fases iniciais tinham eficiência e praticidade limitadas, permanecendo principalmente a nível teórico. Apenas nos últimos 10 anos, com a ampla aplicação da criptografia no campo das criptomoedas, os zk-SNARKs começaram a se tornar uma direção de pesquisa importante. Um objetivo chave é desenvolver protocolos de zk-SNARKs gerais, não interativos e com tamanho de prova limitado.
O avanço revolucionário das zk-SNARKs é o artigo publicado por Groth em 2010, que estabeleceu a base teórica das zk-SNARKs. Em 2015, a Zcash aplicou zk-SNARKs para proteger a privacidade das transações, abrindo a ampla aplicação das zk-SNARKs em cenários práticos.
A partir de agora, alguns resultados acadêmicos importantes incluem:
O protocolo Pinocchio de 2013 melhorou significativamente a eficiência da prova e verificação
O Groth16 de 2016, que simplificou ainda mais a escala da prova e aumentou a eficiência da verificação.
O Bulletproofs de 2017 propôs um algoritmo de prova curta sem necessidade de configuração confiável.
Em 2018, foram propostos os protocolos de prova de conhecimento zero zk-STARKs resistentes a computadores quânticos.
Outros desenvolvimentos como PLONK, Halo2, etc., também melhoraram os zk-SNARKs em diferentes aspectos.
zk-SNARKs principais aplicações
As duas aplicações mais amplas de zk-SNARKs atualmente são a proteção de privacidade e a escalabilidade.
As aplicações de transações privadas, como Zcash e Monero, atraíram muita atenção no início, mas a necessidade de privacidade não se destacou tanto quanto o esperado, e esses projetos gradualmente ficaram em segundo plano. Em contraste, a necessidade de escalabilidade tornou-se cada vez mais urgente. Especialmente após a transição do Ethereum 2.0 para uma abordagem centrada em rollup, as soluções de escalabilidade baseadas em zk-SNARKs voltaram a ser o foco da indústria.
transações privadas
Os projetos representativos de transações privadas incluem:
Zcash: utiliza zk-SNARKs para implementar a privacidade das transações
Monero: utiliza o algoritmo Bulletproofs
Tornado Cash: um pool de mistura baseado em Ethereum, utilizando zk-SNARKs
O processo de transações privadas do Zcash inclui etapas como configuração do sistema, geração de chaves, cunhagem, geração de provas de transação, verificação e recebimento. No entanto, o Zcash também apresenta algumas limitações, como ser baseado no modelo UTXO, dificultando a combinação com outras aplicações, e a taxa de uso real de transações privadas não é alta.
Tornado Cash adota um único grande pool de mistura de moedas, oferecendo melhor versatilidade. É baseado na implementação zk-SNARKs Groth16, garantindo que apenas as moedas depositadas possam ser retiradas, e que cada moeda só possa ser retirada uma vez.
escalabilidade
As aplicações de zk-SNARKs na escalabilidade são principalmente zk-rollup. O papel central do zk-rollup é desempenhado pelo Sequencer e pelo Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator combina um grande número de transações e gera zk-SNARKs para atualizar a árvore de estado do Ethereum.
As vantagens do zk-rollup são custos baixos, alta velocidade de transação e proteção de privacidade. As desvantagens são a grande quantidade de cálculos para gerar provas, e o SNARK requer uma configuração confiável.
Atualmente, os principais projetos de zk-rollup incluem:
StarkNet: usa zk-STARKs, não suporta EVM
zkSync: utiliza PLONK, suporta EVM
Aztec: desenvolveu o protocolo PLONK, priorizando a privacidade
Scroll: dedicado a realizar zk-rollups compatíveis com EVM
A compatibilidade com EVM é um grande desafio para os zk-rollups. Atualmente, as principais soluções são duas: ser totalmente compatível com os códigos de operação Solidity ou projetar uma nova máquina virtual amigável a ZK e compatível com Solidity. A melhoria da compatibilidade com EVM terá um grande impacto no desenvolvimento do ecossistema ZK.
Princípio básico dos zk-SNARKs
zk-SNARKs representa "zk-SNARKs". Ele possui as seguintes características:
zk-SNARKs: não revela informações adicionais
Simples: baixo custo de verificação
Não interativo: não requer múltiplas interações
Prova: confiável em termos de cálculo
Conhecimento: o provador deve saber informações válidas
Os princípios de implementação do zk-SNARKs Groth16 incluem os seguintes passos:
Converter o problema em um circuito
Converter o circuito para a forma R1CS
Converter R1CS para a forma QAP
Gerar parâmetros de configuração confiáveis
Gerar e verificar zk-SNARKs
A tecnologia zk-SNARKs está a desenvolver-se rapidamente e espera-se que venha a desempenhar um papel importante em mais áreas no futuro.
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.
Evolução da tecnologia zk-SNARKs: da quebra teórica à aplicação de escalabilidade
zk-SNARKs: da teoria à evolução da aplicação
zk-SNARKs的发展历程
O sistema de provas de conhecimento zero teve origem em 1985 com o artigo de Goldwasser, Micali e Rackoff intitulado "A complexidade do conhecimento em sistemas de prova interativa". Este artigo explora a quantidade de conhecimento que precisa ser trocada para provar a veracidade de uma afirmação através de múltiplas interações em um sistema interativo. Se a prova puder ser concluída sem revelar qualquer informação adicional, é chamada de zk-SNARKs.
Os sistemas de zk-SNARKs das fases iniciais tinham eficiência e praticidade limitadas, permanecendo principalmente a nível teórico. Apenas nos últimos 10 anos, com a ampla aplicação da criptografia no campo das criptomoedas, os zk-SNARKs começaram a se tornar uma direção de pesquisa importante. Um objetivo chave é desenvolver protocolos de zk-SNARKs gerais, não interativos e com tamanho de prova limitado.
O avanço revolucionário das zk-SNARKs é o artigo publicado por Groth em 2010, que estabeleceu a base teórica das zk-SNARKs. Em 2015, a Zcash aplicou zk-SNARKs para proteger a privacidade das transações, abrindo a ampla aplicação das zk-SNARKs em cenários práticos.
A partir de agora, alguns resultados acadêmicos importantes incluem:
Outros desenvolvimentos como PLONK, Halo2, etc., também melhoraram os zk-SNARKs em diferentes aspectos.
zk-SNARKs principais aplicações
As duas aplicações mais amplas de zk-SNARKs atualmente são a proteção de privacidade e a escalabilidade.
As aplicações de transações privadas, como Zcash e Monero, atraíram muita atenção no início, mas a necessidade de privacidade não se destacou tanto quanto o esperado, e esses projetos gradualmente ficaram em segundo plano. Em contraste, a necessidade de escalabilidade tornou-se cada vez mais urgente. Especialmente após a transição do Ethereum 2.0 para uma abordagem centrada em rollup, as soluções de escalabilidade baseadas em zk-SNARKs voltaram a ser o foco da indústria.
transações privadas
Os projetos representativos de transações privadas incluem:
O processo de transações privadas do Zcash inclui etapas como configuração do sistema, geração de chaves, cunhagem, geração de provas de transação, verificação e recebimento. No entanto, o Zcash também apresenta algumas limitações, como ser baseado no modelo UTXO, dificultando a combinação com outras aplicações, e a taxa de uso real de transações privadas não é alta.
Tornado Cash adota um único grande pool de mistura de moedas, oferecendo melhor versatilidade. É baseado na implementação zk-SNARKs Groth16, garantindo que apenas as moedas depositadas possam ser retiradas, e que cada moeda só possa ser retirada uma vez.
escalabilidade
As aplicações de zk-SNARKs na escalabilidade são principalmente zk-rollup. O papel central do zk-rollup é desempenhado pelo Sequencer e pelo Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator combina um grande número de transações e gera zk-SNARKs para atualizar a árvore de estado do Ethereum.
As vantagens do zk-rollup são custos baixos, alta velocidade de transação e proteção de privacidade. As desvantagens são a grande quantidade de cálculos para gerar provas, e o SNARK requer uma configuração confiável.
Atualmente, os principais projetos de zk-rollup incluem:
A compatibilidade com EVM é um grande desafio para os zk-rollups. Atualmente, as principais soluções são duas: ser totalmente compatível com os códigos de operação Solidity ou projetar uma nova máquina virtual amigável a ZK e compatível com Solidity. A melhoria da compatibilidade com EVM terá um grande impacto no desenvolvimento do ecossistema ZK.
Princípio básico dos zk-SNARKs
zk-SNARKs representa "zk-SNARKs". Ele possui as seguintes características:
Os princípios de implementação do zk-SNARKs Groth16 incluem os seguintes passos:
A tecnologia zk-SNARKs está a desenvolver-se rapidamente e espera-se que venha a desempenhar um papel importante em mais áreas no futuro.