Guia para iniciantes em provas de conhecimento zero: histórico de desenvolvimento, aplicações e princípios básicos

iniciantes1/6/2024, 7:13:44 PM
Este artigo apresenta sistematicamente a história do desenvolvimento e os princípios básicos das provas de conhecimento zero.

A atual taxa de crescimento de projetos à prova de conhecimento zero (ZKP) na indústria de blockchain é surpreendente, especialmente o aumento de aplicações ZKP nos dois níveis de expansão e proteção de privacidade, que nos expôs a uma variedade de projetos à prova de conhecimento zero. Devido à natureza extremamente matemática do ZKP, é significativamente mais difícil para os entusiastas da criptografia entendê-lo em profundidade. Portanto, também esperamos resolver algumas mudanças na teoria e aplicação do ZKP desde o início, e explorar o impacto e o valor na indústria criptográfica com os leitores - aprendendo juntos através de vários relatórios, que também servem como um resumo dos pensamentos do HashKey Equipe de pesquisa de capital. Este artigo é o primeiro da série, apresentando principalmente o histórico de desenvolvimento, aplicações e alguns princípios básicos do ZKP.

1. A história das provas de conhecimento zero

O moderno sistema de prova de conhecimento zero originou-se do artigo publicado em conjunto por Goldwasser, Micali e Rackoff: The Knowledge Complexity of Interactive Proof Systems (GMR85), que foi proposto em 1985 e publicado em 1989. Este artigo explica principalmente quanto conhecimento precisa ser trocado após K rodadas de interações em um sistema interativo para provar que uma afirmação está correta. Se o conhecimento trocado puder ser zerado, isso é chamado de prova de conhecimento zero. Supõe-se que o provador tenha recursos ilimitados e o verificador apenas recursos limitados. O problema com os sistemas interativos é que a prova não é totalmente demonstrável matematicamente, mas correta no sentido probabilístico, embora a probabilidade seja muito pequena (1/2^n).

Portanto, o sistema interativo não é perfeito e possui apenas completude aproximada. O sistema não interativo (NP) nascido nesta base tem completude e se torna a escolha perfeita para o sistema à prova de conhecimento zero.

Os primeiros sistemas de prova de conhecimento zero careciam de eficiência e usabilidade, por isso sempre permaneceram no nível teórico. Só nos últimos 10 anos é que começaram a florescer. À medida que a criptografia se tornou proeminente na criptografia, as provas de conhecimento zero vieram à tona e se tornaram uma direção crucial. Em particular, o desenvolvimento de um protocolo geral, não interativo e de prova de conhecimento zero com tamanho de prova limitado é uma das direções de exploração mais críticas.

Basicamente, a prova de conhecimento zero é uma compensação entre a velocidade da prova, a velocidade da verificação e o tamanho da prova. O protocolo ideal é prova rápida, verificação rápida e prova pequena.

O avanço mais importante na prova de conhecimento zero é o artigo de Groth de 2010, Short Pairing-based Non-interactive Zero-Knowledge Arguments, que também é o pioneiro teórico do grupo mais importante de zk-SNARKs em ZKP.

O desenvolvimento mais importante na aplicação da prova de conhecimento zero é o sistema de prova de conhecimento zero utilizado pela Z-cash em 2015, que protegeu a privacidade das transações e valores. Mais tarde, desenvolveu-se na combinação de zk-SNARK e contratos inteligentes, e zk-SNARK entrou nos cenários de aplicação mais amplos.

Algumas conquistas acadêmicas importantes durante este período incluem:

  1. Pinóquio (PGHR13) em 2013: Pinóquio: Computação Verificável Quase Prática, que comprime o tempo de prova e verificação para o escopo aplicável, também é o protocolo básico usado pelo Zcash.
  2. Groth16 em 2016: Sobre o tamanho dos argumentos não interativos baseados em emparelhamento, que simplifica o tamanho da prova e melhora a eficiência da verificação, é atualmente o algoritmo básico ZK mais utilizado.
  3. Bulletproofs (BBBPWM17) Bulletproofs: Provas Curtas para Transações Confidenciais e Mais em 2017 propôs o algoritmo Bulletproof, uma prova de conhecimento zero não interativa muito curta que não requer uma configuração confiável. Será aplicado ao Monero 6 meses depois e é muito rápido. A combinação de teoria e aplicação.
  4. Em 2018, zk-STARKs (BBHR18) Integridade computacional escalável, transparente e pós-quântica segura propôs um protocolo de algoritmo ZK-STARK que não requer configurações confiáveis. Esta é outra direção atraente do desenvolvimento do ZK atualmente, e também é baseada nisso, nasceu o StarkWare, o projeto ZK mais importante.

