O sistema moderno de zk-SNARKs tem origem no artigo de 1985, coautorado por Goldwasser, Micali e Rackoff. Este artigo explora a quantidade de conhecimento que deve ser trocada para provar a validade de uma afirmação através de múltiplas interações em um sistema interativo. Se a troca de conhecimento puder ser realizada de forma a não revelar informações, isso é denominado zk-SNARK. Os primeiros sistemas de zk-SNARKs apresentavam deficiências em termos de eficiência e aplicabilidade, permanecendo principalmente no nível teórico.
Nos últimos dez anos, com o surgimento da criptografia no campo das criptomoedas, os zk-SNARKs começaram a prosperar. Dentre eles, a construção de protocolos zk-SNARKs gerais, não interativos e com tamanho de prova limitado tornou-se uma das direções principais de exploração. O cerne dos zk-SNARKs reside na ponderação entre a velocidade de prova, a velocidade de verificação e o tamanho da prova.
O artigo publicado por Groth em 2010 foi um avanço importante no campo das provas de conhecimento zero, estabelecendo a base teórica para zk-SNARKs. Em 2015, a Zcash adotou um sistema de provas de conhecimento zero para implementar a proteção da privacidade das transações, marcando um progresso significativo da tecnologia em termos de aplicação. Desde então, zk-SNARKs foram combinados com contratos inteligentes, expandindo cenários de aplicação mais amplos.
Outros resultados acadêmicos importantes incluem:
Pinóquio de 2013: comprimindo provas e reduzindo o tempo de verificação a um intervalo prático
Groth16 de 2016: redução do tamanho da prova e aumento da eficiência de verificação
Bulletproofs de 2017: propôs provas de conhecimento zero não interativas curtas sem configuração confiável
zk-STARKs de 2018: proposta de protocolo ZK-STARK que não requer configuração confiável
O surgimento de tecnologias como PLONK e Halo2 também trouxe melhorias adicionais para zk-SNARKs.
Dois, a aplicação de zk-SNARKs
As aplicações mais amplas de zk-SNARKs são a proteção da privacidade e a escalabilidade. Projetos de transação privada iniciais como Zcash e Monero atraíram bastante atenção, mas devido à demanda real estar aquém das expectativas, foram gradualmente afastados do mainstream. Nos últimos anos, com a transição do Ethereum 2.0 para uma abordagem centrada em rollups, as soluções de escalabilidade baseadas em ZK voltaram a ser o centro das atenções.
transações privadas
Os principais projetos de transações privadas incluem:
Zcash e Tornado que utilizam zk-SNARKs
Usar Monero com Bulletproof
Tomando o Zcash como exemplo, o processo de transação com zk-SNARKs inclui: configuração do sistema, geração de chaves, cunhagem, transação, verificação e recebimento. No entanto, o Zcash ainda apresenta algumas limitações, como ser baseado no modelo UTXO e ter dificuldade de escalabilidade. A proporção real de transações privadas utilizadas é inferior a 10%, o que indica que sua promoção não foi bem-sucedida.
Em comparação, o Tornado utiliza um único grande pool de mistura de moedas de forma mais genérica, e é baseado na rede Ethereum. O Tornado é essencialmente um pool de mistura que utiliza zk-SNARKs, podendo oferecer várias características de proteção de privacidade.
expansão
A aplicação de zk na escalabilidade pode ser dividida em redes de primeira camada ( como Mina ) e redes de segunda camada (, ou seja, zk-rollup ). A ideia central do zk-rollup foi proposta pela primeira vez por Vitalik em 2018.
zk-rollup envolve principalmente duas funções: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator é responsável por combinar transações e gerar provas zk-SNARKs, que são utilizadas para atualizar a árvore de estado do Ethereum.
As vantagens do zk-rollup incluem: baixos custos, finalização rápida, proteção de privacidade, entre outras. As desvantagens incluem: grande carga computacional, considerações de segurança ( como SNARKs que requerem configuração confiável ), e a possibilidade de alterar a ordem das transações, entre outras.
Atualmente, os principais projetos de zk-rollup no mercado são: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Esses projetos, na sua linha técnica, fazem principalmente uma escolha entre SNARK( e suas versões melhoradas ) e STARK, assim como o nível de suporte ao EVM.
A compatibilidade do sistema ZK com a EVM tem sido um foco de atenção na indústria. Atualmente, existem duas principais soluções: compatibilidade total com os códigos de operação Solidity ou o design de uma nova máquina virtual amigável ao ZK que seja compatível com o Solidity. Nos últimos anos, a tecnologia tem evoluído rapidamente, e a compatibilidade da EVM melhorou significativamente, oferecendo mais conveniência aos desenvolvedores.
Três, o princípio básico do zk-SNARKs
zk-SNARKs deve satisfazer três propriedades: integridade, confiabilidade e a propriedade de zero conhecimento. zk-SNARK(Argumento de Conhecimento Succinto Não Interativo de Zero Conhecimento) como uma importante solução de zero conhecimento, possui as seguintes características:
zk-SNARKs: o processo de prova não vaza informações adicionais
Simplicidade: volume de verificação pequeno
Não interativo: não requer múltiplas interações
Confiabilidade: provadores com capacidade de cálculo limitada não conseguem falsificar provas
Conhecimento: o provador deve conhecer informações válidas para construir a prova
Tomando como exemplo o zk-SNARK Groth16, o seu princípio de prova inclui os seguintes passos:
Converter o problema em circuito
Converter o circuito para a forma R1CS
Conversão de R1CS para a forma QAP
Estabelecer configurações de confiança, gerar parâmetros aleatórios
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.
8 Curtidas
Recompensa
8
5
Compartilhar
Comentário
0/400
MevWhisperer
· 5h atrás
Venha ver, estou interessado!
Ver originalResponder0
Frontrunner
· 11h atrás
Eh, ainda não é tão bom quanto L2.
Ver originalResponder0
tx_pending_forever
· 11h atrás
Quando conseguirei entender zk...
Ver originalResponder0
SelfRugger
· 12h atrás
zk é realmente bom! Finalmente salvou o mercado.
Ver originalResponder0
LightningClicker
· 12h atrás
A expansão acelerada do universo à velocidade da luz está a acontecer~
zk-SNARKs: da quebra teórica às aplicações Web3
zk-SNARKs:história, aplicações e princípios
I. Desenvolvimento dos zk-SNARKs
O sistema moderno de zk-SNARKs tem origem no artigo de 1985, coautorado por Goldwasser, Micali e Rackoff. Este artigo explora a quantidade de conhecimento que deve ser trocada para provar a validade de uma afirmação através de múltiplas interações em um sistema interativo. Se a troca de conhecimento puder ser realizada de forma a não revelar informações, isso é denominado zk-SNARK. Os primeiros sistemas de zk-SNARKs apresentavam deficiências em termos de eficiência e aplicabilidade, permanecendo principalmente no nível teórico.
Nos últimos dez anos, com o surgimento da criptografia no campo das criptomoedas, os zk-SNARKs começaram a prosperar. Dentre eles, a construção de protocolos zk-SNARKs gerais, não interativos e com tamanho de prova limitado tornou-se uma das direções principais de exploração. O cerne dos zk-SNARKs reside na ponderação entre a velocidade de prova, a velocidade de verificação e o tamanho da prova.
O artigo publicado por Groth em 2010 foi um avanço importante no campo das provas de conhecimento zero, estabelecendo a base teórica para zk-SNARKs. Em 2015, a Zcash adotou um sistema de provas de conhecimento zero para implementar a proteção da privacidade das transações, marcando um progresso significativo da tecnologia em termos de aplicação. Desde então, zk-SNARKs foram combinados com contratos inteligentes, expandindo cenários de aplicação mais amplos.
Outros resultados acadêmicos importantes incluem:
O surgimento de tecnologias como PLONK e Halo2 também trouxe melhorias adicionais para zk-SNARKs.
Dois, a aplicação de zk-SNARKs
As aplicações mais amplas de zk-SNARKs são a proteção da privacidade e a escalabilidade. Projetos de transação privada iniciais como Zcash e Monero atraíram bastante atenção, mas devido à demanda real estar aquém das expectativas, foram gradualmente afastados do mainstream. Nos últimos anos, com a transição do Ethereum 2.0 para uma abordagem centrada em rollups, as soluções de escalabilidade baseadas em ZK voltaram a ser o centro das atenções.
transações privadas
Os principais projetos de transações privadas incluem:
Tomando o Zcash como exemplo, o processo de transação com zk-SNARKs inclui: configuração do sistema, geração de chaves, cunhagem, transação, verificação e recebimento. No entanto, o Zcash ainda apresenta algumas limitações, como ser baseado no modelo UTXO e ter dificuldade de escalabilidade. A proporção real de transações privadas utilizadas é inferior a 10%, o que indica que sua promoção não foi bem-sucedida.
Em comparação, o Tornado utiliza um único grande pool de mistura de moedas de forma mais genérica, e é baseado na rede Ethereum. O Tornado é essencialmente um pool de mistura que utiliza zk-SNARKs, podendo oferecer várias características de proteção de privacidade.
expansão
A aplicação de zk na escalabilidade pode ser dividida em redes de primeira camada ( como Mina ) e redes de segunda camada (, ou seja, zk-rollup ). A ideia central do zk-rollup foi proposta pela primeira vez por Vitalik em 2018.
zk-rollup envolve principalmente duas funções: Sequencer e Aggregator. O Sequencer é responsável por empacotar transações, enquanto o Aggregator é responsável por combinar transações e gerar provas zk-SNARKs, que são utilizadas para atualizar a árvore de estado do Ethereum.
As vantagens do zk-rollup incluem: baixos custos, finalização rápida, proteção de privacidade, entre outras. As desvantagens incluem: grande carga computacional, considerações de segurança ( como SNARKs que requerem configuração confiável ), e a possibilidade de alterar a ordem das transações, entre outras.
Atualmente, os principais projetos de zk-rollup no mercado são: StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Esses projetos, na sua linha técnica, fazem principalmente uma escolha entre SNARK( e suas versões melhoradas ) e STARK, assim como o nível de suporte ao EVM.
A compatibilidade do sistema ZK com a EVM tem sido um foco de atenção na indústria. Atualmente, existem duas principais soluções: compatibilidade total com os códigos de operação Solidity ou o design de uma nova máquina virtual amigável ao ZK que seja compatível com o Solidity. Nos últimos anos, a tecnologia tem evoluído rapidamente, e a compatibilidade da EVM melhorou significativamente, oferecendo mais conveniência aos desenvolvedores.
Três, o princípio básico do zk-SNARKs
zk-SNARKs deve satisfazer três propriedades: integridade, confiabilidade e a propriedade de zero conhecimento. zk-SNARK(Argumento de Conhecimento Succinto Não Interativo de Zero Conhecimento) como uma importante solução de zero conhecimento, possui as seguintes características:
Tomando como exemplo o zk-SNARK Groth16, o seu princípio de prova inclui os seguintes passos: