Revisão abrangente de 40 anos da tecnologia de zero conhecimento: do ZKSNARK ao desenvolvimento e perspectiva futura do ZKEVM

zk-SNARKs: uma visão abrangente da tecnologia e perspectivas futuras

Resumo

zk-SNARKs(ZKP) é amplamente considerado uma das inovações tecnológicas mais importantes no campo da blockchain, após a tecnologia de livro-razão distribuído, e também é uma área de foco importante para o capital de risco. Este artigo fornece uma revisão sistemática da literatura histórica e das pesquisas mais recentes sobre a tecnologia zk-SNARKs ao longo de quase quarenta anos.

Primeiro, apresenta-se o conceito básico de zk-SNARKs e o contexto histórico. Em seguida, analisa-se em detalhe a tecnologia de zk-SNARKs baseada em circuitos, incluindo o design, a aplicação e os métodos de otimização de modelos como zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs e Ligero. No campo do ambiente computacional, este artigo apresenta o ZKVM e o ZKEVM, discutindo como estes melhoram a capacidade de processamento de transações, protegem a privacidade e aumentam a eficiência da verificação. O artigo também apresenta o funcionamento e os métodos de otimização do zk-SNARK Rollup(ZK Rollup) como uma solução de escalabilidade Layer 2, além dos últimos avanços em aceleração de hardware, soluções híbridas e ZK EVM dedicados.

Por fim, este artigo antecipa conceitos emergentes como ZKCoprocessor, ZKML, ZKThreads, ZK Sharding e ZK StateChannels, e explora seu potencial em termos de escalabilidade, interoperabilidade e proteção da privacidade na blockchain.

Através da análise dessas tecnologias mais recentes e das tendências de desenvolvimento, este artigo oferece uma visão abrangente para entender e aplicar a tecnologia zk-SNARKs, demonstrando seu enorme potencial para melhorar a eficiência e a segurança dos sistemas de blockchain, fornecendo uma referência importante para decisões de investimento futuras.

Índice

Introdução

Uma, zk-SNARKs conhecimentos básicos

  1. Resumo
  2. zk-SNARKs示例

Dois, zk-SNARKs não interativos

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

Três, provas de conhecimento zero baseadas em circuitos

  1. Contexto
  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, zk-SNARKs modelo

  1. Contexto 2.Modelos de algoritmos comuns
  2. Proposta baseada em PCP linear e problemas de logaritmo discreto
  3. Proposta baseada em provas de pessoas comuns 5.Provas de conhecimento zero PCP( baseadas em probabilidade verificável )
  4. Classificação da fase de configuração da construção de prova genérica CPC( baseada em )

Cinco, Visão geral e desenvolvimento da máquina virtual zk-SNARKs

  1. Contexto
  2. Classificação do ZKVM existente
  3. Paradigma de front-end e back-end
  4. Vantagens e desvantagens do paradigma ZKVM

Seis, visão geral e desenvolvimento do zk-SNARKs no Ethereum Virtual Machine

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

Sete, uma visão geral e desenvolvimento do esquema de rede de segunda camada zk-SNARKs

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

Oitavo, as direções futuras do zk-SNARKs

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

Nove, conclusão

Referências

Introdução

A internet está entrando na era do Web3, as aplicações de blockchain (DApps) estão se desenvolvendo rapidamente, com novas aplicações surgindo a cada dia. Nos últimos anos, as plataformas de blockchain têm suportado as atividades de milhões 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, como identidade do usuário, valor da transação, endereço da conta e saldo da conta. Devido à natureza aberta e transparente do blockchain, esses dados armazenados estã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. A criptografia homomórfica permite realizar operações sem decifrar o texto cifrado, ajudando a proteger a segurança dos saldos e montantes das transações, mas não consegue proteger a segurança dos endereços das contas. As assinaturas em anel oferecem uma forma especial de assinatura digital que pode ocultar a identidade do signatário, protegendo assim a segurança do endereço da conta, mas não pode proteger os saldos e montantes das transações. A computação multipartidária segura permite distribuir tarefas de computação entre vários participantes, sem que nenhum participante conheça os dados de outros participantes, protegendo efetivamente a segurança dos saldos e montantes das transações, mas também não consegue proteger a segurança dos endereços das contas. Além disso, a criptografia homomórfica, as assinaturas em anel e a computação multipartidária segura não podem ser usadas para verificar se o provador possui montantes de transação suficientes no ambiente da blockchain sem revelar montantes de transação, endereços de contas e saldos de contas.

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 de chave pública complexa, e sua implementação repetida não oferece a usuários maliciosos a oportunidade de obter informações úteis adicionais. Através do ZKP, o verificador é capaz de confirmar se o provador tem um montante de transação suficiente sem revelar quaisquer dados de transação privados. O processo de verificação inclui a geração de uma prova contendo o montante de transação que o provador afirma, que é então transmitida ao verificador, que realiza cálculos predefinidos sobre a prova e produz o resultado final do cálculo, levando à conclusão de aceitar ou não a declaração do provador. Se a declaração do provador for aceita, significa que eles possuem um montante de transação suficiente. O processo de verificação mencionado pode ser registrado na blockchain, sem qualquer falsificação.

