zk-SNARKs技术发展与应用全解析:从隐私保护到Layer2扩容

zk-SNARKs的发展与应用

zk-SNARKs da História

O sistema de zk-SNARKs teve origem nos resultados de pesquisa de Goldwasser, Micali e Rackoff em 1985. Eles exploraram a quantidade de conhecimento que precisa ser trocada para provar a correção de uma declaração em sistemas interativos, através de múltiplas interações. Se a prova puder ser concluída sem a troca de nenhum conhecimento, é chamada de zk-SNARKs.

Os sistemas de zk-SNARKs iniciais apresentavam deficiências em termos de eficiência e praticidade, permanecendo principalmente no nível teórico. Nos últimos 10 anos, com a ascensão da criptografia no campo das criptomoedas, os zk-SNARKs começaram a prosperar, tornando-se uma direção de pesquisa importante. Entre eles, o desenvolvimento de protocolos de zk-SNARKs gerais, não interativos e com escalabilidade limitada é uma das principais direções de exploração.

Uma importante quebra de paradigma na prova de conhecimento zero foi a prova de conhecimento zero não interativa de pares curtos proposta por Groth em 2010. Isso estabeleceu a base teórica para zk-SNARKs. Em 2015, a Zcash adotou um sistema de prova de conhecimento zero para implementar a proteção da privacidade das transações, marcando o início da ampla aplicação da prova de conhecimento zero.

Outros resultados acadêmicos importantes incluem:

  • Pinóquio de 2013: comprimindo o tempo de prova e verificação a um intervalo utilizável
  • Groth16 de 2016: reduziu o tamanho da prova, melhorou a eficiência da verificação
  • Bulletproofs de 2017: propuseram provas curtas sem necessidade de configuração confiável
  • zk-STARKs de 2018: proposta de um novo protocolo sem configuração confiável

Além disso, PLONK, Halo2 e outros também são avanços importantes, que melhoraram os zk-SNARKs.

HashKey ZK 101 第一期:历史原理与行业

zk-SNARKs na aplicação

As duas aplicações mais amplas de zk-SNARKs são a proteção da privacidade e a escalabilidade.

proteção de privacidade

Projetos de negociação de privacidade como Zcash e Monero tornaram-se uma direção importante após seu lançamento. No entanto, como a necessidade de negociações de privacidade não atingiu as expectativas, esses projetos gradualmente entraram nas ligas secundárias.

O Zcash utiliza a tecnologia zk-SNARKs, cujos passos de transação incluem: configuração do sistema, geração de chaves públicas e privadas, cunhagem, geração de provas, verificação e receção. No entanto, o Zcash baseia-se no modelo UTXO, apenas ocultando parte das informações da transação, em vez de as esconder completamente. A taxa de utilização de transações privadas é inferior a 10%.

O Tornado Cash utiliza um design de um único grande pool de mistura, baseado na rede Ethereum, utilizando tecnologia zk-SNARKs. Ele garante que apenas as moedas depositadas possam ser retiradas, cada moeda pode ser retirada apenas uma vez, e o processo de prova está vinculado ao aviso de anulação.

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

escalabilidade

A escalabilidade ZK pode ser implementada em uma rede de camada um ( como Mina ) ou em uma rede de camada dois (, ou seja, zk-rollup ). O zk-rollup inclui dois tipos 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 e gera zk-SNARKs, atualizando a árvore de estado do Ethereum.

As vantagens do zk-rollup são custos baixos e rápida finalização, enquanto as desvantagens são a grande carga computacional e a possibilidade de problemas de segurança.

Atualmente, os principais projetos de zk-rollup incluem: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Eles apresentam diferenças na escolha de SNARK/STARK e na compatibilidade com EVM.

A compatibilidade com EVM tem sido um problema. Alguns projetos optam por desenvolver sua própria máquina virtual e linguagem, mas isso aumenta o custo de aprendizado dos desenvolvedores. Atualmente, existem duas soluções principais na indústria: compatibilidade total com os códigos de operação Solidity ou o design de uma nova máquina virtual amigável a ZK e compatível com Solidity. Recentemente, houve progressos importantes na compatibilidade com EVM, com a expectativa de permitir uma migração sem costura para os desenvolvedores.

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

Princípio de implementação do zk-SNARKs

ZK-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) é um sistema zk-SNARKs com as seguintes características:

  • zk-SNARKs: O processo de prova não revela informações adicionais
  • Simples: volume de verificação pequeno
  • Não interativo: sem necessidade de múltiplas interações
  • Confiabilidade: provadores com capacidade computacional limitada não conseguem falsificar provas
  • Conhecimento: o provador deve saber informações válidas para construir a prova

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

O processo de prova ZK-SNARKs de Groth16 inclui:

  1. Converter o problema em circuitos
  2. Converter o circuito para a forma R1CS
  3. Conversão de R1CS para a forma QAP
  4. Estabelecer configurações confiáveis, gerar chave de prova e chave de verificação
  5. Gerar e verificar provas zk-SNARKs

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

A tecnologia de zk-SNARKs ainda está em rápida evolução e espera-se que desempenhe um papel ainda maior na proteção da privacidade, escalabilidade e outros aspectos no futuro.

ZK-2.1%
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
  • Comentário
  • Compartilhar
Comentário
0/400
Sem comentários
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)