zk-SNARKs: princípios básicos e aplicações na indústria
I. Desenvolvimento dos zk-SNARKs
Os modernos zk-SNARKs têm origem no artigo pioneiro de Goldwasser, Micali e Rackoff de 1985. Este artigo explora a quantidade de conhecimento que deve ser trocada para provar a veracidade de uma afirmação em sistemas interativos, através de múltiplas interações. Se a prova puder ser realizada sem qualquer troca de conhecimento, é chamada de zk-SNARK. Embora este sistema interativo seja correto em um sentido probabilístico, não é perfeito.
A emergência de sistemas não interativos (NP) tornou os zk-SNARKs mais completos. No entanto, os primeiros sistemas de zk-SNARKs apresentavam deficiências em termos de eficiência e praticidade, permanecendo apenas no nível teórico. Somente nos últimos dez anos, com o surgimento da criptografia no campo das criptomoedas, é que os zk-SNARKs realmente começaram a ser aplicados.
Um objetivo chave dos zk-SNARKs é desenvolver um protocolo geral, não interativo e de volume de prova limitado. Isso requer um equilíbrio entre a velocidade de prova, a velocidade de verificação e o volume de prova.
O artigo de Groth de 2010 é um dos maiores avanços em zk-SNARKs, estabelecendo a base teórica. Em 2015, o Zcash aplicou zk-SNARKs na proteção da privacidade das transações, inaugurando uma nova era de combinação entre zk-SNARKs e contratos inteligentes.
Outros resultados acadêmicos importantes incluem: o protocolo Pinocchio de 2013, o algoritmo Groth16 de 2016, o algoritmo Bulletproofs de 2017 e o protocolo zk-STARKs de 2018, entre outros. Essas pesquisas impulsionaram o progresso contínuo dos zk-SNARKs em termos de eficiência e gama de aplicações.
Dois, principais aplicações de zk-SNARKs
As aplicações mais amplas de zk-SNARKs atualmente são a proteção de privacidade e a escalabilidade.
No que diz respeito à proteção da privacidade, os primeiros projetos representativos incluem Zcash e Monero. Embora a necessidade de transações privadas não tenha sido tão proeminente como esperado, esses projetos continuam a se desenvolver.
Na questão da escalabilidade, com a transição do Ethereum para uma abordagem de escalabilidade centrada em rollup, as soluções de escalabilidade baseadas em zk-SNARKs tornaram-se novamente o foco. Existem duas principais formas de implementação: escalabilidade de rede de camada 1 ( como Mina ) e escalabilidade de rede de camada 2 (, ou seja, zk-rollup ).
Os papéis principais do zk-rollup incluem Sequencer e Aggregator. O Sequencer é responsável por empacotar as transações, enquanto o Aggregator combina um grande número de transações e gera zk-SNARKs para atualizar o estado da cadeia principal.
As vantagens do zk-rollup estão nos baixos custos, na rápida finalização e na proteção da privacidade. No entanto, existem desafios, como a grande quantidade de computação e a necessidade de configurações confiáveis.
Os principais projetos de zk-rollup no mercado atualmente incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Esses projetos, na sua rota técnica, escolhem principalmente entre SNARK( e suas versões melhoradas ) e STARK, assim como o nível de suporte ao EVM.
A compatibilidade com EVM é uma questão importante. Alguns projetos optam por serem totalmente compatíveis com os códigos de operação Solidity, enquanto outros projetam novas máquinas virtuais para equilibrar a amigabilidade com ZK e a compatibilidade com Solidity. Nos últimos anos, o rápido progresso da compatibilidade com EVM promete permitir a migração sem costura dos desenvolvedores da cadeia principal do Ethereum para zk-rollup.
Três, os princípios básicos do zk-SNARKs
zk-SNARKs é a abreviação de zero-knowledge Succinct Non-interactive ARguments of Knowledge, e possui as seguintes características:
Zero Knowledge: o processo de prova não vaza informações adicionais
Succinto: o volume de verificação é pequeno
Não interativo:非交互式
Argumentos: confiabilidade do cálculo
do Conhecimento: o provador precisa saber informações válidas
O processo de prova zk-SNARKs do Groth16 inclui principalmente:
Converter o problema em circuito
Converter o circuito para a forma R1CS
Converter R1CS para a forma QAP
Estabelecer uma configuração confiável, gerar a chave de prova e a chave de verificação
Gerar e verificar provas zk-SNARKs
zk-SNARKs está a desenvolver-se rapidamente, e espera-se que desempenhe um papel importante em mais áreas 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: da ruptura teórica à tecnologia revolucionária de aplicação em Ativos de criptografia
zk-SNARKs: princípios básicos e aplicações na indústria
I. Desenvolvimento dos zk-SNARKs
Os modernos zk-SNARKs têm origem no artigo pioneiro de Goldwasser, Micali e Rackoff de 1985. Este artigo explora a quantidade de conhecimento que deve ser trocada para provar a veracidade de uma afirmação em sistemas interativos, através de múltiplas interações. Se a prova puder ser realizada sem qualquer troca de conhecimento, é chamada de zk-SNARK. Embora este sistema interativo seja correto em um sentido probabilístico, não é perfeito.
A emergência de sistemas não interativos (NP) tornou os zk-SNARKs mais completos. No entanto, os primeiros sistemas de zk-SNARKs apresentavam deficiências em termos de eficiência e praticidade, permanecendo apenas no nível teórico. Somente nos últimos dez anos, com o surgimento da criptografia no campo das criptomoedas, é que os zk-SNARKs realmente começaram a ser aplicados.
Um objetivo chave dos zk-SNARKs é desenvolver um protocolo geral, não interativo e de volume de prova limitado. Isso requer um equilíbrio entre a velocidade de prova, a velocidade de verificação e o volume de prova.
O artigo de Groth de 2010 é um dos maiores avanços em zk-SNARKs, estabelecendo a base teórica. Em 2015, o Zcash aplicou zk-SNARKs na proteção da privacidade das transações, inaugurando uma nova era de combinação entre zk-SNARKs e contratos inteligentes.
Outros resultados acadêmicos importantes incluem: o protocolo Pinocchio de 2013, o algoritmo Groth16 de 2016, o algoritmo Bulletproofs de 2017 e o protocolo zk-STARKs de 2018, entre outros. Essas pesquisas impulsionaram o progresso contínuo dos zk-SNARKs em termos de eficiência e gama de aplicações.
Dois, principais aplicações de zk-SNARKs
As aplicações mais amplas de zk-SNARKs atualmente são a proteção de privacidade e a escalabilidade.
No que diz respeito à proteção da privacidade, os primeiros projetos representativos incluem Zcash e Monero. Embora a necessidade de transações privadas não tenha sido tão proeminente como esperado, esses projetos continuam a se desenvolver.
Na questão da escalabilidade, com a transição do Ethereum para uma abordagem de escalabilidade centrada em rollup, as soluções de escalabilidade baseadas em zk-SNARKs tornaram-se novamente o foco. Existem duas principais formas de implementação: escalabilidade de rede de camada 1 ( como Mina ) e escalabilidade de rede de camada 2 (, ou seja, zk-rollup ).
Os papéis principais do zk-rollup incluem Sequencer e Aggregator. O Sequencer é responsável por empacotar as transações, enquanto o Aggregator combina um grande número de transações e gera zk-SNARKs para atualizar o estado da cadeia principal.
As vantagens do zk-rollup estão nos baixos custos, na rápida finalização e na proteção da privacidade. No entanto, existem desafios, como a grande quantidade de computação e a necessidade de configurações confiáveis.
Os principais projetos de zk-rollup no mercado atualmente incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring, Scroll, entre outros. Esses projetos, na sua rota técnica, escolhem principalmente entre SNARK( e suas versões melhoradas ) e STARK, assim como o nível de suporte ao EVM.
A compatibilidade com EVM é uma questão importante. Alguns projetos optam por serem totalmente compatíveis com os códigos de operação Solidity, enquanto outros projetam novas máquinas virtuais para equilibrar a amigabilidade com ZK e a compatibilidade com Solidity. Nos últimos anos, o rápido progresso da compatibilidade com EVM promete permitir a migração sem costura dos desenvolvedores da cadeia principal do Ethereum para zk-rollup.
Três, os princípios básicos do zk-SNARKs
zk-SNARKs é a abreviação de zero-knowledge Succinct Non-interactive ARguments of Knowledge, e possui as seguintes características:
O processo de prova zk-SNARKs do Groth16 inclui principalmente:
zk-SNARKs está a desenvolver-se rapidamente, e espera-se que desempenhe um papel importante em mais áreas no futuro.