A característica do ZKP faz com que desempenhe um papel central nas transações de blockchain e nas aplicações de criptomoeda, especialmente na proteção da privacidade e na escalabilidade da rede, tornando-se não apenas o foco de pesquisa acadêmica, mas amplamente considerado uma das inovações tecnológicas mais importantes desde a implementação bem-sucedida da tecnologia de livro-razão distribuído — especialmente o Bitcoin. Ao mesmo tempo, também é uma pista chave para aplicações industriais e investimento de risco.

Assim, muitos projetos de rede baseados em zk-SNARKs surgiram, como ZkSync, StarkNet, Mina, Filecoin e Aleo. Com o desenvolvimento desses projetos, inovações algorítmicas relacionadas aos zk-SNARKs estão surgindo continuamente, com relatos de novos algoritmos sendo lançados quase toda semana. Além disso, o desenvolvimento de hardware relacionado à tecnologia zk-SNARKs também está progredindo rapidamente, incluindo chips otimizados especificamente para zk-SNARKs. Por exemplo, projetos como Ingonyama, Irreducible e Cysic já completaram captações de fundos em larga escala; esses avanços não apenas demonstram o rápido progresso da tecnologia zk-SNARKs, mas também refletem a transição de hardware genérico para hardware dedicado, como GPUs, FPGAs e ASICs.

Esses avanços indicam que a tecnologia zk-SNARKs não é apenas uma importante quebra de paradigma no campo da criptografia, mas também uma força motriz crucial para a realização de aplicações mais amplas da tecnologia blockchain - especialmente em termos de aumentar a proteção da privacidade e a capacidade de processamento.

Portanto, decidimos organizar sistematicamente o conhecimento relacionado aos zk-SNARKs ( ZKP ), para melhor apoiar nossas decisões de investimento futuras. Para isso, revisamos de forma abrangente os principais artigos acadêmicos sobre ZKP, classificados com base na relevância e no número de citações (; ao mesmo tempo, também analisamos detalhadamente as informações e os white papers dos projetos líderes na área, classificados com base na sua dimensão de financiamento ). Esta coleta e análise abrangente de informações forneceu uma base sólida para a redação deste documento.

( Uma introdução ao conhecimento básico sobre zk-SNARKs

)# 1. Visão Geral

Em 1985, os acadêmicos Goldwasser, Micali e Rackoff apresentaram pela primeira vez a prova de conhecimento zero no artigo "The Knowledge Complexity of Interactive Proof-Systems", definindo os conceitos de Prova de Conhecimento Zero, ZKP, e Conhecimento Interativo Zero, IZK. Este artigo é a base da prova de conhecimento zero e definiu muitos conceitos que influenciaram a pesquisa acadêmica subsequente. Por exemplo, a definição de conhecimento é "saída de um cálculo inviável", ou seja, o conhecimento deve ser uma saída e ser um cálculo inviável, o que significa que não pode ser uma função simples, mas deve ser uma função complexa. O cálculo inviável pode ser entendido como um problema NP, ou seja, um problema cuja solução pode ser verificada em tempo polinomial, onde o tempo polinomial refere-se 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 na ciência da computação para medir a eficiência e a viabilidade de algoritmos. Devido à complexidade do processo de resolução de problemas NP, ele é considerado um cálculo inviável; no entanto, seu processo de verificação é relativamente simples, tornando-o muito adequado para a validação de provas de conhecimento zero.

