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.
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:
Outros desenvolvimentos, incluindo PLONK, Halo2, etc. também são um progresso extremamente importante e também fizeram algumas melhorias no zk-SNARK.
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
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:
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:
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).
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.
Goldwasser, Micali e Rackoff propuseram que as provas de conhecimento zero têm três propriedades:
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.
O princípio de prova do zk-SNARK de Groth16 é o seguinte:
Fonte: https://learnblockchain.cn/article/3220
As etapas são:
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.
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.
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:
Outros desenvolvimentos, incluindo PLONK, Halo2, etc. também são um progresso extremamente importante e também fizeram algumas melhorias no zk-SNARK.
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
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:
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:
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).
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.
Goldwasser, Micali e Rackoff propuseram que as provas de conhecimento zero têm três propriedades:
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.
O princípio de prova do zk-SNARK de Groth16 é o seguinte:
Fonte: https://learnblockchain.cn/article/3220
As etapas são:
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.