Análise Profunda da Tecnologia de zk-SNARKs: Uma Revisão Abrangente do Algoritmo à Aplicação

Desenvolvimento e Aplicação da Tecnologia de zk-SNARKs: Uma Revisão no Campo do Blockchain

Resumo

zk-SNARKs(ZKP) como um avanço significativo no campo da criptografia, desempenha um papel crucial na tecnologia Blockchain. Este artigo oferece uma revisão sistemática do desenvolvimento do ZKP nos últimos quarenta anos e das pesquisas mais recentes.

Primeiro, foi apresentada a noção básica de ZKP e o contexto histórico. Em seguida, foi feita uma análise focada na tecnologia ZKP baseada em circuitos, incluindo o design, aplicação e métodos de otimização de modelos como zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs e Ligero. No que diz respeito ao ambiente computacional, este artigo discute como o ZKVM e o ZKEVM podem melhorar a capacidade de processamento de transações, proteger a privacidade e aumentar a eficiência da verificação. Também é apresentado o mecanismo de funcionamento e métodos de otimização do Rollup de conhecimento zero como uma solução de expansão Layer 2, assim como os últimos avanços em aceleração de hardware, soluções híbridas e ZK EVM dedicados.

Por fim, foram examinados novos conceitos emergentes como ZKCoprocessor, ZKML, ZKThreads, ZK Sharding e ZK StateChannels, discutindo seu potencial em escalabilidade, interoperabilidade e proteção da privacidade no Blockchain.

Através da análise destas tendências de desenvolvimento tecnológico, este artigo oferece uma perspectiva abrangente para a compreensão e aplicação da tecnologia ZKP, demonstrando o seu enorme potencial na melhoria da eficiência e segurança dos sistemas Blockchain, proporcionando uma referência importante para decisões de investimento futuras.

Índice

Introdução

Um, conhecimentos básicos sobre zk-SNARKs

  1. Resumo
  2. zk-SNARKs exemplo

Dois, zk-SNARKs não interativos

  1. Contexto
  2. A proposta de NIZK
  3. Transformação Fiat-Shamir
  4. Jens Groth e a sua pesquisa
  5. Outras pesquisas

Três, prova de conhecimento zero baseada em circuitos

  1. Fundo
  2. Conceitos e características básicas do modelo de circuito
  3. Design e aplicação de circuitos em zk-SNARKs
  4. Defeitos e desafios potenciais

Quatro, modelo de zk-SNARKs

  1. Contexto
  2. Modelos de algoritmos comuns
  3. Proposta baseada em PCP linear e problema do logaritmo discreto
  4. Proposta baseada na prova de pessoas comuns
  5. Prova de conhecimento zero verificável com base em probabilidade ( PCP )
  6. Classificação da fase de configuração da construção de prova genérica CPC( )

Cinco, Visão geral e desenvolvimento da Máquina Virtual de Zero Conhecimento

  1. Fundo
  2. Classificação do ZKVM existente
  3. Paradigma de Front-end e Back-end
  4. Vantagens e desvantagens do paradigma ZKVM

VI. Visão geral e desenvolvimento da máquina virtual Ethereum com prova de conhecimento zero

  1. Contexto
  2. Como funciona o ZKEVM
  3. O processo de implementação do ZKEVM
  4. Características do ZKEVM

Sete, Visão Geral e Desenvolvimento da Solução de Rede de Camada Dois com zk-SNARKs

  1. Contexto
  2. O mecanismo de funcionamento do ZK Rollup
  3. Desvantagens e otimizações do ZK Rollup

Oitavo, direções futuras para o desenvolvimento de zk-SNARKs

  1. Acelerar o desenvolvimento de ambientes de computação
  2. A proposta e o desenvolvimento do ZKML
  3. Desenvolvimento relacionado à tecnologia de escalabilidade ZKP
  4. O desenvolvimento da interoperabilidade zk-SNARKs

Nove, Conclusão

Prefácio

