zk-SNARKs: desenvolvimento, aplicação e princípios
I. A Evolução Histórica dos zk-SNARKs
O sistema de zk-SNARKs originou-se em 1985, a partir de um trabalho colaborativo de Goldwasser, Micali e Rackoff. Este trabalho explora a quantidade de conhecimento que precisa ser trocada para provar a veracidade de uma afirmação em sistemas interativos, através de múltiplas interações. Se a troca de conhecimento puder ser realizada, é chamada de zk-SNARK. Os primeiros sistemas de zk-SNARK apresentavam deficiências em eficiência e usabilidade, permanecendo principalmente em nível teórico.
Nos últimos dez anos, com o surgimento da criptografia no campo das criptomoedas, os zk-SNARKs tornaram-se gradualmente uma direção de pesquisa chave. Dentre elas, desenvolver protocolos de zk-SNARKs gerais, não interativos e com tamanho de prova limitado é uma das direções de exploração mais importantes. O núcleo dos zk-SNARKs é buscar um equilíbrio entre a velocidade de prova, a velocidade de verificação e o tamanho da prova.
Em 2010, o artigo publicado por Groth estabeleceu a base teórica para os zk-SNARKs, que são os mais importantes no campo dos ZKP. Em 2015, o sistema de prova de conhecimento zero usado pelo Zcash implementou a proteção da privacidade das transações, iniciando a ampla aplicação dos ZKP.
Outros resultados acadêmicos importantes incluem:
O protocolo Pinocchio de 2013, que comprimiu o tempo de prova e verificação
O Groth16 de 2016, que simplificou o tamanho da prova e melhorou a eficiência da verificação.
Em 2017, Bulletproofs propôs provas de conhecimento zero não interativas e concisas.
zk-STARKs de 2018 propuseram um protocolo sem necessidade de configuração confiável.
Além disso, PLONK, Halo2 e outros também são importantes avanços no desenvolvimento de ZKP.
2. 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.
proteção de privacidade
Os primeiros projetos de transações privadas como Zcash e Monero foram muito populares, mas devido à demanda real não ter correspondido às expectativas, atualmente estão gradualmente a recuar para um segundo plano.
Tomando o Zcash como exemplo, seu processo de transação baseado em zk-SNARKs inclui: configuração do sistema, geração de chaves, cunhagem, despejo, verificação e recebimento, entre outros passos. No entanto, o Zcash também apresenta limitações, como ser baseado no modelo UTXO, dificuldade de escalabilidade, entre outras. A proporção de transações privadas realmente utilizadas é inferior a 10%.
O Tornado Cash utiliza um design de piscina de mistura grande única, baseado na rede Ethereum, utilizando zk-SNARKs para implementar a proteção da privacidade. As suas principais características incluem: só é possível retirar as moedas depositadas, as moedas não podem ser retiradas em duplicado, o processo de prova está vinculado à notificação de anulação, entre outros.
escalabilidade
A aplicação do ZK na escalabilidade é principalmente ZK Rollup. O ZK Rollup inclui duas categorias de papéis: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator combina um grande número de transações para gerar o rollup e criar zk-SNARKs, que são utilizados para atualizar o estado da Layer 1.
As vantagens do ZK Rollup incluem: baixos custos, finalização rápida, proteção de privacidade, entre outras. As desvantagens incluem: grande carga computacional, problemas de segurança, possibilidade de alterar a ordem das transações, entre outras.
Atualmente, os principais projetos de ZK Rollup incluem: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Estes projetos, na sua trajetória tecnológica, fazem principalmente a escolha entre SNARK( e a versão melhorada ) e STARK, além de considerar se suportam EVM.
A compatibilidade com EVM é um grande desafio para os sistemas ZK. Atualmente, existem principalmente duas soluções: ser completamente 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 afetará o ecossistema de desenvolvimento ZK e o cenário competitivo.
Três, Princípios Básicos do zk-SNARKs
ZK-SNARK representa "zk-SNARKs". Suas características principais incluem:
zk-SNARKs: O processo de prova não vaza informações adicionais
Simples: o volume de verificação é pequeno
Não interativo: não requer múltiplas interações
Demonstração: com confiabilidade computacional
Conhecimento: o provador deve ter conhecimento de informações válidas
O processo de prova ZK-SNARKs Groth16 inclui principalmente:
Converter a questão em circuitos
Converter o circuito para a forma R1CS
Conversão de R1CS para a forma QAP
Estabelecer configurações confiáveis, gerar chaves de prova e chaves de verificação
Gerar e verificar provas zk-SNARKs
Os princípios, aplicações do zk-SNARKs e sua relação com o ZK-STARK serão discutidos em detalhes em relatórios futuros.
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.
11 gostos
Recompensa
11
5
Partilhar
Comentar
0/400
BearMarketBuilder
· 07-09 21:16
Mais uma vez a aprender sobre zkp. Mesmo a fazer arbitragem, é preciso acompanhar as tendências.
Ver originalResponder0
MerkleDreamer
· 07-06 21:45
Acho que o Zcash é bastante fiável.
Ver originalResponder0
GasOptimizer
· 07-06 21:42
gás dia após dia está mais baixo, quem pode me dar uma solução de otimização A+?
Ver originalResponder0
CryptoPhoenix
· 07-06 21:36
Estou à espera desta onda de aquecimento, a tendência ZK é imparável! [隐藏emoji]
Ver originalResponder0
MEVHunter
· 07-06 21:31
zk ainda é muito lento para extração de alfa real... ngmi
Profundidade análise zk-SNARKs: desde a evolução até a aplicação prática
zk-SNARKs: desenvolvimento, aplicação e princípios
I. A Evolução Histórica dos zk-SNARKs
O sistema de zk-SNARKs originou-se em 1985, a partir de um trabalho colaborativo de Goldwasser, Micali e Rackoff. Este trabalho explora a quantidade de conhecimento que precisa ser trocada para provar a veracidade de uma afirmação em sistemas interativos, através de múltiplas interações. Se a troca de conhecimento puder ser realizada, é chamada de zk-SNARK. Os primeiros sistemas de zk-SNARK apresentavam deficiências em eficiência e usabilidade, permanecendo principalmente em nível teórico.
Nos últimos dez anos, com o surgimento da criptografia no campo das criptomoedas, os zk-SNARKs tornaram-se gradualmente uma direção de pesquisa chave. Dentre elas, desenvolver protocolos de zk-SNARKs gerais, não interativos e com tamanho de prova limitado é uma das direções de exploração mais importantes. O núcleo dos zk-SNARKs é buscar um equilíbrio entre a velocidade de prova, a velocidade de verificação e o tamanho da prova.
Em 2010, o artigo publicado por Groth estabeleceu a base teórica para os zk-SNARKs, que são os mais importantes no campo dos ZKP. Em 2015, o sistema de prova de conhecimento zero usado pelo Zcash implementou a proteção da privacidade das transações, iniciando a ampla aplicação dos ZKP.
Outros resultados acadêmicos importantes incluem:
Além disso, PLONK, Halo2 e outros também são importantes avanços no desenvolvimento de ZKP.
2. 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.
proteção de privacidade
Os primeiros projetos de transações privadas como Zcash e Monero foram muito populares, mas devido à demanda real não ter correspondido às expectativas, atualmente estão gradualmente a recuar para um segundo plano.
Tomando o Zcash como exemplo, seu processo de transação baseado em zk-SNARKs inclui: configuração do sistema, geração de chaves, cunhagem, despejo, verificação e recebimento, entre outros passos. No entanto, o Zcash também apresenta limitações, como ser baseado no modelo UTXO, dificuldade de escalabilidade, entre outras. A proporção de transações privadas realmente utilizadas é inferior a 10%.
O Tornado Cash utiliza um design de piscina de mistura grande única, baseado na rede Ethereum, utilizando zk-SNARKs para implementar a proteção da privacidade. As suas principais características incluem: só é possível retirar as moedas depositadas, as moedas não podem ser retiradas em duplicado, o processo de prova está vinculado à notificação de anulação, entre outros.
escalabilidade
A aplicação do ZK na escalabilidade é principalmente ZK Rollup. O ZK Rollup inclui duas categorias de papéis: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator combina um grande número de transações para gerar o rollup e criar zk-SNARKs, que são utilizados para atualizar o estado da Layer 1.
As vantagens do ZK Rollup incluem: baixos custos, finalização rápida, proteção de privacidade, entre outras. As desvantagens incluem: grande carga computacional, problemas de segurança, possibilidade de alterar a ordem das transações, entre outras.
Atualmente, os principais projetos de ZK Rollup incluem: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Estes projetos, na sua trajetória tecnológica, fazem principalmente a escolha entre SNARK( e a versão melhorada ) e STARK, além de considerar se suportam EVM.
A compatibilidade com EVM é um grande desafio para os sistemas ZK. Atualmente, existem principalmente duas soluções: ser completamente 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 afetará o ecossistema de desenvolvimento ZK e o cenário competitivo.
Três, Princípios Básicos do zk-SNARKs
ZK-SNARK representa "zk-SNARKs". Suas características principais incluem:
O processo de prova ZK-SNARKs Groth16 inclui principalmente:
Os princípios, aplicações do zk-SNARKs e sua relação com o ZK-STARK serão discutidos em detalhes em relatórios futuros.