Desenvolvimento e exploração de aplicações de zk-SNARKs
I. A evolução histórica dos zk-SNARKs
O sistema moderno de zk-SNARKs teve origem em 1985 com o trabalho conjunto de Goldwasser, Micali e Rackoff. Este artigo 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-SNARKs. Embora este sistema interativo não possa ser provado completamente em termos matemáticos, é considerado correto em um sentido probabilístico.
Para superar as limitações dos sistemas interativos, os sistemas não interativos surgiram, tornando-se a escolha ideal para zk-SNARKs. Os primeiros sistemas de zk-SNARKs apresentavam deficiências em termos de utilidade, até que começaram a florescer na última década. Nesse contexto, o desenvolvimento de protocolos de zk-SNARKs que sejam gerais, não interativos e com tamanho de prova limitado tornou-se uma das direções de exploração chave.
Uma importante quebra de paradigma em zk-SNARKs foi proposta por Groth em 2010 com a sua prova de conhecimento zero não interativa de pares curtos, que estabeleceu a base teórica para zk-SNARKs. Em 2015, zk-SNARKs foi aplicado na prática no projeto Zcash, proporcionando proteção à privacidade das transações. Desde então, a combinação de zk-SNARKs com contratos inteligentes expandiu ainda mais os seus cenários de aplicação.
Durante este período, alguns 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 apresentou provas de conhecimento zero não interativas e curtas.
Em 2018, os zk-STARKs propuseram protocolos de algoritmo que não exigem configuração de confiança.
Outras desenvolvimentos como PLONK, Halo2, etc., também fizeram melhorias nos zk-SNARKs.
2. Principais aplicações dos zk-SNARKs
As duas aplicações mais amplas de zk-SNARKs são proteção da privacidade e escalabilidade.
Na proteção da privacidade, os primeiros projetos representativos incluíram Zcash e Monero. No entanto, devido à necessidade de transações privadas não ser tão alta quanto o esperado, esses projetos gradualmente passaram para um segundo plano.
Na aplicação de escalabilidade, com a transição do Ethereum para uma rota centrada em rollups, a série ZK voltou a ser o foco da indústria. A escalabilidade ZK pode ser implementada em uma rede de camada um, como o projeto Mina; ou pode ser implementada em uma rede de camada dois, ou seja, zk-rollup.
Os principais papéis do zk-rollup incluem Sequencer e Aggregator. O Sequencer é responsável por agrupar transações, enquanto o Aggregator se encarrega de combinar transações e gerar zk-SNARKs para atualizar o estado na cadeia.
As vantagens do zk-rollup incluem baixas taxas, rápida finalização e proteção de privacidade; as desvantagens incluem grande carga computacional e a necessidade de configurações confiáveis.
Atualmente, os projetos zk-rollup competitivos no mercado incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez, entre outros. Estes projetos na sua abordagem técnica fazem principalmente uma escolha entre SNARK( e suas versões melhoradas ) e STARK, bem como o nível de suporte ao EVM.
A compatibilidade com EVM é uma questão importante. Alguns projetos optam por serem completamente compatíveis com os códigos de operação Solidity, enquanto outros projetam novas máquinas virtuais para equilibrar a compatibilidade com ZK e com Solidity. Nos últimos anos, a melhoria da compatibilidade com EVM tem proporcionado mais conveniências aos desenvolvedores.
Três, o princípio básico dos zk-SNARKs
zk-SNARKs deve satisfazer as três características de integridade, confiabilidade e zero conhecimento. ZK-SNARK é um protocolo de prova de conhecimento zero amplamente utilizado, cujo nome completo é "Prova de Conhecimento Zero Compacta e Não Interativa".
Os passos básicos do ZK-SNARK incluem:
Converter o problema em um circuito
Converter o circuito para a forma R1CS
Converter R1CS para a forma QAP
Estabelecer uma configuração confiável, gerar chaves de prova e chaves de verificação
Gerar e verificar provas zk-SNARKs
O desenvolvimento do ZK-SNARKs lançou as bases para a aplicação de provas de conhecimento zero no campo da blockchain. No futuro, com o avanço da tecnologia, as provas de conhecimento zero têm o potencial de desempenhar um papel importante em mais cenários.
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.
17 Curtidas
Recompensa
17
4
Compartilhar
Comentário
0/400
GasGuzzler
· 07-18 21:54
zk é realmente um bull!
Ver originalResponder0
OnchainHolmes
· 07-16 02:45
zk também é demasiado absurdo 8
Ver originalResponder0
FloorSweeper
· 07-16 02:41
ngmi se você ainda não entende a tecnologia zk
Ver originalResponder0
BlockchainDecoder
· 07-16 02:36
Citando a perspectiva do artigo de Goldwasser de 1989, a ZK é essencialmente um problema de granularidade interativa.
História do desenvolvimento de zk-SNARKs e análise dos princípios dos ZK-SNARK
Desenvolvimento e exploração de aplicações de zk-SNARKs
I. A evolução histórica dos zk-SNARKs
O sistema moderno de zk-SNARKs teve origem em 1985 com o trabalho conjunto de Goldwasser, Micali e Rackoff. Este artigo 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-SNARKs. Embora este sistema interativo não possa ser provado completamente em termos matemáticos, é considerado correto em um sentido probabilístico.
Para superar as limitações dos sistemas interativos, os sistemas não interativos surgiram, tornando-se a escolha ideal para zk-SNARKs. Os primeiros sistemas de zk-SNARKs apresentavam deficiências em termos de utilidade, até que começaram a florescer na última década. Nesse contexto, o desenvolvimento de protocolos de zk-SNARKs que sejam gerais, não interativos e com tamanho de prova limitado tornou-se uma das direções de exploração chave.
Uma importante quebra de paradigma em zk-SNARKs foi proposta por Groth em 2010 com a sua prova de conhecimento zero não interativa de pares curtos, que estabeleceu a base teórica para zk-SNARKs. Em 2015, zk-SNARKs foi aplicado na prática no projeto Zcash, proporcionando proteção à privacidade das transações. Desde então, a combinação de zk-SNARKs com contratos inteligentes expandiu ainda mais os seus cenários de aplicação.
Durante este período, alguns resultados académicos importantes incluem:
Outras desenvolvimentos como PLONK, Halo2, etc., também fizeram melhorias nos zk-SNARKs.
2. Principais aplicações dos zk-SNARKs
As duas aplicações mais amplas de zk-SNARKs são proteção da privacidade e escalabilidade.
Na proteção da privacidade, os primeiros projetos representativos incluíram Zcash e Monero. No entanto, devido à necessidade de transações privadas não ser tão alta quanto o esperado, esses projetos gradualmente passaram para um segundo plano.
Na aplicação de escalabilidade, com a transição do Ethereum para uma rota centrada em rollups, a série ZK voltou a ser o foco da indústria. A escalabilidade ZK pode ser implementada em uma rede de camada um, como o projeto Mina; ou pode ser implementada em uma rede de camada dois, ou seja, zk-rollup.
Os principais papéis do zk-rollup incluem Sequencer e Aggregator. O Sequencer é responsável por agrupar transações, enquanto o Aggregator se encarrega de combinar transações e gerar zk-SNARKs para atualizar o estado na cadeia.
As vantagens do zk-rollup incluem baixas taxas, rápida finalização e proteção de privacidade; as desvantagens incluem grande carga computacional e a necessidade de configurações confiáveis.
Atualmente, os projetos zk-rollup competitivos no mercado incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez, entre outros. Estes projetos na sua abordagem técnica fazem principalmente uma escolha entre SNARK( e suas versões melhoradas ) e STARK, bem como o nível de suporte ao EVM.
A compatibilidade com EVM é uma questão importante. Alguns projetos optam por serem completamente compatíveis com os códigos de operação Solidity, enquanto outros projetam novas máquinas virtuais para equilibrar a compatibilidade com ZK e com Solidity. Nos últimos anos, a melhoria da compatibilidade com EVM tem proporcionado mais conveniências aos desenvolvedores.
Três, o princípio básico dos zk-SNARKs
zk-SNARKs deve satisfazer as três características de integridade, confiabilidade e zero conhecimento. ZK-SNARK é um protocolo de prova de conhecimento zero amplamente utilizado, cujo nome completo é "Prova de Conhecimento Zero Compacta e Não Interativa".
Os passos básicos do ZK-SNARK incluem:
O desenvolvimento do ZK-SNARKs lançou as bases para a aplicação de provas de conhecimento zero no campo da blockchain. No futuro, com o avanço da tecnologia, as provas de conhecimento zero têm o potencial de desempenhar um papel importante em mais cenários.