Um exemplo clássico de um problema NP é o problema do caixeiro viajante, onde é necessário encontrar o caminho mais curto para visitar uma série de cidades e retornar ao ponto de partida. Embora encontrar o caminho mais curto possa ser difícil, verificar se um caminho dado é o mais curto é 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 "knowledge complexity" ###knowledge complexity ### em seu artigo, para quantificar a quantidade de conhecimento que o provador vaza ao verificador em sistemas de prova interativa. Eles também propuseram sistemas de prova interativa (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 e outros, é um tipo especial de prova interativa, onde o verificador não obtém nenhuma informação adicional além do valor de verdade da declaração durante o processo de verificação; e foram apresentadas três características básicas que incluem:

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

  2. Confiabilidade ( solidez ): 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 recebe apenas a informação de que "o provador possui este conhecimento", sem obter qualquer conteúdo adicional.

(# 2.zk-SNARKs示例

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 revelar diretamente s. Seja o número secreto s;

Escolha dois grandes números primos p e q, calcule o produto deles n. Defina os números primos p e q, calcule o n obtido;

Calcule 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 infira s.

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

Segundo passo: desafiar )Challenge(

O validador escolhe aleatoriamente uma posição a) que pode ser 0 ou 1(, e depois a envia ao provador. Este "desafio" determina os passos que o provador precisa seguir a seguir.

Terceiro passo: resposta )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 aleatório que ele escolheu anteriormente ).

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

Por fim, o verificador valida se g^2 mod n é igual a xa^v mod n com base no g recebido. Se a igualdade for verdadeira, o verificador aceita a prova. Quando a=0, o verificador calcula g^2 mod n, e do lado direito valida xa^v mod n; quando a=1, o verificador calcula g^2 mod n, e do lado direito valida xa^v mod n.

Aqui, vemos que o g^2 mod n calculado pelo validador = xa^v mod n indica que o provedor conseguiu passar pelo processo de validação com sucesso, sem revelar seu número secreto s. Aqui, como a pode apenas assumir 0 ou 1, há apenas duas possibilidades, e a probabilidade de o provedor passar na validação por sorte quando a é 0 é 1/2. Mas o validador então desafia o provedor n vezes, e o provedor muda continuamente os números relevantes, submetendo-os ao validador, e sempre consegue passar pelo processo de validação. Assim, a probabilidade de o provedor passar na validação por sorte ( 1/2)^n ( tende para 0), provando que o provedor realmente conhece um número secreto s. Este exemplo demonstra a integridade, confiabilidade e a propriedade de zero conhecimento do sistema de prova de zero conhecimento.

( Dois, zk-SNARKs não interativos

)# 1. Contexto

zk-SNARKs(ZKP) na concepção tradicional geralmente são formas de protocolos interativos e online; por exemplo, o protocolo Sigma geralmente requer de três a cinco rodadas de interação para completar 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. Proposta de NIZK

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
  • 8
  • Compartilhar
Comentário
0/400
GhostAddressHuntervip
· 13h atrás
Não entendo, mas é muito chique.
Ver originalResponder0
CommunityLurkervip
· 07-15 08:41
Eu já estou a estudar este número zero há 5 anos.
Ver originalResponder0
LiquidationWatchervip
· 07-13 12:17
Escrevi o que tinha a dizer, agora vamos falar de dinheiro, certo?
Ver originalResponder0
BoredWatchervip
· 07-13 12:17
Assim que falei sobre zk, não vai ficar no ar.
Ver originalResponder0
SybilSlayervip
· 07-13 12:16
Está muito puxado, camarada.
Ver originalResponder0
BrokenYieldvip
· 07-13 12:14
outro ciclo de hype zk... já vi este filme antes em 2019 e todos sabemos como isso acabou smh
Ver originalResponder0
SchrodingerWalletvip
· 07-13 12:12
Alguém acordou o ZKEVM novamente?
Ver originalResponder0
MissedTheBoatvip
· 07-13 12:09
Escrevi o dia todo e ainda é melhor ir para a zona zk
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)