História do desenvolvimento de zk-SNARKs e análise dos princípios dos ZK-SNARK

robot
Geração do resumo em andamento

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.

HashKey ZK 101 Edição: Princípios Históricos e Indústria

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.

HashKey ZK 101 Edição 1: Princípios Históricos e Indústria

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.

HashKey ZK 101 Edição 1: Princípios Históricos e Indústria

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:

  1. Converter o problema em um circuito
  2. Converter o circuito para a forma R1CS
  3. Converter R1CS para a forma QAP
  4. Estabelecer uma configuração confiável, gerar chaves de prova e chaves de verificação
  5. Gerar e verificar provas zk-SNARKs

HashKey ZK 101 Edição 1: Princípios Históricos e Indústria

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.

HashKey ZK 101 Edição 1: Princípios Históricos e Indústria

ZK-6.76%
Ver original
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.
  • Recompensa
  • 4
  • Compartilhar
Comentário
0/400
GasGuzzlervip
· 07-18 21:54
zk é realmente um bull!
Ver originalResponder0
OnchainHolmesvip
· 07-16 02:45
zk também é demasiado absurdo 8
Ver originalResponder0
FloorSweepervip
· 07-16 02:41
ngmi se você ainda não entende a tecnologia zk
Ver originalResponder0
BlockchainDecodervip
· 07-16 02:36
Citando a perspectiva do artigo de Goldwasser de 1989, a ZK é essencialmente um problema de granularidade interativa.
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)