A aplicação e as tendências futuras da tecnologia de zk-SNARKs no Blockchain

Aplicação e desenvolvimento da tecnologia zk-SNARKs no campo do Blockchain

Resumo

Este artigo faz uma revisão sistemática da literatura histórica e das pesquisas mais recentes sobre a tecnologia de zk-SNARKs ao longo de quase quarenta anos. Primeiro, apresenta os conceitos básicos e o contexto histórico do ZKP, em seguida, analisa em profundidade a tecnologia ZKP baseada em circuitos, incluindo o design, a aplicação e os métodos de otimização dos modelos como zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs e Ligero. No campo do ambiente computacional, o artigo apresenta o ZKVM e o ZKEVM, explorando como eles melhoram a capacidade de processamento de transações, protegem a privacidade e aumentam a eficiência de verificação. O artigo também introduz o zero-knowledge Rollup como um mecanismo de trabalho e métodos de otimização para soluções de expansão Layer 2, assim como os últimos avanços em aceleração de hardware, soluções híbridas e ZK EVM dedicado.

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 de privacidade da Blockchain. Ao analisar essas tecnologias mais recentes e tendências de desenvolvimento, o artigo oferece uma perspectiva abrangente sobre a compreensão e aplicação das tecnologias ZKP, demonstrando seu enorme potencial para melhorar a eficiência e segurança dos sistemas Blockchain, fornecendo uma referência importante para futuras decisões de investimento.

( Índice

Introdução

Uma, conhecimento básico sobre zk-SNARKs

  1. Resumo
  2. Exemplo de zk-SNARKs

Dois, zk-SNARKs não interativos

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

Três, prova de conhecimento zero baseada 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, 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 em provas de pessoas comuns
  5. Prova de conhecimento zero verificável baseada em probabilidade ) PCP ###
  6. Classificação na fase de configuração com base no CPC

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

  1. Contexto
  2. Classificação do ZKVM existente
  3. Paradigma de Frontend e Backend
  4. Vantagens e desvantagens do paradigma ZKVM

Seis, Visão geral e desenvolvimento da Máquina Virtual Ethereum de zk-SNARKs

  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 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 do ambiente de computação
  2. Proposta e desenvolvimento do ZKML
  3. Desenvolvimento relacionado à tecnologia de expansão de ZKP
  4. Desenvolvimento da interoperabilidade ZKP

Nove, Conclusão

( Prefácio

Nos últimos anos, o desenvolvimento de aplicações Blockchain )DApps ### tem sido rápido, com novas aplicações surgindo diariamente. As plataformas Blockchain suportam as atividades de milhões de usuários todos os dias, 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, montante da transação, endereço da conta e saldo da conta. Dada a abertura e a transparência da Blockchain, os dados armazenados são acessíveis 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 das contas e dos 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 dos endereços das contas, mas não consegue proteger os saldos das contas e os 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 dos outros, protegendo efetivamente a segurança dos saldos das contas e dos 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 blockchain sem revelar os montantes das transações, os endereços das contas e os saldos das 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 infraestruturas complexas de chave pública, e sua implementação repetida não oferece aos usuários maliciosos a oportunidade de obter informações úteis adicionais. Através do ZKP, o verificador pode validar se o provedor possui montantes de transação suficientes sem divulgar quaisquer dados de transação privados. O processo de verificação inclui a geração de uma prova que contém o montante da transação que o provedor afirma ter, que é então passada ao verificador, que realiza cálculos pré-definidos sobre a prova e produz o resultado final do cálculo, permitindo chegar à conclusão sobre a aceitação da declaração do provedor. Se a declaração do provedor for aceita, isso significa que eles possuem montantes de transação suficientes. O processo de verificação acima pode ser registrado no Blockchain, sem qualquer falsificação.

A característica do ZKP faz com que desempenhe um papel central nas transações em Blockchain e nas aplicações de criptomoedas, especialmente na proteção da privacidade e na escalabilidade da rede, tornando-se não apenas o foco de 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 – especialmente o Bitcoin. Também é uma pista de destaque para aplicações na indústria e investimento de risco.

Como resultado, diversos projetos de rede baseados em ZKP surgiram, como ZkSync, StarkNet, Mina, Filecoin e Aleo. Com o desenvolvimento desses projetos, inovações algorítmicas em ZKP têm surgido constantemente, com relatos de novos algoritmos sendo lançados quase todas as semanas. Além disso, o desenvolvimento de hardware relacionado à tecnologia ZKP também está avançando rapidamente, incluindo chips otimizados especificamente para ZKP. Por exemplo, projetos como Ingonyama, Irreducible e Cysic já concluíram captações de recursos em larga escala; 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 dedicado, como GPU, FPGA e ASIC.