Outros desenvolvimentos, incluindo PLONK, Halo2, etc. também são um progresso extremamente importante e também fizeram algumas melhorias no zk-SNARK.

2. Breve descrição da aplicação da prova de conhecimento zero

As duas aplicações mais difundidas das provas de conhecimento zero são a proteção da privacidade e a expansão da capacidade. Nos primeiros dias, com o lançamento de transações de privacidade e vários projetos bem conhecidos, como Zcash e Monero, as transações de privacidade tornaram-se uma categoria muito importante. Contudo, como a necessidade de transacções de privacidade não era tão proeminente como a indústria esperava, este tipo de projectos representativos começou a abrandar. Entre lentamente nos campos de segundo e terceiro nível (sem sair do palco da história). No nível da aplicação, a necessidade de expansão aumentou até o ponto em que o Ethereum 2.0 (que foi renomeado como camada de consenso) se transformou em uma rota centrada no rollup em 2020. A série ZK voltou oficialmente à atenção da indústria e se tornou o foco.

Transações de privacidade: Existem muitos projetos que implementaram transações de privacidade, incluindo Zcash usando SNARK, Tornado, Monero usando bulletproof e Dash. Dash não usa ZKP em sentido estrito, mas um sistema simples e rudimentar de mistura de moedas que só pode ocultar o endereço, mas não o valor. Não vou mencionar isso aqui.

As etapas da transação zk-SNARKs aplicadas pela Zcash são as seguintes:

Fonte: Desmistificando o papel dos zk-SNARKs no Zcash

  1. A fase de configuração do sistema gera a chave de prova (polinômio de prova de criptografia) e a chave de verificação, utilizando a função KeyGen
  2. O método de criptografia ECIES da fase CPA (Elliptic Curve Integrated Encryption Scheme) é usado para gerar chaves públicas e privadas
  3. Estágio de cunhagem de moedas, o número de novas moedas geradas. Endereço público e compromisso de moeda
  4. Na etapa de Pouring, um certificado zk-SNARK é gerado e adicionado ao razão de transações de pour.
  5. Na fase de Verificação, o verificador verifica se os volumes de transações de Mint e Pour estão corretos.
  6. Na etapa de Recebimento, o receptor recebe moedas. Se você quiser usar as moedas recebidas, continue ligando para o Pouring para formar a verificação zk-SNARK, repita as etapas 4 a 6 acima para concluir a transação.

O Zcash ainda possui limitações no uso de conhecimento zero, ou seja, é baseado em UTXO, portanto parte das informações da transação são apenas blindadas, não realmente encobertas. Por ser uma rede separada baseada no design do Bitcoin, é difícil de expandir (combinar com outras aplicações). A taxa real de utilização da blindagem (ou seja, transacções privadas) é inferior a 10%, o que mostra que as transacções privadas não foram expandidas com sucesso. (de 2202)

O grande pool de mistura usado pelo Tornado é mais versátil e baseado em uma rede “experimentada e testada” como a Ethereum. Torndao é essencialmente um pool de mistura de moedas usando zk-SNARK, e a configuração de confiança é baseada no artigo Groth 16. Os recursos disponíveis com Tornado Cash incluem:

  1. Apenas as moedas depositadas podem ser retiradas.
  2. Nenhuma moeda pode ser retirada duas vezes
  3. O processo de comprovação está vinculado à notificação de anulação da moeda (Nullifier). O hash da mesma prova mas Nullifier diferente não permitirá a retirada de moedas.
  4. A segurança é de 126 bits e não será prejudicada devido à composição.

Vitalik mencionou que, em comparação com a expansão, a privacidade é relativamente fácil de implementar. Se alguns protocolos de expansão puderem ser estabelecidos, a privacidade basicamente não será um problema.

