O sistema de zk-SNARKs teve origem nos resultados de pesquisa de Goldwasser, Micali e Rackoff em 1985. Eles exploraram a quantidade de conhecimento que precisa ser trocada para provar a correção de uma declaração em sistemas interativos, através de múltiplas interações. Se a prova puder ser concluída sem a troca de nenhum conhecimento, é chamada de zk-SNARKs.
Os sistemas de zk-SNARKs iniciais apresentavam deficiências em termos de eficiência e praticidade, permanecendo principalmente no nível teórico. Nos últimos 10 anos, com a ascensão da criptografia no campo das criptomoedas, os zk-SNARKs começaram a prosperar, tornando-se uma direção de pesquisa importante. Entre eles, o desenvolvimento de protocolos de zk-SNARKs gerais, não interativos e com escalabilidade limitada é uma das principais direções de exploração.
Uma importante quebra de paradigma na prova de conhecimento zero foi a prova de conhecimento zero não interativa de pares curtos proposta por Groth em 2010. Isso estabeleceu a base teórica para zk-SNARKs. Em 2015, a Zcash adotou um sistema de prova de conhecimento zero para implementar a proteção da privacidade das transações, marcando o início da ampla aplicação da prova de conhecimento zero.
Outros resultados acadêmicos importantes incluem:
Pinóquio de 2013: comprimindo o tempo de prova e verificação a um intervalo utilizável
Groth16 de 2016: reduziu o tamanho da prova, melhorou a eficiência da verificação
Bulletproofs de 2017: propuseram provas curtas sem necessidade de configuração confiável
zk-STARKs de 2018: proposta de um novo protocolo sem configuração confiável
Além disso, PLONK, Halo2 e outros também são avanços importantes, que melhoraram os zk-SNARKs.
zk-SNARKs na aplicação
As duas aplicações mais amplas de zk-SNARKs são a proteção da privacidade e a escalabilidade.
proteção de privacidade
Projetos de negociação de privacidade como Zcash e Monero tornaram-se uma direção importante após seu lançamento. No entanto, como a necessidade de negociações de privacidade não atingiu as expectativas, esses projetos gradualmente entraram nas ligas secundárias.
O Zcash utiliza a tecnologia zk-SNARKs, cujos passos de transação incluem: configuração do sistema, geração de chaves públicas e privadas, cunhagem, geração de provas, verificação e receção. No entanto, o Zcash baseia-se no modelo UTXO, apenas ocultando parte das informações da transação, em vez de as esconder completamente. A taxa de utilização de transações privadas é inferior a 10%.
O Tornado Cash utiliza um design de um único grande pool de mistura, baseado na rede Ethereum, utilizando tecnologia zk-SNARKs. Ele garante que apenas as moedas depositadas possam ser retiradas, cada moeda pode ser retirada apenas uma vez, e o processo de prova está vinculado ao aviso de anulação.
escalabilidade
A escalabilidade ZK pode ser implementada em uma rede de camada um ( como Mina ) ou em uma rede de camada dois (, ou seja, zk-rollup ). O zk-rollup inclui dois tipos de papéis: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator combina um grande número de transações e gera zk-SNARKs, atualizando a árvore de estado do Ethereum.
As vantagens do zk-rollup são custos baixos e rápida finalização, enquanto as desvantagens são a grande carga computacional e a possibilidade de problemas de segurança.
Atualmente, os principais projetos de zk-rollup incluem: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Eles apresentam diferenças na escolha de SNARK/STARK e na compatibilidade com EVM.
A compatibilidade com EVM tem sido um problema. Alguns projetos optam por desenvolver sua própria máquina virtual e linguagem, mas isso aumenta o custo de aprendizado dos desenvolvedores. Atualmente, existem duas soluções principais na indústria: compatibilidade total com os códigos de operação Solidity ou o design de uma nova máquina virtual amigável a ZK e compatível com Solidity. Recentemente, houve progressos importantes na compatibilidade com EVM, com a expectativa de permitir uma migração sem costura para os desenvolvedores.
Princípio de implementação do zk-SNARKs
ZK-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) é um sistema zk-SNARKs com as seguintes características:
zk-SNARKs: O processo de prova não revela informações adicionais
Simples: volume de verificação pequeno
Não interativo: sem necessidade de múltiplas interações
Confiabilidade: provadores com capacidade computacional limitada não conseguem falsificar provas
Conhecimento: o provador deve saber informações válidas para construir a prova
O processo de prova ZK-SNARKs de Groth16 inclui:
Converter o problema em circuitos
Converter o circuito para a forma R1CS
Conversão de R1CS para a forma QAP
Estabelecer configurações confiáveis, gerar chave de prova e chave de verificação
Gerar e verificar provas zk-SNARKs
A tecnologia de zk-SNARKs ainda está em rápida evolução e espera-se que desempenhe um papel ainda maior na proteção da privacidade, escalabilidade e outros aspectos no futuro.
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.
zk-SNARKs技术发展与应用全解析:从隐私保护到Layer2扩容
zk-SNARKs的发展与应用
zk-SNARKs da História
O sistema de zk-SNARKs teve origem nos resultados de pesquisa de Goldwasser, Micali e Rackoff em 1985. Eles exploraram a quantidade de conhecimento que precisa ser trocada para provar a correção de uma declaração em sistemas interativos, através de múltiplas interações. Se a prova puder ser concluída sem a troca de nenhum conhecimento, é chamada de zk-SNARKs.
Os sistemas de zk-SNARKs iniciais apresentavam deficiências em termos de eficiência e praticidade, permanecendo principalmente no nível teórico. Nos últimos 10 anos, com a ascensão da criptografia no campo das criptomoedas, os zk-SNARKs começaram a prosperar, tornando-se uma direção de pesquisa importante. Entre eles, o desenvolvimento de protocolos de zk-SNARKs gerais, não interativos e com escalabilidade limitada é uma das principais direções de exploração.
Uma importante quebra de paradigma na prova de conhecimento zero foi a prova de conhecimento zero não interativa de pares curtos proposta por Groth em 2010. Isso estabeleceu a base teórica para zk-SNARKs. Em 2015, a Zcash adotou um sistema de prova de conhecimento zero para implementar a proteção da privacidade das transações, marcando o início da ampla aplicação da prova de conhecimento zero.
Outros resultados acadêmicos importantes incluem:
Além disso, PLONK, Halo2 e outros também são avanços importantes, que melhoraram os zk-SNARKs.
zk-SNARKs na aplicação
As duas aplicações mais amplas de zk-SNARKs são a proteção da privacidade e a escalabilidade.
proteção de privacidade
Projetos de negociação de privacidade como Zcash e Monero tornaram-se uma direção importante após seu lançamento. No entanto, como a necessidade de negociações de privacidade não atingiu as expectativas, esses projetos gradualmente entraram nas ligas secundárias.
O Zcash utiliza a tecnologia zk-SNARKs, cujos passos de transação incluem: configuração do sistema, geração de chaves públicas e privadas, cunhagem, geração de provas, verificação e receção. No entanto, o Zcash baseia-se no modelo UTXO, apenas ocultando parte das informações da transação, em vez de as esconder completamente. A taxa de utilização de transações privadas é inferior a 10%.
O Tornado Cash utiliza um design de um único grande pool de mistura, baseado na rede Ethereum, utilizando tecnologia zk-SNARKs. Ele garante que apenas as moedas depositadas possam ser retiradas, cada moeda pode ser retirada apenas uma vez, e o processo de prova está vinculado ao aviso de anulação.
escalabilidade
A escalabilidade ZK pode ser implementada em uma rede de camada um ( como Mina ) ou em uma rede de camada dois (, ou seja, zk-rollup ). O zk-rollup inclui dois tipos de papéis: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator combina um grande número de transações e gera zk-SNARKs, atualizando a árvore de estado do Ethereum.
As vantagens do zk-rollup são custos baixos e rápida finalização, enquanto as desvantagens são a grande carga computacional e a possibilidade de problemas de segurança.
Atualmente, os principais projetos de zk-rollup incluem: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Eles apresentam diferenças na escolha de SNARK/STARK e na compatibilidade com EVM.
A compatibilidade com EVM tem sido um problema. Alguns projetos optam por desenvolver sua própria máquina virtual e linguagem, mas isso aumenta o custo de aprendizado dos desenvolvedores. Atualmente, existem duas soluções principais na indústria: compatibilidade total com os códigos de operação Solidity ou o design de uma nova máquina virtual amigável a ZK e compatível com Solidity. Recentemente, houve progressos importantes na compatibilidade com EVM, com a expectativa de permitir uma migração sem costura para os desenvolvedores.
Princípio de implementação do zk-SNARKs
ZK-SNARK(Zero-Knowledge Succinct Non-Interactive Argument of Knowledge) é um sistema zk-SNARKs com as seguintes características:
O processo de prova ZK-SNARKs de Groth16 inclui:
A tecnologia de zk-SNARKs ainda está em rápida evolução e espera-se que desempenhe um papel ainda maior na proteção da privacidade, escalabilidade e outros aspectos no futuro.