Revisão da tecnologia zk-SNARKs e sua aplicação no campo da Blockchain
Resumo
zk-SNARKs(ZKP) tecnologia é amplamente considerada uma das inovações mais importantes no campo do Blockchain, e também tem sido um foco importante de investimento de risco nos últimos anos. Este artigo fornece uma revisão sistemática do desenvolvimento da tecnologia ZKP ao longo de quase 40 anos e das pesquisas mais recentes.
Primeiro, foram apresentados os conceitos básicos do ZKP e o contexto histórico. Em seguida, foi feita uma análise detalhada da tecnologia ZKP baseada em circuitos, incluindo o design, aplicação e métodos de otimização de modelos como zk-SNARKs, Ben-Sasson, Pinocchio, Bulletproofs e Ligero. No que diz respeito ao 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 descreve o funcionamento e os métodos de otimização do zero conhecimento Rollup(ZK Rollup) como uma solução de escalonamento 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 da privacidade no Blockchain.
Através da análise dessas tecnologias e tendências de desenvolvimento mais recentes, este artigo fornece uma perspectiva abrangente para entender e aplicar a tecnologia ZKP, mostrando seu enorme potencial para aumentar a eficiência e a segurança dos sistemas Blockchain, oferecendo referências importantes para decisões de investimento futuras.
Índice
Prefácio
Um. Conhecimentos básicos sobre zk-SNARKs
Resumo
zk-SNARKs exemplo
Dois, zk-SNARKs não interativos
Background
A proposta de NIZK
Transformação Fiat-Shamir
Jens Groth e sua pesquisa
Outras pesquisas
Três, zk-SNARKs baseados em circuitos
Contexto
Conceitos e características básicas do modelo de circuito
Design e aplicação de circuitos em zk-SNARKs
Defeitos e desafios potenciais
Quatro, modelo de zk-SNARKs
Contexto
Modelos de Algoritmos Comuns
Proposta baseada em PCP linear e problema do logaritmo discreto
Proposta baseada em prova de pessoas comuns
Prova de conhecimento zero verificável baseada em probabilidade (PCP)
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 de conhecimento nulo
Contexto
Classificação do ZKVM existente
Paradigma de Frontend e Backend
Vantagens e desvantagens do paradigma ZKVM
Seis, Visão Geral e Desenvolvimento do zk-SNARKs na Máquina Virtual do Ethereum
Contexto
Como funciona o ZKEVM
O processo de implementação do ZKEVM
Características do ZKEVM
Sete, Visão geral e desenvolvimento do esquema de rede de segunda camada de zk-SNARKs
Contexto
O mecanismo de funcionamento do ZK Rollup
Desvantagens e otimizações do ZK Rollup
Oitavo, direções futuras do zk-SNARKs
Acelerar o desenvolvimento do ambiente de computação
A proposta e o desenvolvimento do ZKML
Desenvolvimento relacionado com a tecnologia de escalabilidade ZKP
Desenvolvimento da interoperabilidade ZKP
Nove, conclusão
Referências
Prefácio
A Internet está entrando na era Web3, com aplicações de blockchain (DApps) a desenvolver-se rapidamente. Nos últimos anos, as plataformas de blockchain têm suportado diariamente atividades de milhões de usuários, processando bilhões de transações. Essas transações geram uma grande quantidade de dados sensíveis relacionados à identidade dos usuários, montantes das transações, endereços de contas e saldos. Devido à abertura e transparência do 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 do saldo da conta e do montante das transações, mas não consegue proteger a segurança do endereço da conta. 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 consegue proteger o saldo da conta e o montante das transações. A computação multipartidária segura permite distribuir tarefas de computação entre vários participantes, sem que qualquer participante conheça os dados dos outros participantes, protegendo efetivamente a segurança do saldo da conta e do montante das transações, mas também não pode proteger a segurança do endereço da conta. Além disso, essas tecnologias não podem ser usadas para verificar se o provedor possui um montante de transação suficiente no ambiente blockchain sem revelar o montante da transação, o endereço da conta e o saldo da conta.
zk-SNARKs é uma solução mais abrangente, um protocolo de verificação que permite verificar a validade de certas proposições sem revelar quaisquer dados intermediários. Este protocolo não requer uma infraestrutura de chave pública complexa, e sua implementação repetida 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. O processo de verificação inclui a geração de uma prova que contém o montante da transação declarado pelo provador, que é então passada ao verificador, que realiza cálculos predefinidos sobre a prova e gera o resultado final dos cálculos, chegando assim à conclusão sobre a aceitação da declaração do provador. Se a declaração do provador for aceita, isso significa que eles possuem um montante de transação suficiente. O processo de verificação mencionado pode ser registrado no Blockchain, sem qualquer falsificação.
A característica do ZKP faz com que desempenhe um papel central nas transações de blockchain e aplicações de criptomoeda, especialmente em proteção de privacidade e escalabilidade da rede, tornando-se não apenas o foco de pesquisas acadêmicas, 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, além de ser uma pista de destaque para aplicações da indústria e capital de 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 algorítmicas sobre ZKP têm surgido continuamente, com relatos de novos algoritmos sendo lançados quase toda semana. Além disso, o desenvolvimento de hardware relacionado à tecnologia ZKP também está avançando rapidamente, incluindo chips otimizados especificamente para ZKP. Por exemplo, alguns projetos já concluíram captações de recursos em grande 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 especializado, como GPU, FPGA e ASIC.
Esses avanços indicam que a tecnologia zk-SNARKs não é apenas um importante marco no campo da criptografia, mas também é um impulso crucial 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 compilar sistematicamente o conhecimento relacionado a zk-SNARKs ( ZKP ) para melhor nos auxiliar na tomada de 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 as informações e white papers dos projetos líderes na área (, ordenando-os de acordo com seu tamanho de financiamento ). Esta coleta e análise abrangentes de informações 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 zk-SNARKs no artigo "The Knowledge Complexity of Interactive Proof-Systems". Este artigo é a base da 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 geralmente 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 dos 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 da zk-SNARKs.
Um exemplo clássico de problema NP é o problema do caixeiro viajante, onde se deve 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 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 interativa. Eles também propuseram sistemas de prova interativa (Interactive Proof Systems, IPS), onde o provador (Prover) e o verificador (Verifier) provam a veracidade de uma declaração através de múltiplas interações.
Em suma, a definição de zk-SNARKs resumida por Goldwasser e outros é um tipo especial de prova interativa, na qual 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 for verdadeira, um provador honesto pode convencer um verificador honesto desse fato;
Confiabilidade: se o provador não souber o conteúdo da declaração, ele só poderá enganar o verificador com uma probabilidade insignificante;
Propriedade de Zero Conhecimento: 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 conseguir obter qualquer conteúdo adicional.
(# 2.zk-SNARKs示例
Para melhor compreender os zk-SNARKs e as suas propriedades, aqui está um exemplo de como verificar 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 certo número secreto s, mas sem mostrar s diretamente. Defina o número secreto;
Escolha dois grandes números primos p e q, e calcule seu produto. Defina o número primo e, calcule o resultado;
Cálculo, aqui, v é enviado ao verificador como parte da prova, mas não é suficiente para que o verificador ou qualquer espectador deduza s.
Escolha um número inteiro aleatório r, calcule e envie ao validador. Este valor x é usado no processo de validação subsequente, mas também não expõe s. Seja um número inteiro aleatório, calcule o resultado.
Segundo passo: Desafio )Challenge###
O validador escolhe aleatoriamente um bit a( que pode ser 0 ou 1), e então envia para o provedor de provas. Este "desafio" determina os próximos passos que o provedor de provas precisa seguir.
Terceiro passo: resposta (Response)
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. Se o verificador enviar um bit aleatório, com base no valor de a, o provador calcula ;
Por fim, o validador verifica se g recebido é igual a . Se a equação for verdadeira, o validador aceita esta prova. Quando , o validador calcula , verificando o lado direito; quando , o validador calcula , verificando o lado direito.
Aqui, vemos que o validador calcula que o provador teve sucesso no processo de validação, enquanto não revelou seu número secreto s. Aqui, como a pode apenas assumir 0 ou 1, existem apenas duas possibilidades, a probabilidade de o provador passar na validação por sorte é ( quando a assume 0 ). Mas o validador, então, desafia o provador novamente, o provador muda constantemente os números relacionados, submetendo-os ao validador, e sempre consegue passar com sucesso pelo processo de validação, assim, a probabilidade de o provador passar na validação por sorte ( se aproxima infinitamente de 0), provando que o provador realmente conhece um número secreto s. Este exemplo demonstra a integridade, a confiabilidade e a propriedade de zero conhecimento do sistema 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 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 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 conhecimento zero ###, provando que, sem a necessidade de múltiplas interações, o provador ( e o verificador ) ainda podem completar o processo de autenticação. Essa quebra de paradigma tornou viável a realização de transações instantâneas, votação e aplicações em blockchain.
Eles propuseram provas de conhecimento zero não interativas ###NIZK( que podem
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.
6 gostos
Recompensa
6
4
Partilhar
Comentar
0/400
GateUser-afe07a92
· 08-05 10:44
Que tecnologia obscura, não consigo entender...
Ver originalResponder0
WalletDoomsDay
· 08-05 10:42
zkp é o remédio da Carteira
Ver originalResponder0
BanklessAtHeart
· 08-05 10:30
A luz de L2 está em zk
Ver originalResponder0
WenAirdrop
· 08-05 10:14
Promoções no vazio ano após ano, o airdrop grátis faz suspirar.
Os últimos avanços e perspectivas de aplicação da tecnologia zk-SNARKs no campo da Blockchain
Revisão da tecnologia zk-SNARKs e sua aplicação no campo da Blockchain
Resumo
zk-SNARKs(ZKP) tecnologia é amplamente considerada uma das inovações mais importantes no campo do Blockchain, e também tem sido um foco importante de investimento de risco nos últimos anos. Este artigo fornece uma revisão sistemática do desenvolvimento da tecnologia ZKP ao longo de quase 40 anos e das pesquisas mais recentes.
Primeiro, foram apresentados os conceitos básicos do ZKP e o contexto histórico. Em seguida, foi feita uma análise detalhada da tecnologia ZKP baseada em circuitos, incluindo o design, aplicação e métodos de otimização de modelos como zk-SNARKs, Ben-Sasson, Pinocchio, Bulletproofs e Ligero. No que diz respeito ao 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 descreve o funcionamento e os métodos de otimização do zero conhecimento Rollup(ZK Rollup) como uma solução de escalonamento 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 da privacidade no Blockchain.
Através da análise dessas tecnologias e tendências de desenvolvimento mais recentes, este artigo fornece uma perspectiva abrangente para entender e aplicar a tecnologia ZKP, mostrando seu enorme potencial para aumentar a eficiência e a segurança dos sistemas Blockchain, oferecendo referências importantes para decisões de investimento futuras.
Índice
Prefácio
Um. Conhecimentos básicos sobre zk-SNARKs
Dois, zk-SNARKs não interativos
Três, zk-SNARKs baseados em circuitos
Quatro, modelo de zk-SNARKs
Cinco, Visão geral e desenvolvimento da máquina virtual de conhecimento nulo
Seis, Visão Geral e Desenvolvimento do zk-SNARKs na Máquina Virtual do Ethereum
Sete, Visão geral e desenvolvimento do esquema de rede de segunda camada de zk-SNARKs
Oitavo, direções futuras do zk-SNARKs
Nove, conclusão
Referências
Prefácio
A Internet está entrando na era Web3, com aplicações de blockchain (DApps) a desenvolver-se rapidamente. Nos últimos anos, as plataformas de blockchain têm suportado diariamente atividades de milhões de usuários, processando bilhões de transações. Essas transações geram uma grande quantidade de dados sensíveis relacionados à identidade dos usuários, montantes das transações, endereços de contas e saldos. Devido à abertura e transparência do 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 do saldo da conta e do montante das transações, mas não consegue proteger a segurança do endereço da conta. 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 consegue proteger o saldo da conta e o montante das transações. A computação multipartidária segura permite distribuir tarefas de computação entre vários participantes, sem que qualquer participante conheça os dados dos outros participantes, protegendo efetivamente a segurança do saldo da conta e do montante das transações, mas também não pode proteger a segurança do endereço da conta. Além disso, essas tecnologias não podem ser usadas para verificar se o provedor possui um montante de transação suficiente no ambiente blockchain sem revelar o montante da transação, o endereço da conta e o saldo da conta.
zk-SNARKs é uma solução mais abrangente, um protocolo de verificação que permite verificar a validade de certas proposições sem revelar quaisquer dados intermediários. Este protocolo não requer uma infraestrutura de chave pública complexa, e sua implementação repetida 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. O processo de verificação inclui a geração de uma prova que contém o montante da transação declarado pelo provador, que é então passada ao verificador, que realiza cálculos predefinidos sobre a prova e gera o resultado final dos cálculos, chegando assim à conclusão sobre a aceitação da declaração do provador. Se a declaração do provador for aceita, isso significa que eles possuem um montante de transação suficiente. O processo de verificação mencionado pode ser registrado no Blockchain, sem qualquer falsificação.
A característica do ZKP faz com que desempenhe um papel central nas transações de blockchain e aplicações de criptomoeda, especialmente em proteção de privacidade e escalabilidade da rede, tornando-se não apenas o foco de pesquisas acadêmicas, 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, além de ser uma pista de destaque para aplicações da indústria e capital de 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 algorítmicas sobre ZKP têm surgido continuamente, com relatos de novos algoritmos sendo lançados quase toda semana. Além disso, o desenvolvimento de hardware relacionado à tecnologia ZKP também está avançando rapidamente, incluindo chips otimizados especificamente para ZKP. Por exemplo, alguns projetos já concluíram captações de recursos em grande 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 especializado, como GPU, FPGA e ASIC.
Esses avanços indicam que a tecnologia zk-SNARKs não é apenas um importante marco no campo da criptografia, mas também é um impulso crucial 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 compilar sistematicamente o conhecimento relacionado a zk-SNARKs ( ZKP ) para melhor nos auxiliar na tomada de 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 as informações e white papers dos projetos líderes na área (, ordenando-os de acordo com seu tamanho de financiamento ). Esta coleta e análise abrangentes de informações 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 zk-SNARKs no artigo "The Knowledge Complexity of Interactive Proof-Systems". Este artigo é a base da 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 geralmente 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 dos 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 da zk-SNARKs.
Um exemplo clássico de problema NP é o problema do caixeiro viajante, onde se deve 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 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 interativa. Eles também propuseram sistemas de prova interativa (Interactive Proof Systems, IPS), onde o provador (Prover) e o verificador (Verifier) provam a veracidade de uma declaração através de múltiplas interações.
Em suma, a definição de zk-SNARKs resumida por Goldwasser e outros é um tipo especial de prova interativa, na qual 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 for verdadeira, um provador honesto pode convencer um verificador honesto desse fato;
Confiabilidade: se o provador não souber o conteúdo da declaração, ele só poderá enganar o verificador com uma probabilidade insignificante;
Propriedade de Zero Conhecimento: 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 conseguir obter qualquer conteúdo adicional.
(# 2.zk-SNARKs示例
Para melhor compreender os zk-SNARKs e as suas propriedades, aqui está um exemplo de como verificar 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 certo número secreto s, mas sem mostrar s diretamente. Defina o número secreto;
Escolha dois grandes números primos p e q, e calcule seu produto. Defina o número primo e, calcule o resultado;
Cálculo, aqui, v é enviado ao verificador como parte da prova, mas não é suficiente para que o verificador ou qualquer espectador deduza s.
Escolha um número inteiro aleatório r, calcule e envie ao validador. Este valor x é usado no processo de validação subsequente, mas também não expõe s. Seja um número inteiro aleatório, calcule o resultado.
Segundo passo: Desafio )Challenge###
O validador escolhe aleatoriamente um bit a( que pode ser 0 ou 1), e então envia para o provedor de provas. Este "desafio" determina os próximos passos que o provedor de provas precisa seguir.
Terceiro passo: resposta (Response)
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. Se o verificador enviar um bit aleatório, com base no valor de a, o provador calcula ;
Por fim, o validador verifica se g recebido é igual a . Se a equação for verdadeira, o validador aceita esta prova. Quando , o validador calcula , verificando o lado direito; quando , o validador calcula , verificando o lado direito.
Aqui, vemos que o validador calcula que o provador teve sucesso no processo de validação, enquanto não revelou seu número secreto s. Aqui, como a pode apenas assumir 0 ou 1, existem apenas duas possibilidades, a probabilidade de o provador passar na validação por sorte é ( quando a assume 0 ). Mas o validador, então, desafia o provador novamente, o provador muda constantemente os números relacionados, submetendo-os ao validador, e sempre consegue passar com sucesso pelo processo de validação, assim, a probabilidade de o provador passar na validação por sorte ( se aproxima infinitamente de 0), provando que o provador realmente conhece um número secreto s. Este exemplo demonstra a integridade, a confiabilidade e a propriedade de zero conhecimento do sistema 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 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 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 conhecimento zero ###, provando que, sem a necessidade de múltiplas interações, o provador ( e o verificador ) ainda podem completar o processo de autenticação. Essa quebra de paradigma tornou viável a realização de transações instantâneas, votação e aplicações em blockchain.
Eles propuseram provas de conhecimento zero não interativas ###NIZK( que podem