zk-SNARKs tecnologia revolucionária Blockchain: do Algoritmo ao hardware, um progresso abrangente

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

Resumo

A tecnologia de Provas de Conhecimento Zero (ZKP) é amplamente considerada uma das inovações mais importantes na área da Blockchain. Este artigo apresenta uma revisão sistemática da literatura histórica e das pesquisas mais recentes sobre a tecnologia ZKP nos últimos quarenta anos.

Primeiro, foram apresentados os conceitos básicos e o histórico do ZKP. Em seguida, a análise focou 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 campo do ambiente computacional, este artigo introduz o ZKVM e o ZKEVM, explorando como eles 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 ZK Rollup como um mecanismo de trabalho e métodos de otimização da solução de escalonamento Layer 2, além dos últimos avanços em aceleração de hardware, soluções híbridas e ZK EVM dedicadas.

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 últimas tecnologias e tendências de desenvolvimento, este artigo oferece uma perspectiva abrangente para entender e aplicar a tecnologia ZKP, demonstrando seu enorme potencial para melhorar a eficiência e a segurança dos sistemas Blockchain, fornecendo uma referência importante para as decisões de investimento futuras.

Índice

Introdução

Um, Conhecimentos básicos sobre zk-SNARKs

  1. Visão geral
  2. Exemplo de zk-SNARKs

Dois, zk-SNARKs não interativos

  1. Contexto
  2. 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 circuito

  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. Esquema baseado em PCP linear e problema do logaritmo discreto
  4. Proposta baseada em provas de pessoas comuns
  5. Zero conhecimento baseado em prova de compromisso probabilístico (PCP)
  6. Classificação da fase de configuração baseada em CPC

Cinco, visão geral e desenvolvimento do zk-SNARKs virtual machine.

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

Seis, Visão Geral e Desenvolvimento da Máquina Virtual Ethereum 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 segunda camada zk-SNARKs

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

Oitava, a direção futura do zk-SNARKs

  1. Acelerar o desenvolvimento do ambiente de cálculo
  2. A proposta e desenvolvimento do ZKML
  3. Desenvolvimento relacionado à tecnologia de escalabilidade zk-SNARKs
  4. O desenvolvimento da interoperabilidade ZKP

Nove, Conclusão

Referências

Introdução

A internet está entrando na era Web3, e o desenvolvimento de aplicações de Blockchain está ocorrendo rapidamente. Nos últimos anos, 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, como identidade do usuário, montante da transação, endereço da conta e saldo da conta. Dada a 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 segura multipartidária e zk-SNARKs. A criptografia homomórfica permite executar 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 pode 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 segura multipartidária permite distribuir tarefas de computação entre vários participantes, sem que qualquer participante conheça os dados de outros participantes, protegendo efetivamente a segurança dos saldos das contas e dos montantes das transações, mas também não pode proteger a segurança dos endereços das contas. Além disso, a criptografia homomórfica, assinaturas em anel e computação segura multipartidária não podem ser usadas para verificar se o provador possui montantes de transação suficientes 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 uma infraestrutura complexa 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 validador pode verificar se o provador possui um montante de transação suficiente, sem vazar 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 provador afirma, que é então transmitida ao validador. O validador realiza cálculos predefinidos sobre a prova e produz o resultado final do cálculo, chegando a uma conclusão sobre a aceitação da declaração do provador. Se a declaração do provador for aceita, isso significa que eles têm um montante de transação suficiente. O processo de verificação acima pode ser registrado na 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 criptomoeda, especialmente em termos de proteção da privacidade e escalabilidade da rede, tornando-se não apenas o foco da pesquisa acadêmica, mas também 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 das principais áreas de aplicação da indústria e de investimento de risco.

Assim, muitos projetos de rede baseados em ZKP surgiram, como ZkSync, StarkNet, Mina, Filecoin e Aleo. Com o desenvolvimento desses projetos, inovações algorítmicas relacionadas ao ZKP estão surgindo a todo momento, com relatos de novos algoritmos sendo lançados praticamente 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á completaram captações de fundos em larga escala, 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 dedicado, como GPU, FPGA e ASIC.

Esses avanços indicam que a tecnologia zk-SNARKs não é apenas uma importante conquista no campo da criptografia, mas também uma força motriz crucial para a realização de aplicações mais amplas da tecnologia Blockchain.

Portanto, decidimos organizar sistematicamente o conhecimento relacionado a zk-SNARKs, 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 a documentação e os white papers dos projetos líderes nesse campo. Essa coleta e análise abrangente de informações forneceram uma base sólida para a redação deste artigo.

Um, fundamentos de zk-SNARKs

1. Visão Geral

