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.
今すぐ始める
登録して、
$100
のボーナスを獲得しよう!