Um Guia para Iniciantes para Provas de Conhecimento Zero: História do Desenvolvimento, Aplicações e Princípios Básicos

Principiante1/6/2024, 7:13:44 PM
Este artigo introduz 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 das aplicações ZKP nos dois níveis de expansão e proteção de privacidade, o que nos expôs a uma variedade de projetos de prova de conhecimento zero. Devido à natureza extremamente matemática do ZKP, é significativamente mais difícil para os entusiastas da encriptação compreenderem o ZK 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 cripto com os leitores - aprendendo juntos através de vários relatórios, que também servem como um resumo dos pensamentos da equipa de investigação da HashKey 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 num sistema interativo para provar que uma afirmação está correta. Se o conhecimento trocado pode ser feito zero, chama-se prova de conhecimento zero. Presume-se que o provador tem recursos ilimitados e o verificador tem apenas recursos limitados. O problema com os sistemas interativos é que a prova não é inteiramente matematicamente comprovável, mas correta num sentido probabilístico, embora a probabilidade seja muito pequena (1/2 ^ n).

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

Os primeiros sistemas de prova de conhecimento zero faltavam eficiência e usabilidade, por isso permaneceram sempre no nível teórico. Não foi até os últimos 10 anos que começaram a florescer. À medida que a criptografia se tornou proeminente na criptografia, as provas de conhecimento zero vieram à frente e se tornaram uma direção crucial. Em particular, desenvolver 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 tamanho de prova pequeno.

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

O desenvolvimento mais importante na aplicação da prova de conhecimento zero é o sistema de prova de conhecimento zero utilizado pelo Z-cash em 2015, que protegia a privacidade das transações e dos montantes. Mais tarde, evoluiu para a combinação de zk-SNARK e contratos inteligentes, e o zk-SNARK entrou nos cenários de aplicação mais alargados.

Algumas realizações 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 ao âmbito aplicável, é também o protocolo básico utilizado pela 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: Short Proofs for Confidential Transactions and More em 2017 propôs o algoritmo Bulletproof, uma prova de conhecimento zero não interativa muito curta e não interativa 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, o ZK-STARKS (BBHR18) Integridade computacional segura escalável, transparente e pós-quântica propôs um protocolo de algoritmo ZK-STARK que não requer definições fidedignas. Esta é outra direção atraente do desenvolvimento do ZK atualmente, e também se baseia em Baseado nisto, nasceu o StarkWare, o projeto ZK mais importante.

Outros desenvolvimentos, incluindo PLONK, Halo2, etc. também são progressos extremamente importantes 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 de 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 conhecidos como Zcash e Monero, as transações de privacidade tornaram-se uma categoria muito importante. No entanto, como a necessidade de transações de privacidade não era tão proeminente como a indústria esperava, este tipo de projetos representativos começou a abrandar. Entre lentamente nos campos de segundo e terceiro escalões (não se retire da fase da história). Ao nível da aplicação, a necessidade de expansão aumentou ao ponto em que o Ethereum 2.0 (que foi renomeado camada de consenso) se transformou numa rota centrada no rollup em 2020. A série ZK voltou oficialmente à atenção da indústria e tornou-se o foco.

Transações de privacidade: Existem muitos projetos que implementaram transações de privacidade, incluindo Zcash usando SNARK, Tornado, Monero usando balas e Dash. O Dash não usa o ZKP no sentido estrito, mas sim um sistema simples e bruto de mistura de moeda 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 encriptação) e a chave de verificação, utilizando a função KeyGen
  2. O método de encriptação ECIES da fase CPA (Eliptic Curve Integrated Encryption Scheme) é utilizado 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 fase de despejamento, um certificado zk-SNARK é gerado e adicionado ao livro-razão de nossas transações.
  5. Na fase de Verificação, o verificador verifica se os volumes de transação de Mint e Pour estão corretos.
  6. Na fase de Recebimento, o destinatário recebe moedas. Se quiser usar as moedas recebidas, continue a ligar para o Pouring para formar a verificação zk-SNARK, repita os passos 4-6 acima para concluir a transação.