Expansão: A expansão do ZK pode ser feita na rede de primeiro nível, como a Mina, ou na rede de segundo nível, ou seja, zk-roll up. A ideia do roll up ZK pode ter se originado da postagem de Vitalik em 2018, escalonamento on-chain para potencialmente ~500 tx/s por meio de validação de tx em massa.

O ZK-rollup tem dois tipos de funções, uma é Sequenciadora e a outra é Agregadora. O Sequenciador é responsável por empacotar as transações, e o Agregador é responsável por mesclar um grande número de transações e criar um rollup, além de formar uma prova SNARK (também pode ser uma prova de conhecimento zero baseada em outros algoritmos). Esta prova será comparada com o estado anterior da Camada 1 e, em seguida, atualizará a árvore Ethereum Merkle e calculará uma nova árvore de estado.

Fonte: Polígono

Vantagens e desvantagens do rollup ZK:

  1. Vantagens: baixo custo, ao contrário do OP que será atacado economicamente, não há necessidade de atrasar as transações, a privacidade pode ser protegida e a finalidade pode ser alcançada rapidamente
  2. Desvantagens: Formar a prova ZK requer uma grande quantidade de cálculos, problemas de segurança (SNARK requer uma configuração confiável), não resistente a ataques quânticos (SNARK, STARK pode), a ordem da transação pode ser alterada

Fonte: pesquisa Ethereum

Com base na disponibilidade de dados e métodos de prova, Starkware possui um diagrama de classificação clássico para L2 (a camada de disponibilidade de dados da Volition pode ser selecionada dentro ou fora da cadeia):

Fonte: Starkware

Os projetos de rollup ZK mais competitivos atualmente no mercado incluem: StarkNet da Starkware, zkSync da Matterlabs e Aztec connect da Aztec, Hermez e Miden da Polygon, Loopring, Scroll, etc.

Basicamente o caminho técnico reside na escolha do SNARK (e suas versões melhoradas) e STARK, bem como no suporte ao EVM (incluindo compatibilidade ou equivalência).

  1. A Aztec desenvolveu um protocolo SNARK generalizado-protocolo Plonk. O Aztec3 em execução pode suportar EVM, mas a privacidade tem precedência sobre a compatibilidade com EVM.
  2. Starnet usa zk-STARK, um zkp que não requer configurações confiáveis, mas atualmente não oferece suporte a EVM e possui seu próprio compilador e linguagem de desenvolvimento.
  3. zkSync também usa plonk e oferece suporte a EVM. zkSync 2.0 é compatível com EVM e possui seu próprio zkEVM
  4. Scroll, um rollup ZK compatível com EVM, a equipe também é um contribuidor importante para o projeto zkEVM da Fundação Ethereum

Discuta brevemente os problemas de compatibilidade do EVM:

A compatibilidade entre o sistema ZK e o EVM sempre foi uma dor de cabeça, e a maioria dos projetos escolherá entre os dois. Aqueles que enfatizam o ZK podem construir uma máquina virtual em seu próprio sistema e ter sua própria linguagem e compilador ZK, mas isso tornará mais difícil o aprendizado dos desenvolvedores e, como basicamente não é de código aberto, se tornará uma caixa preta . De modo geral, a indústria tem atualmente duas opções. Uma é ser totalmente compatível com os opcodes do Solidity e a outra é projetar uma nova máquina virtual que seja compatível com ZK e compatível com Solidity. A indústria não esperava uma integração tão rápida no início, mas a rápida iteração da tecnologia nos últimos dois anos trouxe a compatibilidade EVM a um novo nível, e os desenvolvedores podem alcançar um certo grau de migração contínua (ou seja, o principal Ethereum cadeia para rollup ZK) é um desenvolvimento emocionante, que afetará a ecologia de desenvolvimento e o cenário competitivo de ZK. Discutiremos esta questão em detalhes em relatórios subsequentes.

3. Princípios básicos de implementação do ZK SNARK

Goldwasser, Micali e Rackoff propuseram que as provas de conhecimento zero têm três propriedades:

  1. Completude: Cada declaração com testemunhas razoáveis pode ser verificada pelo verificador
  2. Solidez: Toda reclamação com apenas testemunhas irracionais não deve ser verificada pelo verificador
  3. Conhecimento zero: O processo de verificação é de conhecimento zero

Então, para entender o ZKP, começamos com zk-SNARK, porque muitas aplicações blockchain atuais começam com SNARK. Primeiro, vamos dar uma olhada no zk-SNARK.

zk-SNARK significa: Prova de conhecimento zero (zh-SNARK) é ARgumentos de conhecimento sucintos e não interativos de conhecimento zero.

  1. Conhecimento Zero: O processo de prova é de conhecimento zero e não expõe informações redundantes.
  2. Sucinto: tamanho de verificação pequeno
  3. Não interativo: processo não interativo
  4. ARgumentos: O cálculo é confiável, ou seja, o provador com poder computacional limitado não pode forjar a prova, e o provador com poder computacional ilimitado pode forjar a prova.
  5. do Conhecimento: O provador não pode construir um parâmetro e uma prova sem conhecer informações válidas
  6. É impossível para o provador construir um conjunto de parâmetros e provas sem conhecer a testemunha (como a entrada de uma função hash ou um caminho para determinar um nó da árvore Merkle).

O princípio de prova do zk-SNARK de Groth16 é o seguinte:

Fonte: https://learnblockchain.cn/article/3220

As etapas são:

  1. Converta o problema em um circuito
  2. Achate o circuito na forma de R1CS.
  3. Converter formato R1CS para QAP (programas aritméticos quadráticos)
  4. Estabeleça uma configuração confiável e gere parâmetros aleatórios, incluindo PK (chave de prova) e VK (chave de verificação)
  5. Geração e verificação de prova de zk-SNARK

No próximo artigo, começaremos a estudar os princípios e aplicações do zk-SNARK, revisaremos o desenvolvimento do ZK-SNARK através de vários casos e exploraremos sua relação com o zk-STARK.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [HashKey Capital]. Todos os direitos autorais pertencem ao autor original [HashKey Capital]. Se houver objeções a esta reimpressão, entre em contato com a equipe do Gate Learn e eles cuidarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Guia para iniciantes em provas de conhecimento zero: histórico de desenvolvimento, aplicações e princípios básicos

iniciantes1/6/2024, 7:13:44 PM
Este artigo apresenta sistematicamente a história do desenvolvimento e os princípios básicos das provas de conhecimento zero.

A atual taxa de crescimento de projetos à prova de conhecimento zero (ZKP) na indústria de blockchain é surpreendente, especialmente o aumento de aplicações ZKP nos dois níveis de expansão e proteção de privacidade, que nos expôs a uma variedade de projetos à prova de conhecimento zero. Devido à natureza extremamente matemática do ZKP, é significativamente mais difícil para os entusiastas da criptografia entendê-lo em profundidade. Portanto, também esperamos resolver algumas mudanças na teoria e aplicação do ZKP desde o início, e explorar o impacto e o valor na indústria criptográfica com os leitores - aprendendo juntos através de vários relatórios, que também servem como um resumo dos pensamentos do HashKey Equipe de pesquisa de capital. Este artigo é o primeiro da série, apresentando principalmente o histórico de desenvolvimento, aplicações e alguns princípios básicos do ZKP.

1. A história das provas de conhecimento zero

O moderno sistema de prova de conhecimento zero originou-se do artigo publicado em conjunto por Goldwasser, Micali e Rackoff: The Knowledge Complexity of Interactive Proof Systems (GMR85), que foi proposto em 1985 e publicado em 1989. Este artigo explica principalmente quanto conhecimento precisa ser trocado após K rodadas de interações em um sistema interativo para provar que uma afirmação está correta. Se o conhecimento trocado puder ser zerado, isso é chamado de prova de conhecimento zero. Supõe-se que o provador tenha recursos ilimitados e o verificador apenas recursos limitados. O problema com os sistemas interativos é que a prova não é totalmente demonstrável matematicamente, mas correta no sentido probabilístico, embora a probabilidade seja muito pequena (1/2^n).

Portanto, o sistema interativo não é perfeito e possui apenas completude aproximada. O sistema não interativo (NP) nascido nesta base tem completude e se torna a escolha perfeita para o sistema à prova de conhecimento zero.

Os primeiros sistemas de prova de conhecimento zero careciam de eficiência e usabilidade, por isso sempre permaneceram no nível teórico. Só nos últimos 10 anos é que começaram a florescer. À medida que a criptografia se tornou proeminente na criptografia, as provas de conhecimento zero vieram à tona e se tornaram uma direção crucial. Em particular, o desenvolvimento de um protocolo geral, não interativo e de prova de conhecimento zero com tamanho de prova limitado é uma das direções de exploração mais críticas.

