O sistema moderno de zk-SNARKs origina-se da teoria dos sistemas de prova interativa proposta em 1985 por Goldwasser, Micali e Rackoff. Essa teoria explora quanto conhecimento deve ser trocado durante a interação para provar a veracidade de uma declaração e introduz o conceito de zk-SNARKs.
Os sistemas de zk-SNARKs dos primeiros tempos apresentavam deficiências em eficiência e praticidade, permanecendo principalmente a um nível teórico. Apenas na última década, com a ascensão da criptografia no campo das criptomoedas, os zk-SNARKs começaram a se tornar uma direção de pesquisa importante. Entre eles, o desenvolvimento de protocolos de zk-SNARKs gerais, não interativos e com tamanho de prova limitado tornou-se uma das direções de exploração chave.
Uma grande quebra no conhecimento zero ocorreu em 2010, quando Groth propôs a prova de conhecimento zero não interativa de pares curtos, estabelecendo a base teórica para zk-SNARKs. Em 2015, o conhecimento zero foi aplicado pela primeira vez no projeto Zcash, para proteger a privacidade das transações. Desde então, a combinação de zk-SNARKs com contratos inteligentes ampliou ainda mais seus cenários de aplicação.
Neste processo, alguns resultados académicos importantes incluem:
O protocolo Pinocchio de 2013 melhorou significativamente a eficiência de prova e verificação.
O algoritmo Groth16 de 2016, que simplificou ainda mais a escala da prova e melhorou a eficiência da verificação.
O algoritmo Bulletproofs de 2017 propôs provas de conhecimento zero não interativas e concisas.
O protocolo zk-STARKs de 2018, um novo sistema de prova de zero conhecimento sem necessidade de configuração confiável.
Além disso, novas soluções como PLONK e Halo2 também fizeram melhorias importantes no zk-SNARKs.
zk-SNARKs principais aplicações
zk-SNARKs tem uma ampla aplicação nas áreas de proteção da privacidade e escalabilidade.
Na proteção da privacidade, projetos de transações privadas como Zcash e Monero, no início, atraíram ampla atenção. No entanto, a necessidade de transações privadas não se destacou tanto quanto o esperado pela indústria, e os projetos relacionados gradualmente recuaram para o segundo plano.
Na questão da escalabilidade, com a transição do Ethereum 2.0 para uma abordagem centrada em rollups, as soluções de escalabilidade baseadas em zk-SNARKs voltaram a ser o foco. Inclui principalmente:
Camada de escalabilidade da rede: como o projeto Mina
Expansão da rede de segunda camada: ou seja, solução zk-rollup
zk-rollup envolve principalmente dois tipos de papéis: Sequencer que é responsável por empacotar transações, e Aggregator que é responsável por combinar transações e gerar zk-SNARKs. Esta solução possui vantagens como custos baixos e finalização rápida, mas também enfrenta desafios como grande volume de cálculos e potenciais riscos de segurança.
Atualmente, os principais projetos de zk-rollup no mercado incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Estes projetos, na sua abordagem técnica, fazem uma escolha entre SNARK( e suas versões melhoradas ) e STARK, bem como se suportam a compatibilidade com EVM.
A compatibilidade com EVM tem sido o foco da atenção na indústria. Projetos iniciais muitas vezes precisavam fazer um trade-off entre a eficiência de zk-SNARKs e a compatibilidade com EVM. Nos últimos anos, a rápida iteração tecnológica tornou possível alcançar uma boa compatibilidade com EVM ao mesmo tempo que se garante a eficiência de zk-SNARKs, o que terá um impacto significativo no ecossistema de desenvolvimento e na concorrência de zk-SNARKs.
Princípios básicos dos zk-SNARKs
zk-SNARK( zk-SNARKs) é um dos sistemas de prova de conhecimento zero mais amplamente utilizados atualmente. A sua ideia central é transformar problemas de cálculo complexos em problemas polinomiais simples e, em seguida, provar e verificar por meio de métodos criptográficos.
O processo de implementação do zk-SNARKs inclui as seguintes etapas:
Converter o problema em circuitos aritméticos
Converter o circuito para a forma R1CS( do Sistema de Restrições de Classificação 1)
Converter R1CS em QAP(Programa Aritmético Quadrático)
Estabelecer uma configuração de confiança, gerar a chave de prova e a chave de verificação
Gerar zk-SNARKs e realizar a verificação
Este processo garante tanto a natureza de zero conhecimento da prova, como a sua simplicidade e não-interactividade, estabelecendo a base para a ampla aplicação de zk-SNARKs no campo das blockchain.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
zk-SNARKs:从历史演进到zk-rollup热潮
zk-SNARKs - desenvolvimento e aplicações
zk-SNARKs da evolução histórica
O sistema moderno de zk-SNARKs origina-se da teoria dos sistemas de prova interativa proposta em 1985 por Goldwasser, Micali e Rackoff. Essa teoria explora quanto conhecimento deve ser trocado durante a interação para provar a veracidade de uma declaração e introduz o conceito de zk-SNARKs.
Os sistemas de zk-SNARKs dos primeiros tempos apresentavam deficiências em eficiência e praticidade, permanecendo principalmente a um nível teórico. Apenas na última década, com a ascensão da criptografia no campo das criptomoedas, os zk-SNARKs começaram a se tornar uma direção de pesquisa importante. Entre eles, o desenvolvimento de protocolos de zk-SNARKs gerais, não interativos e com tamanho de prova limitado tornou-se uma das direções de exploração chave.
Uma grande quebra no conhecimento zero ocorreu em 2010, quando Groth propôs a prova de conhecimento zero não interativa de pares curtos, estabelecendo a base teórica para zk-SNARKs. Em 2015, o conhecimento zero foi aplicado pela primeira vez no projeto Zcash, para proteger a privacidade das transações. Desde então, a combinação de zk-SNARKs com contratos inteligentes ampliou ainda mais seus cenários de aplicação.
Neste processo, alguns resultados académicos importantes incluem:
Além disso, novas soluções como PLONK e Halo2 também fizeram melhorias importantes no zk-SNARKs.
zk-SNARKs principais aplicações
zk-SNARKs tem uma ampla aplicação nas áreas de proteção da privacidade e escalabilidade.
Na proteção da privacidade, projetos de transações privadas como Zcash e Monero, no início, atraíram ampla atenção. No entanto, a necessidade de transações privadas não se destacou tanto quanto o esperado pela indústria, e os projetos relacionados gradualmente recuaram para o segundo plano.
Na questão da escalabilidade, com a transição do Ethereum 2.0 para uma abordagem centrada em rollups, as soluções de escalabilidade baseadas em zk-SNARKs voltaram a ser o foco. Inclui principalmente:
zk-rollup envolve principalmente dois tipos de papéis: Sequencer que é responsável por empacotar transações, e Aggregator que é responsável por combinar transações e gerar zk-SNARKs. Esta solução possui vantagens como custos baixos e finalização rápida, mas também enfrenta desafios como grande volume de cálculos e potenciais riscos de segurança.
Atualmente, os principais projetos de zk-rollup no mercado incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Estes projetos, na sua abordagem técnica, fazem uma escolha entre SNARK( e suas versões melhoradas ) e STARK, bem como se suportam a compatibilidade com EVM.
A compatibilidade com EVM tem sido o foco da atenção na indústria. Projetos iniciais muitas vezes precisavam fazer um trade-off entre a eficiência de zk-SNARKs e a compatibilidade com EVM. Nos últimos anos, a rápida iteração tecnológica tornou possível alcançar uma boa compatibilidade com EVM ao mesmo tempo que se garante a eficiência de zk-SNARKs, o que terá um impacto significativo no ecossistema de desenvolvimento e na concorrência de zk-SNARKs.
Princípios básicos dos zk-SNARKs
zk-SNARK( zk-SNARKs) é um dos sistemas de prova de conhecimento zero mais amplamente utilizados atualmente. A sua ideia central é transformar problemas de cálculo complexos em problemas polinomiais simples e, em seguida, provar e verificar por meio de métodos criptográficos.
O processo de implementação do zk-SNARKs inclui as seguintes etapas:
Este processo garante tanto a natureza de zero conhecimento da prova, como a sua simplicidade e não-interactividade, estabelecendo a base para a ampla aplicação de zk-SNARKs no campo das blockchain.