Em 1985, os acadêmicos Goldwasser, Micali e Rackoff apresentaram pela primeira vez zk-SNARKs e provas interativas de conhecimento no artigo "The Knowledge Complexity of Interactive Proof-Systems". Este artigo é a obra fundadora dos zk-SNARKs, definindo muitos conceitos que influenciaram pesquisas acadêmicas subsequentes. Por exemplo, a definição de conhecimento é "saída de cálculo não viável", ou seja, o conhecimento deve ser uma saída e ser 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. O cálculo não viável pode ser entendido geralmente como um problema NP, ou seja, um problema cuja solução pode ser verificada quanto à sua correção em tempo polinomial; 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 padrão 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 não viáveis; no entanto, seu processo de verificação é relativamente simples, tornando-os muito adequados para a verificação de zk-SNARKs.

Um exemplo clássico de problema NP é o problema do vendedor viajante, que consiste em 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, verificar se um determinado 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 e outros introduziram o conceito de "complexidade do conhecimento" em seu artigo, para quantificar a quantidade de conhecimento que o provador revela ao verificador em sistemas de prova interativos. Eles também propuseram um sistema de prova interativo, onde o provador e o verificador 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 afirmação durante o processo de verificação; e foram propostas três características básicas, incluindo:

1.Completude: Se a prova é verdadeira, o provador honesto pode convencer o verificador honesto desse fato;

  1. Confiabilidade: se o provador não souber o conteúdo da declaração, ele só poderá enganar o verificador com uma probabilidade insignificante;

  2. Propriedade de conhecimento zero: após a conclusão do processo de prova, o verificador obtém apenas a informação de que "o provador possui este conhecimento", sem acesso a qualquer conteúdo adicional.

2. Exemplo de zk-SNARKs

Para melhor compreender os 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

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;

Escolha dois grandes números primos p e q, calcule o seu produto. Defina a soma dos primos e calcule o resultado;

Cálculo, aqui, v como parte da prova é enviado ao verificador, mas não é suficiente para que o verificador ou qualquer observador deduza s.

Escolha aleatoriamente um inteiro r, calcule e envie ao validador. Este valor x é usado no processo de verificação subsequente, mas também não expõe s. Considere um inteiro aleatório, calculado.

Segundo passo: desafio

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

Terceiro passo: resposta

Com base no valor a enviado pelo validador, o provador responde:

Se o provador enviar (, aqui r é o número que ele escolheu aleatoriamente anteriormente ).

Se o provador calcular e enviar. Suponha que o verificador envie um bit aleatório, com base no valor de a, o provador calcula;

Por fim, o validador verifica se o g recebido é igual. Se a equação for verdadeira, o validador aceita esta prova. Naquele momento, o validador calcula a validação do lado direito; Naquele momento, o validador calcula a validação do lado direito.

Aqui, vemos que a explicação fornecida pelo validador demonstra que o provador conseguiu passar pelo processo de validação, sem revelar seu número secreto s. Aqui, como a pode assumir apenas 0 ou 1, existem apenas duas possibilidades, e a probabilidade de o provador passar na validação apenas por sorte é ( quando a é 0. Mas o validador então desafia o provador novamente, e o provador muda continuamente os números relevantes, enviando-os ao validador, e sempre consegue passar pelo processo de validação, assim a probabilidade de o provador passar na validação apenas por sorte se aproxima infinitamente de 0), provando 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 provas de zero conhecimento.

Dois, zk-SNARKs não interativos

( 1. Contexto

Os zk-SNARKs, no conceito tradicional, geralmente são uma forma de protocolo interativo e online; por exemplo, o protocolo Sigma normalmente 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 especialmente importante.

) 2. A proposta de NIZK

Em 1988, Blum, Feldman e Micali propuseram pela primeira vez o conceito de zk-SNARKs, provando que, sem a necessidade de múltiplas interações, o provador e o verificador ainda podem completar o processo de autenticação. Esse avanço tornou viável a realização de transações instantâneas, votação e aplicações de Blockchain.

Eles propuseram que os zk-SNARKs não interativos podem ser divididos em três fases:

  1. Definir
  2. Cálculo
  3. Verificação

Na fase de configuração, utiliza-se uma função de cálculo para converter parâmetros de segurança em conhecimento público, normalmente codificados em uma string de referência comum. Esta é a forma de calcular a prova e verificar utilizando os parâmetros e algoritmos corretos.

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

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 que eles propuseram, que é baseado em todos os participantes compartilhando uma palavra

ZK-2.13%
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
  • 5
  • Compartilhar
Comentário
0/400
GweiWatchervip
· 16h atrás
O conhecimento zero ainda está em fase inicial
Ver originalResponder0
LiquidationSurvivorvip
· 19h atrás
O futuro pertence ao conhecimento zero
Ver originalResponder0
TestnetNomadvip
· 19h atrás
O futuro da computação privada
Ver originalResponder0
PhantomMinervip
· 19h atrás
ZK pode mudar o futuro
Ver originalResponder0
WhaleWatchervip
· 19h atrás
Um bom artigo merece ser apoiado
Ver originalResponder0
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)