O sistema de zk-SNARKs teve sua origem em 1985 com o artigo de Goldwasser, Micali e Rackoff, que explorou a quantidade de conhecimento que deve ser trocada para provar a correção em sistemas interativos. Se a troca de conhecimento puder ser realizada, é chamada de zk-SNARK. Os sistemas de zk-SNARKs iniciais eram ineficientes e pouco utilizáveis, permanecendo principalmente em nível teórico.
Nos últimos dez anos, zk-SNARKs se desenvolveram rapidamente, tornando-se uma importante direção no campo da criptografia. Entre elas, o desenvolvimento de protocolos de zk-SNARKs que sejam gerais, não interativos e com tamanho de prova pequeno é uma das direções de exploração chave. zk-SNARKs precisam equilibrar entre a velocidade de prova, a velocidade de verificação e o tamanho da prova.
O artigo de Groth de 2010 foi um importante avanço no campo dos ZKP, estabelecendo a base teórica para zk-SNARKs. Em 2015, o Zcash aplicou zk-SNARKs para proteger a privacidade das transações, dando início à ampla aplicação dos ZKP.
Outros resultados académicos importantes incluem:
Protocolo Pinocchio de 2013
Algoritmo Groth16 de 2016
Algoritmo Bulletproofs de 2017
Protocolo zk-STARKs de 2018
Além disso, PLONK, Halo2 e outros também são avanços importantes na área de zk-SNARKs.
Dois, Aplicações de zk-SNARKs
zk-SNARKs são aplicados principalmente em duas áreas: proteção da privacidade e escalabilidade.
proteção de privacidade
Os projetos de transação privada iniciais, como Zcash e Monero, eram bastante proeminentes, mas agora estão gradualmente desaparecendo da vista mainstream. O Zcash utiliza zk-SNARKs para implementar transações privadas, e os principais passos incluem configuração do sistema, geração de chaves, cunhagem, transação, verificação e recebimento.
O Tornado Cash utiliza um único grande pool de mistura, baseado na rede Ethereum, adotando zk-SNARKs para implementar a proteção de privacidade. As suas principais características incluem que apenas as moedas depositadas podem ser retiradas, as moedas não podem ser retiradas repetidamente, e a prova está ligada à notificação de anulação.
Em comparação com a escalabilidade, a implementação da proteção de privacidade é relativamente fácil. Se a solução de escalabilidade for bem-sucedida, a proteção de privacidade basicamente não será um problema.
escalabilidade
A expansão ZK pode ser realizada em uma rede de camada um ou camada dois. O ZK rollup é uma importante solução de escalabilidade de camada dois, incluindo dois tipos de papéis: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator combina transações e gera provas zk-SNARKs, atualizando a árvore de estado do Ethereum.
As vantagens dos ZK rollups são custos baixos, finalização rápida, etc., enquanto as desvantagens incluem grande demanda computacional e necessidade de configuração confiável. Atualmente, os principais projetos de ZK rollup incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring e Scroll.
A rota técnica é escolhida principalmente entre SNARK( e a versão melhorada ), e STARK, bem como o nível de suporte ao EVM. A compatibilidade com o EVM é uma questão chave que afeta o ecossistema de desenvolvimento e o cenário competitivo.
Três, o princípio básico dos zk-SNARKs
ZK-SNARKs possui três características: integridade, confiabilidade e conhecimento zero. Seu princípio de implementação inclui principalmente:
Converter o problema em circuitos
Converter o circuito para a forma R1CS
R1CS convertido para a forma QAP
Estabelecer um setup de confiança, gerar parâmetros aleatórios
Gerar e verificar provas zk-SNARKs
O desenvolvimento, aplicação e relação do ZK-SNARKs com o ZK-STARK serão discutidos em profundidade posteriormente.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
O desenvolvimento dos zk-SNARKs e suas aplicações duplas: proteção da privacidade e escalabilidade Layer2
zk-SNARKs de história e aplicação
I. Desenvolvimento das zk-SNARKs
O sistema de zk-SNARKs teve sua origem em 1985 com o artigo de Goldwasser, Micali e Rackoff, que explorou a quantidade de conhecimento que deve ser trocada para provar a correção em sistemas interativos. Se a troca de conhecimento puder ser realizada, é chamada de zk-SNARK. Os sistemas de zk-SNARKs iniciais eram ineficientes e pouco utilizáveis, permanecendo principalmente em nível teórico.
Nos últimos dez anos, zk-SNARKs se desenvolveram rapidamente, tornando-se uma importante direção no campo da criptografia. Entre elas, o desenvolvimento de protocolos de zk-SNARKs que sejam gerais, não interativos e com tamanho de prova pequeno é uma das direções de exploração chave. zk-SNARKs precisam equilibrar entre a velocidade de prova, a velocidade de verificação e o tamanho da prova.
O artigo de Groth de 2010 foi um importante avanço no campo dos ZKP, estabelecendo a base teórica para zk-SNARKs. Em 2015, o Zcash aplicou zk-SNARKs para proteger a privacidade das transações, dando início à ampla aplicação dos ZKP.
Outros resultados académicos importantes incluem:
Além disso, PLONK, Halo2 e outros também são avanços importantes na área de zk-SNARKs.
Dois, Aplicações de zk-SNARKs
zk-SNARKs são aplicados principalmente em duas áreas: proteção da privacidade e escalabilidade.
proteção de privacidade
Os projetos de transação privada iniciais, como Zcash e Monero, eram bastante proeminentes, mas agora estão gradualmente desaparecendo da vista mainstream. O Zcash utiliza zk-SNARKs para implementar transações privadas, e os principais passos incluem configuração do sistema, geração de chaves, cunhagem, transação, verificação e recebimento.
O Tornado Cash utiliza um único grande pool de mistura, baseado na rede Ethereum, adotando zk-SNARKs para implementar a proteção de privacidade. As suas principais características incluem que apenas as moedas depositadas podem ser retiradas, as moedas não podem ser retiradas repetidamente, e a prova está ligada à notificação de anulação.
Em comparação com a escalabilidade, a implementação da proteção de privacidade é relativamente fácil. Se a solução de escalabilidade for bem-sucedida, a proteção de privacidade basicamente não será um problema.
escalabilidade
A expansão ZK pode ser realizada em uma rede de camada um ou camada dois. O ZK rollup é uma importante solução de escalabilidade de camada dois, incluindo dois tipos de papéis: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator combina transações e gera provas zk-SNARKs, atualizando a árvore de estado do Ethereum.
As vantagens dos ZK rollups são custos baixos, finalização rápida, etc., enquanto as desvantagens incluem grande demanda computacional e necessidade de configuração confiável. Atualmente, os principais projetos de ZK rollup incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring e Scroll.
A rota técnica é escolhida principalmente entre SNARK( e a versão melhorada ), e STARK, bem como o nível de suporte ao EVM. A compatibilidade com o EVM é uma questão chave que afeta o ecossistema de desenvolvimento e o cenário competitivo.
Três, o princípio básico dos zk-SNARKs
ZK-SNARKs possui três características: integridade, confiabilidade e conhecimento zero. Seu princípio de implementação inclui principalmente:
O desenvolvimento, aplicação e relação do ZK-SNARKs com o ZK-STARK serão discutidos em profundidade posteriormente.