A internet está entrando na era Web3, com o rápido desenvolvimento de aplicações de blockchain ( DApps ). Nos últimos anos, as plataformas de blockchain têm suportado milhões de atividades de usuários diariamente, processando bilhões de transações. Os grandes volumes de dados gerados por essas transações geralmente incluem informações pessoais sensíveis. Devido à abertura e transparência características do blockchain, os dados armazenados são abertos a todos, o que levanta várias questões de segurança e privacidade.

Atualmente, existem várias tecnologias de criptografia que podem enfrentar esses desafios, incluindo criptografia homomórfica, assinaturas em anel, computação multipartidária segura e zk-SNARKs. O zk-SNARKs é uma solução mais abrangente; este protocolo de verificação permite validar a correção de certas proposições sem revelar quaisquer dados intermediários. O protocolo não requer infraestrutura complexa de chave pública, e sua implementação repetida também não oferece a usuários mal-intencionados a oportunidade de obter informações úteis adicionais. Através do ZKP, o verificador pode validar se o provador possui um montante de transação suficiente sem divulgar quaisquer dados de transação privados.

A característica do ZKP faz com que desempenhe um papel central nas transações de Blockchain e nas aplicações de criptomoedas, especialmente em termos de proteção da privacidade e expansão da rede, tornando-se não apenas o foco da pesquisa acadêmica, mas amplamente reconhecido como uma das inovações tecnológicas mais importantes desde a implementação bem-sucedida da tecnologia de livro-razão distribuído. Ao mesmo tempo, é também uma pista de foco para aplicações do setor e investimentos em risco.

Dessa forma, diversos projetos de rede baseados em ZKP surgiram, como ZkSync, StarkNet, Mina, Filecoin e Aleo. Com o desenvolvimento desses projetos, inovações algoritmicas relacionadas ao ZKP têm surgido constantemente, com relatos de novos algoritmos sendo lançados quase toda semana. Além disso, o desenvolvimento de hardware relacionado à tecnologia ZKP também está progredindo rapidamente, incluindo chips otimizados especificamente para ZKP. Por exemplo, projetos como Ingonyama, Irreducible e Cysic já completaram grandes arrecadações de fundos, e esses desenvolvimentos não apenas demonstram o rápido progresso da tecnologia ZKP, mas também refletem a transição de hardware genérico para hardware especializado, como GPU, FPGA e ASIC.

Esses avanços indicam que a tecnologia zk-SNARKs não é apenas uma importante inovação no campo da criptografia, mas também um motor impulsionador essencial para a aplicação mais ampla da tecnologia Blockchain.

Assim, decidimos organizar sistematicamente o conhecimento relacionado a zk-SNARKs ( ZKP ), para melhor auxiliar na tomada de decisões de investimento futuras. Para isso, revisamos de forma abrangente os principais artigos acadêmicos relacionados ao ZKP; ao mesmo tempo, também analisamos detalhadamente as informações e os white papers dos projetos líderes na área. Essa coleta e análise abrangente de informações forneceram uma base sólida para a redação deste artigo.

Um, zk-SNARKs Conhecimentos Básicos

1. Resumo

