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