Basicamente, a prova de conhecimento zero é uma compensação entre a velocidade da prova, a velocidade da verificação e o tamanho da prova. O protocolo ideal é prova rápida, verificação rápida e prova pequena.

O avanço mais importante na prova de conhecimento zero é o artigo de Groth de 2010, Short Pairing-based Non-interactive Zero-Knowledge Arguments, que também é o pioneiro teórico do grupo mais importante de zk-SNARKs em ZKP.

O desenvolvimento mais importante na aplicação da prova de conhecimento zero é o sistema de prova de conhecimento zero utilizado pela Z-cash em 2015, que protegeu a privacidade das transações e valores. Mais tarde, desenvolveu-se na combinação de zk-SNARK e contratos inteligentes, e zk-SNARK entrou nos cenários de aplicação mais amplos.

Algumas conquistas acadêmicas importantes durante este período incluem:

  1. Pinóquio (PGHR13) em 2013: Pinóquio: Computação Verificável Quase Prática, que comprime o tempo de prova e verificação para o escopo aplicável, também é o protocolo básico usado pelo Zcash.
  2. Groth16 em 2016: Sobre o tamanho dos argumentos não interativos baseados em emparelhamento, que simplifica o tamanho da prova e melhora a eficiência da verificação, é atualmente o algoritmo básico ZK mais utilizado.
  3. Bulletproofs (BBBPWM17) Bulletproofs: Provas Curtas para Transações Confidenciais e Mais em 2017 propôs o algoritmo Bulletproof, uma prova de conhecimento zero não interativa muito curta que não requer uma configuração confiável. Será aplicado ao Monero 6 meses depois e é muito rápido. A combinação de teoria e aplicação.
  4. Em 2018, zk-STARKs (BBHR18) Integridade computacional escalável, transparente e pós-quântica segura propôs um protocolo de algoritmo ZK-STARK que não requer configurações confiáveis. Esta é outra direção atraente do desenvolvimento do ZK atualmente, e também é baseada nisso, nasceu o StarkWare, o projeto ZK mais importante.

Outros desenvolvimentos, incluindo PLONK, Halo2, etc. também são um progresso extremamente importante e também fizeram algumas melhorias no zk-SNARK.

2. Breve descrição da aplicação da prova de conhecimento zero

As duas aplicações mais difundidas das provas de conhecimento zero são a proteção da privacidade e a expansão da capacidade. Nos primeiros dias, com o lançamento de transações de privacidade e vários projetos bem conhecidos, como Zcash e Monero, as transações de privacidade tornaram-se uma categoria muito importante. Contudo, como a necessidade de transacções de privacidade não era tão proeminente como a indústria esperava, este tipo de projectos representativos começou a abrandar. Entre lentamente nos campos de segundo e terceiro nível (sem sair do palco da história). No nível da aplicação, a necessidade de expansão aumentou até o ponto em que o Ethereum 2.0 (que foi renomeado como camada de consenso) se transformou em uma rota centrada no rollup em 2020. A série ZK voltou oficialmente à atenção da indústria e se tornou o foco.

Transações de privacidade: Existem muitos projetos que implementaram transações de privacidade, incluindo Zcash usando SNARK, Tornado, Monero usando bulletproof e Dash. Dash não usa ZKP em sentido estrito, mas um sistema simples e rudimentar de mistura de moedas que só pode ocultar o endereço, mas não o valor. Não vou mencionar isso aqui.

As etapas da transação zk-SNARKs aplicadas pela Zcash são as seguintes:

Fonte: Desmistificando o papel dos zk-SNARKs no Zcash

  1. A fase de configuração do sistema gera a chave de prova (polinômio de prova de criptografia) e a chave de verificação, utilizando a função KeyGen
  2. O método de criptografia ECIES da fase CPA (Elliptic Curve Integrated Encryption Scheme) é usado para gerar chaves públicas e privadas
  3. Estágio de cunhagem de moedas, o número de novas moedas geradas. Endereço público e compromisso de moeda
  4. Na etapa de Pouring, um certificado zk-SNARK é gerado e adicionado ao razão de transações de pour.
  5. Na fase de Verificação, o verificador verifica se os volumes de transações de Mint e Pour estão corretos.
  6. Na etapa de Recebimento, o receptor recebe moedas. Se você quiser usar as moedas recebidas, continue ligando para o Pouring para formar a verificação zk-SNARK, repita as etapas 4 a 6 acima para concluir a transação.