O Zcash ainda tem limitações na utilização de conhecimento zero, ou seja, baseia-se no UTXO, pelo que parte das informações da transação é apenas protegida, não realmente encoberta. Porque é uma rede separada baseada no design do Bitcoin, é difícil de expandir (combinar com outras aplicações). A taxa real de uso da blindagem (isto é, transações privadas) é inferior a 10%, o que mostra que as transações privadas não foram expandidas com sucesso. (a partir de 2202)

A única grande piscina de mistura usada pelo Tornado é mais versátil e baseada numa rede “testada e testada” como a Ethereum. O Torndao é essencialmente um pool de mistura de moedas usando o zk-SNark, e a configuração de confiança é baseada no papel Groth 16. As funcionalidades disponíveis com o Tornado Cash incluem:

  1. Só as moedas depositadas podem ser retiradas.
  2. Nenhuma moeda pode ser retirada duas vezes
  3. O processo de prova está vinculado à notificação de anulação da moeda (Nullifier). O hash da mesma prova mas um Nullifier diferente não permitirá a retirada de moedas.
  4. A segurança é de 126 bits e não será degradada 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 rolamento de ZK pode ter tido origem no post do Vitalik em 2018, escalonamento em cadeia para potencialmente ~ 500 tx/seg através da validação tx em massa.

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

Fonte: Polygon

Vantagens e desvantagens do rollup ZK:

  1. Vantagens: baixo custo, ao contrário do OP que será economicamente atacado, 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álculo, problemas de segurança (SNARK requer uma configuração fidedigna), não resistente a ataques quânticos (SNARK, STARK pode), a ordem da transação pode ser alterada

Fonte: Investigação Ethereum

Com base na disponibilidade de dados e métodos de prova, o Starkware tem um diagrama de classificação clássico para L2 (a camada de disponibilidade de dados da Volition pode ser selecionada na cadeia 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, a rota técnica reside na escolha do SNARK (e das suas versões melhoradas) e STARK, bem como no suporte para EVM (incluindo compatibilidade ou equivalência).

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

Discutir brevemente os problemas de compatibilidade EVM:

A compatibilidade entre o sistema ZK e EVM foi sempre 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 no seu próprio sistema e ter a sua própria linguagem ZK e compilador, mas isso tornará mais difícil para os programadores aprenderem, e porque basicamente não é open source, vai tornar-se uma caixa preta. De um modo geral, a indústria tem atualmente duas opções. Um é ser totalmente compatível com os opcodes do Solidity e o outro é projetar uma nova máquina virtual que seja compatível com o ZK e compatível com o 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 perfeita (ou seja, a cadeia principal Ethereum para o ZK rollup) é um desenvolvimento empolgante, que afetará a ecologia de desenvolvimento e o cenário competitivo da ZK. Discutiremos esse problema em detalhes em relatórios subsequentes.

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

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

  1. Completude: Todas as declarações com testemunhas razoáveis podem ser verificadas pelo verificador
  2. Solidez: Todas as alegações apenas com testemunhas irrazoáveis não devem ser verificadas pelo verificador
  3. Conhecimento zero: O processo de verificação é conhecimento zero

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

zk-SNARK significa: Prova de conhecimento zero (zh-Snark) é o conhecimento zero argumentos sucintos não interativos do conhecimento.

  1. Conhecimento Zero: O processo de prova é conhecimento zero e não expõe informações redundantes.
  2. Sucinto: Pequeno tamanho de verificação
  3. Não interativo: processo não interativo
  4. ARGUMENTOS: O cálculo é fiá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 saber 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 Merkel).

O princípio da prova do ZK-SNARK do Groth16 é o seguinte:

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

Os passos são:

  1. Converter o problema num circuito
  2. Achatar o circuito na forma de R1CS.
  3. Converter R1CS para o formato QAP (Programas Aritméticos Quadráticos)
  4. Estabelecer uma configuração fidedigna e gerar parâmetros aleatórios, incluindo PK (chave de prova) e VK (chave de verificação)
  5. Geração de provas e verificação de zk-SNARK

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

Isenção de responsabilidade:

  1. Este artigo foi reimpresso da [HashKey Capital]. Todos os direitos de autor pertencem ao autor original [HashKey Capital]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.

Um Guia para Iniciantes para Provas de Conhecimento Zero: História do Desenvolvimento, Aplicações e Princípios Básicos