Esses avanços indicam que a tecnologia zk-SNARKs não é apenas um importante avanço no campo da criptografia, mas também um motor chave para a realização de aplicações mais amplas da tecnologia Blockchain — especialmente na melhoria da proteção da privacidade e da capacidade de processamento.

Portanto, decidimos organizar sistematicamente o conhecimento relacionado ao zk-SNARKs ( ZKP ) para melhor auxiliar nossas decisões de investimento futuras. Para isso, revisamos de forma abrangente os principais artigos acadêmicos relacionados ao ZKP (, ordenando-os com base na relevância e no número de citações ); ao mesmo tempo, também analisamos detalhadamente os dados e os white papers dos projetos líderes na área (, classificando-os de acordo com o tamanho do financiamento ). Esta coleta e análise abrangentes de dados forneceram uma base sólida para a redação deste artigo.

( Uma, conhecimentos básicos 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 "A Complexidade do Conhecimento de Sistemas de Provas Interativas", definindo 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 sim 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 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 na 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 inviáveis; no entanto, seu processo de verificação é relativamente simples, tornando-os muito adequados para a validação de provas de conhecimento zero.

Um exemplo clássico de problema NP é o problema do vendedor 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, dado um caminho, verificar se esse caminho é 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 em seu artigo o conceito de "complexidade do conhecimento" ### knowledge complexity ###, usado para quantificar a quantidade de conhecimento que o provador vaza para o 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 et al. é um tipo especial de prova interativa, onde o verificador não obtém nenhuma informação adicional além do valor verdadeiro da afirmação durante o processo de verificação; e foram apresentadas três características básicas, incluindo:

  1. Completude ( completeness ): Se a prova for verdadeira, o provedor honesto pode convencer o validador 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 apenas obtém a informação de que "o provador possui este conhecimento", sem obter qualquer conteúdo adicional.

(# 2.zk-SNARKs示例

Para melhor entender os zk-SNARKs e suas propriedades, segue um exemplo de como verificar se um provador possui certas informações privadas, que se divide 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=5;

Escolha dois grandes números primos p e q, calcule o produto deles n. Suponha que o número primo p=11, q=13, o n calculado é 143;

Calcule v=s^2 mod n, aqui, v é enviado ao verificador como parte da prova, mas não é suficiente para que o verificador ou qualquer espectador deduza s. v=5^2 mod 143=25;

Escolha aleatoriamente um inteiro r, calcule x=r^2 mod n e envie para o verificador. Este valor x é utilizado no processo de verificação subsequente, mas também não expõe s. Suponha que o inteiro aleatório r=7, o x calculado é 49.

Segundo passo: desafio )Challenge(

O validador seleciona aleatoriamente um bit a) que pode ser 0 ou 1(, e então o envia ao provador. Este "desafio" determina os próximos passos que o provador precisa 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 que ele escolheu aleatoriamente anteriormente ).

Se a=1, o provador calcula g=rs mod n e envia. Suponha que o bit aleatório enviado pelo validador a=1, de acordo com o valor de a, o provador calcula g=75 mod 143=35;

Por fim, o validador verifica se x é igual a g^2/v^a mod n com base no g recebido. Se a igualdade for verdadeira, o validador aceita esta prova. Quando a=0, o validador calcula g^2 mod n, validando à direita x=49; quando a=1, o validador calcula g^2/v mod n=35^2/25 mod 143=49, validando à direita x=49.

Aqui, vemos que o x calculado pelo validador indica que o provador conseguiu passar pelo processo de validação sem revelar seu número secreto s. Aqui, como a pode apenas ser 0 ou 1, existem apenas duas possibilidades, a probabilidade de o provador passar na validação por sorte é (1/2) quando a é 0. Mas o validador então desafia o provador n vezes, o provador muda constantemente os números relevantes e os submete ao validador, e consegue sempre passar pelo processo de validação, assim a probabilidade de o provador passar na validação por sorte é (1/2)^n, que se aproxima infinitamente de 0(, provando assim que o provador 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 é uma forma de protocolo interativo 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, frequentemente 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 NIZK não interativa de zk-SNARKs (, provando que é possível sem múltiplas interações.

ZK4.96%
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
  • 2
  • Partilhar
Comentar
0/400
GweiTooHighvip
· 08-04 10:36
Ou seja, o código está a cantar enquanto a carteira está a copiar.
Ver originalResponder0
GasSavingMastervip
· 08-04 10:32
zk tão popular que está sempre a perder para aquele circuito
Ver originalResponder0
  • Pino
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)