O Zcash ainda possui limitações no uso de conhecimento zero, ou seja, é baseado em UTXO, portanto parte das informações da transação são apenas blindadas, não realmente encobertas. Por ser uma rede separada baseada no design do Bitcoin, é difícil de expandir (combinar com outras aplicações). A taxa real de utilização da blindagem (ou seja, transacções privadas) é inferior a 10%, o que mostra que as transacções privadas não foram expandidas com sucesso. (de 2202)

O grande pool de mistura usado pelo Tornado é mais versátil e baseado em uma rede “experimentada e testada” como a Ethereum. Torndao é essencialmente um pool de mistura de moedas usando zk-SNARK, e a configuração de confiança é baseada no artigo Groth 16. Os recursos disponíveis com Tornado Cash incluem:

  1. Apenas as moedas depositadas podem ser retiradas.
  2. Nenhuma moeda pode ser retirada duas vezes
  3. O processo de comprovação está vinculado à notificação de anulação da moeda (Nullifier). O hash da mesma prova mas Nullifier diferente não permitirá a retirada de moedas.
  4. A segurança é de 126 bits e não será prejudicada devido à composição.

Vitalik mencionou que, em comparação com a expansão, a privacidade é relativamente fácil de implementar. Se alguns protocolos de expansão puderem ser estabelecidos, a privacidade basicamente não será um problema.

Expansão: A expansão do ZK pode ser feita na rede de primeiro nível, como a Mina, ou na rede de segundo nível, ou seja, zk-roll up. A ideia do roll up ZK pode ter se originado da postagem de Vitalik em 2018, escalonamento on-chain para potencialmente ~500 tx/s por meio de validação de tx em massa.

O ZK-rollup tem dois tipos de funções, uma é Sequenciadora e a outra é Agregadora. O Sequenciador é responsável por empacotar as transações, e o Agregador é responsável por mesclar um grande número de transações e criar um rollup, além de formar uma prova SNARK (também pode ser uma prova de conhecimento zero baseada em outros algoritmos). Esta prova será comparada com o estado anterior da Camada 1 e, em seguida, atualizará a árvore Ethereum Merkle e calculará uma nova árvore de estado.

Fonte: Polígono

Vantagens e desvantagens do rollup ZK:

  1. Vantagens: baixo custo, ao contrário do OP que será atacado economicamente, não há necessidade de atrasar as transações, a privacidade pode ser protegida e a finalidade pode ser alcançada rapidamente
  2. Desvantagens: Formar a prova ZK requer uma grande quantidade de cálculos, problemas de segurança (SNARK requer uma configuração confiável), não resistente a ataques quânticos (SNARK, STARK pode), a ordem da transação pode ser alterada

Fonte: pesquisa Ethereum

Com base na disponibilidade de dados e métodos de prova, Starkware possui um diagrama de classificação clássico para L2 (a camada de disponibilidade de dados da Volition pode ser selecionada dentro ou fora da cadeia):

Fonte: Starkware

Os projetos de rollup ZK mais competitivos atualmente no mercado incluem: StarkNet da Starkware, zkSync da Matterlabs e Aztec connect da Aztec, Hermez e Miden da Polygon, Loopring, Scroll, etc.

Basicamente o caminho técnico reside na escolha do SNARK (e suas versões melhoradas) e STARK, bem como no suporte ao EVM (incluindo compatibilidade ou equivalência).

  1. A Aztec desenvolveu um protocolo SNARK generalizado-protocolo Plonk. O Aztec3 em execução pode suportar EVM, mas a privacidade tem precedência sobre a compatibilidade com EVM.
  2. Starnet usa zk-STARK, um zkp que não requer configurações confiáveis, mas atualmente não oferece suporte a EVM e possui seu próprio compilador e linguagem de desenvolvimento.
  3. zkSync também usa plonk e oferece suporte a EVM. zkSync 2.0 é compatível com EVM e possui seu próprio zkEVM
  4. Scroll, um rollup ZK compatível com EVM, a equipe também é um contribuidor importante para o projeto zkEVM da Fundação Ethereum