Principiante1/6/2024, 7:13:44 PM
Este artigo introduz 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 das aplicações ZKP nos dois níveis de expansão e proteção de privacidade, o que nos expôs a uma variedade de projetos de prova de conhecimento zero. Devido à natureza extremamente matemática do ZKP, é significativamente mais difícil para os entusiastas da encriptação compreenderem o ZK 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 cripto com os leitores - aprendendo juntos através de vários relatórios, que também servem como um resumo dos pensamentos da equipa de investigação da HashKey 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 num sistema interativo para provar que uma afirmação está correta. Se o conhecimento trocado pode ser feito zero, chama-se prova de conhecimento zero. Presume-se que o provador tem recursos ilimitados e o verificador tem apenas recursos limitados. O problema com os sistemas interativos é que a prova não é inteiramente matematicamente comprovável, mas correta num sentido probabilístico, embora a probabilidade seja muito pequena (1/2 ^ n).

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

Os primeiros sistemas de prova de conhecimento zero faltavam eficiência e usabilidade, por isso permaneceram sempre no nível teórico. Não foi até os últimos 10 anos que começaram a florescer. À medida que a criptografia se tornou proeminente na criptografia, as provas de conhecimento zero vieram à frente e se tornaram uma direção crucial. Em particular, desenvolver 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 tamanho de prova pequeno.

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

O desenvolvimento mais importante na aplicação da prova de conhecimento zero é o sistema de prova de conhecimento zero utilizado pelo Z-cash em 2015, que protegia a privacidade das transações e dos montantes. Mais tarde, evoluiu para a combinação de zk-SNARK e contratos inteligentes, e o zk-SNARK entrou nos cenários de aplicação mais alargados.

Algumas realizações 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 ao âmbito aplicável, é também o protocolo básico utilizado pela 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: Short Proofs for Confidential Transactions and More em 2017 propôs o algoritmo Bulletproof, uma prova de conhecimento zero não interativa muito curta e não interativa 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, o ZK-STARKS (BBHR18) Integridade computacional segura escalável, transparente e pós-quântica propôs um protocolo de algoritmo ZK-STARK que não requer definições fidedignas. Esta é outra direção atraente do desenvolvimento do ZK atualmente, e também se baseia em Baseado nisto, nasceu o StarkWare, o projeto ZK mais importante.

Outros desenvolvimentos, incluindo PLONK, Halo2, etc. também são progressos extremamente importantes 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 de 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 conhecidos como Zcash e Monero, as transações de privacidade tornaram-se uma categoria muito importante. No entanto, como a necessidade de transações de privacidade não era tão proeminente como a indústria esperava, este tipo de projetos representativos começou a abrandar. Entre lentamente nos campos de segundo e terceiro escalões (não se retire da fase da história). Ao nível da aplicação, a necessidade de expansão aumentou ao ponto em que o Ethereum 2.0 (que foi renomeado camada de consenso) se transformou numa rota centrada no rollup em 2020. A série ZK voltou oficialmente à atenção da indústria e tornou-se o foco.

Transações de privacidade: Existem muitos projetos que implementaram transações de privacidade, incluindo Zcash usando SNARK, Tornado, Monero usando balas e Dash. O Dash não usa o ZKP no sentido estrito, mas sim um sistema simples e bruto de mistura de moeda 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 encriptação) e a chave de verificação, utilizando a função KeyGen
  2. O método de encriptação ECIES da fase CPA (Eliptic Curve Integrated Encryption Scheme) é utilizado 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 fase de despejamento, um certificado zk-SNARK é gerado e adicionado ao livro-razão de nossas transações.
  5. Na fase de Verificação, o verificador verifica se os volumes de transação de Mint e Pour estão corretos.
  6. Na fase de Recebimento, o destinatário recebe moedas. Se quiser usar as moedas recebidas, continue a ligar para o Pouring para formar a verificação zk-SNARK, repita os passos 4-6 acima para concluir a transação.

O Zcash ainda tem limitações na utilização de conhecimento zero, ou seja, baseia-se no UTXO, pelo que parte das informações da transação é apenas protegida, não realmente encoberta. Porque é uma rede separada baseada no design do Bitcoin, é difícil de expandir (combinar com outras aplicações). A taxa real de uso da blindagem (isto é, transações privadas) é inferior a 10%, o que mostra que as transações privadas não foram expandidas com sucesso. (a partir de 2202)