Em 1985, os estudiosos Goldwasser, Micali e Rackoff apresentaram pela primeira vez zk-SNARKs ( Zero-Knowledge Proof, ZKP ) e Interactive Zero-Knowledge, IZK (. Este artigo é a obra fundamental da prova de zero conhecimento, definindo muitos conceitos que influenciam a pesquisa acadêmica subsequente. Por exemplo, a definição de conhecimento é "a saída de um cálculo não viável", ou seja, o conhecimento deve ser uma saída e é um cálculo não viável, o que significa que não pode ser uma função simples, mas sim uma função complexa. Cálculo não viável pode ser entendido como um problema NP, ou seja, um problema cuja solução pode ser verificada em tempo polinomial, onde tempo polinomial se refere ao tempo de execução do algoritmo que pode ser expresso como uma função polinomial do tamanho da entrada. Este é um critério importante em ciência da computação para medir a eficiência e viabilidade de algoritmos. Devido à complexidade do processo de resolução de problemas NP, eles são considerados cálculos não viáveis; no entanto, seu processo de verificação é relativamente simples, tornando-os muito adequados para a verificação de provas de zero conhecimento.

Um exemplo clássico de problema NP é o problema do caixeiro viajante, onde se deve encontrar o caminho mais curto que visita uma série de cidades e retorna ao ponto de partida. Embora encontrar o caminho mais curto possa ser difícil, dada uma rota, verificar se essa rota é a mais curta é relativamente fácil. Isso porque a verificação da distância total de um caminho específico pode ser realizada em tempo polinomial.

Goldwasser et al. introduziram o conceito de "complexidade do conhecimento" em seu artigo, para quantificar a quantidade de conhecimento que o provador vaza ao verificador em sistemas de prova interativos. Eles também propuseram sistemas de prova interativos )Interactive Proof Systems, IPS(, onde o provador )Prover( e o verificador )Verifier( interagem em várias rodadas para provar a veracidade de uma afirmação.

Em suma, a definição de zk-SNARKs resumida por Goldwasser et al. é um tipo especial de prova interativa, onde o verificador não obtém nenhuma informação adicional, além da veracidade da afirmação durante o processo de verificação; e foram propostas três características básicas, incluindo:

  1. Completude)completeness(: Se a prova for verdadeira, o provador honesto pode convencer o validador honesto desse fato;

  2. Confiabilidade ) soundness (: Se o provador não souber o conteúdo da declaração, ele só pode enganar o verificador com uma probabilidade insignificante;

  3. zk-SNARKs)zero-knowledge(: Após a conclusão do processo de prova, o verificador só obtém a informação "o provador possui este conhecimento", sem conseguir obter qualquer conteúdo adicional.

) 2. zk-SNARKs exemplo

Para uma melhor compreensão dos zk-SNARKs e suas propriedades, aqui está um exemplo de verificação se o provador possui certas informações privadas, que é dividido em três fases: configuração, desafio e resposta.

Primeiro passo: configurar ###Setup(

Nesta etapa, o objetivo do provador é criar uma prova de que ele conhece um número secreto s, mas sem mostrar diretamente s. Seja o número secreto s;

Escolha dois grandes números primos p e q, e calcule o seu produto n. Considere os números primos p e q, e calcule o n obtido.

Calcular v=s^2 mod n, aqui, v é enviado ao verificador como parte da prova, mas não é suficiente para permitir que o verificador ou qualquer observador deduza s;

Escolha um inteiro aleatório r, calcule x=r^2 mod n e envie-o ao validador. Este valor x é utilizado no processo de validação subsequente, mas também não expõe s. Suponha um inteiro aleatório r, calcule o x obtido.

Segunda etapa: desafio )Challenge(

O validador escolhe aleatoriamente um bit a) que pode ser 0 ou 1(, e depois envia-o ao provador. Este "desafio" determina os próximos passos que o provador deve tomar.

Terceiro passo: responder )Response(

De acordo com o valor a enviado pelo validador, o provador responde:

Se a=0, o provador envia g=r), onde r é o número que ele escolheu aleatoriamente anteriormente (.

Se a=1, o provador calcula g=rs mod n e envia. Suponha que o verificador envia o bit aleatório a, de acordo com o valor de a, o provador calcula g;

Por fim, o validador verifica se x é igual a g^2 mod n com base no g recebido. Se a igualdade for válida, o validador aceita esta prova. Quando a=0, o validador calcula x=g^2 mod n, validando o lado direito g^2 mod n; quando a=1, o validador calcula x=g^2/v mod n, validando )rs(^2/s^2 mod n no lado direito.

Aqui, vemos que o x calculado pelo validador como x=g^2 mod n demonstra que o provador conseguiu passar com sucesso pelo processo de verificação, ao mesmo tempo que não revelou seu número secreto s. Aqui, devido a a só poder assumir 0 ou 1, existem apenas duas possibilidades, e a probabilidade de o provador passar a verificação por sorte é 1/2) quando a é 0, mas (. No entanto, o validador em seguida desafia o provador k vezes, e o provador troca continuamente os números relevantes que submete ao validador, e sempre consegue passar com sucesso pelo processo de verificação, de modo que a probabilidade de o provador passar a verificação por sorte ) 1/2(^k ) tende a 0(, provando que o provador realmente conhece um número secreto s. Este exemplo demonstra a integridade, confiabilidade e a propriedade de conhecimento zero do sistema de provas de conhecimento zero.

Dois, zk-SNARKs não interativos

) 1. Contexto