Discuta brevemente os problemas de compatibilidade do EVM:

A compatibilidade entre o sistema ZK e o EVM sempre foi uma dor de cabeça, e a maioria dos projetos escolherá entre os dois. Aqueles que enfatizam o ZK podem construir uma máquina virtual em seu próprio sistema e ter sua própria linguagem e compilador ZK, mas isso tornará mais difícil o aprendizado dos desenvolvedores e, como basicamente não é de código aberto, se tornará uma caixa preta . De modo geral, a indústria tem atualmente duas opções. Uma é ser totalmente compatível com os opcodes do Solidity e a outra é projetar uma nova máquina virtual que seja compatível com ZK e compatível com Solidity. A indústria não esperava uma integração tão rápida no início, mas a rápida iteração da tecnologia nos últimos dois anos trouxe a compatibilidade EVM a um novo nível, e os desenvolvedores podem alcançar um certo grau de migração contínua (ou seja, o principal Ethereum cadeia para rollup ZK) é um desenvolvimento emocionante, que afetará a ecologia de desenvolvimento e o cenário competitivo de ZK. Discutiremos esta questão em detalhes em relatórios subsequentes.

3. Princípios básicos de implementação do ZK SNARK

Goldwasser, Micali e Rackoff propuseram que as provas de conhecimento zero têm três propriedades:

  1. Completude: Cada declaração com testemunhas razoáveis pode ser verificada pelo verificador
  2. Solidez: Toda reclamação com apenas testemunhas irracionais não deve ser verificada pelo verificador
  3. Conhecimento zero: O processo de verificação é de conhecimento zero

Então, para entender o ZKP, começamos com zk-SNARK, porque muitas aplicações blockchain atuais começam com SNARK. Primeiro, vamos dar uma olhada no zk-SNARK.

zk-SNARK significa: Prova de conhecimento zero (zh-SNARK) é ARgumentos de conhecimento sucintos e não interativos de conhecimento zero.

  1. Conhecimento Zero: O processo de prova é de conhecimento zero e não expõe informações redundantes.
  2. Sucinto: tamanho de verificação pequeno
  3. Não interativo: processo não interativo
  4. ARgumentos: O cálculo é confiável, ou seja, o provador com poder computacional limitado não pode forjar a prova, e o provador com poder computacional ilimitado pode forjar a prova.
  5. do Conhecimento: O provador não pode construir um parâmetro e uma prova sem conhecer informações válidas
  6. É impossível para o provador construir um conjunto de parâmetros e provas sem conhecer a testemunha (como a entrada de uma função hash ou um caminho para determinar um nó da árvore Merkle).

O princípio de prova do zk-SNARK de Groth16 é o seguinte:

Fonte: https://learnblockchain.cn/article/3220

As etapas são:

  1. Converta o problema em um circuito
  2. Achate o circuito na forma de R1CS.
  3. Converter formato R1CS para QAP (programas aritméticos quadráticos)
  4. Estabeleça uma configuração confiável e gere parâmetros aleatórios, incluindo PK (chave de prova) e VK (chave de verificação)
  5. Geração e verificação de prova de zk-SNARK

No próximo artigo, começaremos a estudar os princípios e aplicações do zk-SNARK, revisaremos o desenvolvimento do ZK-SNARK através de vários casos e exploraremos sua relação com o zk-STARK.

Isenção de responsabilidade:

  1. Este artigo foi reimpresso de [HashKey Capital]. Todos os direitos autorais pertencem ao autor original [HashKey Capital]. Se houver objeções a esta reimpressão, entre em contato com a equipe do Gate Learn e eles cuidarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e pontos de vista expressos neste artigo são exclusivamente do autor e não constituem qualquer conselho de investimento.
  3. As traduções do artigo para outros idiomas são feitas pela equipe do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
Comece agora
Inscreva-se e ganhe um cupom de
$100
!
It seems that you are attempting to access our services from a Restricted Location where Gate.io is unable to provide services. We apologize for any inconvenience this may cause. Currently, the Restricted Locations include but not limited to: the United States of America, Canada, Cambodia, Thailand, Cuba, Iran, North Korea and so on. For more information regarding the Restricted Locations, please refer to the User Agreement. Should you have any other questions, please contact our Customer Support Team.