A única grande piscina de mistura usada pelo Tornado é mais versátil e baseada numa rede “testada e testada” como a Ethereum. O Torndao é essencialmente um pool de mistura de moedas usando o zk-SNark, e a configuração de confiança é baseada no papel Groth 16. As funcionalidades disponíveis com o Tornado Cash incluem:

  1. Só as moedas depositadas podem ser retiradas.
  2. Nenhuma moeda pode ser retirada duas vezes
  3. O processo de prova está vinculado à notificação de anulação da moeda (Nullifier). O hash da mesma prova mas um Nullifier diferente não permitirá a retirada de moedas.
  4. A segurança é de 126 bits e não será degradada 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 rolamento de ZK pode ter tido origem no post do Vitalik em 2018, escalonamento em cadeia para potencialmente ~ 500 tx/seg através da validação tx em massa.

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

Fonte: Polygon

Vantagens e desvantagens do rollup ZK:

  1. Vantagens: baixo custo, ao contrário do OP que será economicamente atacado, 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álculo, problemas de segurança (SNARK requer uma configuração fidedigna), não resistente a ataques quânticos (SNARK, STARK pode), a ordem da transação pode ser alterada

Fonte: Investigação Ethereum

Com base na disponibilidade de dados e métodos de prova, o Starkware tem um diagrama de classificação clássico para L2 (a camada de disponibilidade de dados da Volition pode ser selecionada na cadeia 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, a rota técnica reside na escolha do SNARK (e das suas versões melhoradas) e STARK, bem como no suporte para EVM (incluindo compatibilidade ou equivalência).

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

Discutir brevemente os problemas de compatibilidade EVM:

A compatibilidade entre o sistema ZK e EVM foi sempre 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 no seu próprio sistema e ter a sua própria linguagem ZK e compilador, mas isso tornará mais difícil para os programadores aprenderem, e porque basicamente não é open source, vai tornar-se uma caixa preta. De um modo geral, a indústria tem atualmente duas opções. Um é ser totalmente compatível com os opcodes do Solidity e o outro é projetar uma nova máquina virtual que seja compatível com o ZK e compatível com o 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 perfeita (ou seja, a cadeia principal Ethereum para o ZK rollup) é um desenvolvimento empolgante, que afetará a ecologia de desenvolvimento e o cenário competitivo da ZK. Discutiremos esse problema em detalhes em relatórios subsequentes.

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

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

  1. Completude: Todas as declarações com testemunhas razoáveis podem ser verificadas pelo verificador
  2. Solidez: Todas as alegações apenas com testemunhas irrazoáveis não devem ser verificadas pelo verificador
  3. Conhecimento zero: O processo de verificação é conhecimento zero

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

zk-SNARK significa: Prova de conhecimento zero (zh-Snark) é o conhecimento zero argumentos sucintos não interativos do conhecimento.

  1. Conhecimento Zero: O processo de prova é conhecimento zero e não expõe informações redundantes.
  2. Sucinto: Pequeno tamanho de verificação
  3. Não interativo: processo não interativo
  4. ARGUMENTOS: O cálculo é fiá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 saber 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 Merkel).

O princípio da prova do ZK-SNARK do Groth16 é o seguinte:

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

Os passos são:

  1. Converter o problema num circuito
  2. Achatar o circuito na forma de R1CS.
  3. Converter R1CS para o formato QAP (Programas Aritméticos Quadráticos)
  4. Estabelecer uma configuração fidedigna e gerar parâmetros aleatórios, incluindo PK (chave de prova) e VK (chave de verificação)
  5. Geração de provas e verificação de zk-SNARK

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

Isenção de responsabilidade:

  1. Este artigo foi reimpresso da [HashKey Capital]. Todos os direitos de autor pertencem ao autor original [HashKey Capital]. Se houver objeções a esta reimpressão, contacte a equipa do Gate Learn, e eles tratarão disso imediatamente.
  2. Isenção de responsabilidade: As opiniões e opiniões expressas neste artigo são exclusivamente do autor e não constituem nenhum conselho de investimento.
  3. As traduções do artigo para outras línguas são feitas pela equipa do Gate Learn. A menos que mencionado, é proibido copiar, distribuir ou plagiar os artigos traduzidos.
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!
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, 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.