zk-SNARKs###ZKP( na concepção tradicional geralmente é uma forma de protocolo interativo e online; por exemplo, o protocolo Sigma geralmente requer de três a cinco rodadas de interação para concluir a autenticação. No entanto, em cenários como transações instantâneas ou votação, muitas vezes não há oportunidade para múltiplas interações, especialmente na aplicação da tecnologia Blockchain, onde a funcionalidade de verificação offline se torna particularmente importante.

) 2. A proposta de NIZK

Em 1988, Blum, Feldman e Micali propuseram pela primeira vez o conceito de prova não interativa de conhecimento zero ###NIZK(, provando que, sem a necessidade de múltiplas interações, o provador )Prover( e o verificador )Verifier( ainda poderiam concluir o processo de autenticação. Essa descoberta tornou viáveis transações instantâneas, votação e a implementação de aplicações de Blockchain.

Eles propuseram que a prova de conhecimento zero não interativa ) NIZK ( pode ser dividida em três etapas:

  1. Definir
  2. Calcular
  3. Verificação

Na fase de configuração, usa-se uma função de cálculo para transformar parâmetros de segurança em conhecimento público. ) tanto o provador como o verificador podem aceder a (, normalmente codificado em uma string de referência comum )CRS(. Esta é a forma de calcular a prova e usar os parâmetros e algoritmos corretos para a verificação.

A fase de cálculo utiliza funções de cálculo, chaves de entrada e de prova, e produz resultados de cálculo e prova.

Na fase de verificação, a validade da prova é verificada através da chave de verificação.

O modelo de string de referência pública proposto por eles, )CRS(, baseia-se em todos os participantes compartilhando uma string para implementar a prova de conhecimento zero não interativa de problemas NP. A operação deste modelo depende da geração confiável do CRS, e todos os participantes devem ter acesso à mesma string. Apenas quando o CRS é gerado de forma correta e segura, os esquemas implementados por este modelo podem garantir segurança. Para um grande número de participantes, o processo de geração do CRS pode ser complexo e demorado, portanto, embora esses esquemas sejam geralmente fáceis de operar e tenham um volume de prova pequeno, seu processo de configuração é bastante desafiador.

Em seguida, a tecnologia NIZK passou por um rápido desenvolvimento, surgindo várias maneiras de transformar provas interativas de conhecimento zero em provas não interativas. Esses métodos na construção do sistema

ZK-3.11%
Ver original
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.
  • Recompensa
  • 8
  • Republicar
  • Partilhar
Comentar
0/400
JustHereForAirdropsvip
· 08-13 20:37
zk entrar numa posição velocidade rápida... no início realmente não conseguia entender
Ver originalResponder0
LiquidityWitchvip
· 08-13 04:43
zk magia da mistura... poços escuros de verdades matemáticas, onde a criptografia antiga encontra a alquimia da blockchain
Ver originalResponder0
SigmaBrainvip
· 08-11 01:18
zk será a solução ideal para L2?
Ver originalResponder0
NotSatoshivip
· 08-11 01:16
Há vários anos que me aprofundo em zk, mas ainda não entendi nada.
Ver originalResponder0
WagmiWarriorvip
· 08-11 01:15
Já vi pessoas a falar sobre zk, é melhor fazer uma pesquisa básica primeiro.
Ver originalResponder0
UnluckyValidatorvip
· 08-11 01:12
Pato de cobrança, ainda não atualizou rapidamente.
Ver originalResponder0
MetaLord420vip
· 08-11 01:11
É outra vez a tábua de salvação do zkrollup...
Ver originalResponder0
BearMarketMonkvip
· 08-11 01:02
A vida e a morte não importam, zkp é realmente bom.
Ver originalResponder0
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)