zk-SNARKs: do teórico à prática - o desenvolvimento
zk-SNARKs(ZKP) como uma tecnologia em destaque na indústria de blockchain, desenvolveu-se rapidamente nos últimos anos. Este artigo revisará a história do desenvolvimento do ZKP, explorará seus princípios básicos e principais aplicações, e fornecerá aos leitores uma visão geral deste complexo campo.
I. Desenvolvimento dos zk-SNARKs
O sistema moderno de zk-SNARKs tem origem no artigo de 1985 dos autores Goldwasser, Micali e Rackoff. Este artigo explora como provar a veracidade de uma afirmação em sistemas interativos, através de múltiplas interações, sem revelar informações adicionais. Embora esse sistema interativo seja probabilisticamente correto, 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 ainda apresentavam deficiências em termos de eficiência e usabilidade, permanecendo principalmente em um nível teórico. Somente na última década, com o surgimento da criptografia no campo das criptomoedas, é que os zk-SNARKs realmente entraram na fase prática.
O artigo de Groth de 2010 estabeleceu a base teórica para zk-SNARKs, sendo um marco importante no desenvolvimento de ZKP. Em 2015, a moeda de privacidade Z-cash aplicou pela primeira vez a prova de conhecimento zero na proteção da privacidade das transações, inaugurando o uso amplo de ZKP.
Desde então, uma série de resultados acadêmicos impulsionou o desenvolvimento dos zk-SNARKs:
Em 2013, o protocolo Pinocchio comprimiu o tempo de prova e verificação
Em 2016, o Groth16 simplificou o tamanho da prova e melhorou a eficiência da verificação
Em 2017, os Bulletproofs propuseram provas de conhecimento zero não interativas compactas.
Em 2018, zk-STARKs implementaram um protocolo ZKP sem necessidade de configuração confiável.
Outras tecnologias, como PLONK e Halo2, também fizeram melhorias importantes para zk-SNARKs.
Dois, as principais aplicações de zk-SNARKs
As aplicações mais amplas do ZKP atualmente são a proteção de privacidade e a escalabilidade.
proteção de privacidade
Projetos de transação privada iniciais como Z-cash e Monero promoveram a aplicação de zk-SNARKs no campo da proteção da privacidade. Tomando Z-cash como exemplo, ele utiliza zk-SNARKs para garantir a privacidade das transações:
Fase de configuração do sistema para gerar a chave de prova e a chave de verificação
Gerar novas moedas e registrar o endereço público e o compromisso da moeda
Gerar prova zk-SNARK
Os validadores verificam a correção das transações
O destinatário recebe a moeda, e se precisar usar, repete os passos acima.
No entanto, a taxa de uso de transações de privacidade de projetos como o Z-cash é baixa, mostrando que a demanda por privacidade não é tão alta quanto o esperado. Em comparação, o design de um único grande pool de mistura adotado pelo Tornado Cash é mais genérico.
escalabilidade
A aplicação de ZKP na escalabilidade é principalmente zk-rollup. Existem duas categorias de papéis no zk-rollup:
Sequenciador: responsável por empacotar transações
Aggregador: combina um grande número de transações e gera provas zk-SNARKs
As vantagens do zk-rollup incluem baixos custos, alta velocidade de transação e proteção da privacidade. No entanto, também existem desvantagens, como a grande quantidade de cálculos e a necessidade de configurações confiáveis.
Atualmente, os principais projetos zk-rollup incluem StarkNet, zkSync, Aztec, Polygon Hermez, entre outros, na escolha da linha técnica, principalmente entre SNARK e STARK, bem como se suportam EVM.
A compatibilidade com EVM é uma questão importante. Alguns projetos optam por ser totalmente compatíveis com os códigos de operação Solidity, enquanto outros projetam novas máquinas virtuais compatíveis com Solidity. A elevação da compatibilidade com EVM afetará o ecossistema de desenvolvimento de ZK e o cenário competitivo.
Três, os princípios básicos do zk-SNARKs
zk-SNARKs é uma das soluções de ZKP mais amplamente utilizadas atualmente. Possui as seguintes características:
Zero Knowledge: o processo de prova não revela informações adicionais
Succinto: prova de pequeno volume
Não interativo:非交互式
Argumentos: possui confiabilidade computacional
do Conhecimento: o provador deve conhecer informações válidas
Os passos básicos para a implementação de zk-SNARKs são:
Converter a questão em um circuito
Converter o circuito para a forma R1CS
Converter R1CS para a forma QAP
Gerar parâmetros aleatórios de configuração confiável
Gerar e validar provas zk-SNARKs
zk-SNARKs como uma tecnologia de ponta, está rapidamente a desenvolver-se tanto a nível teórico como prático. Com mais projetos a serem implementados, espera-se que os ZKP desempenhem um papel ainda maior no campo da blockchain.
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.
17 Curtidas
Recompensa
17
6
Compartilhar
Comentário
0/400
SelfStaking
· 14h atrás
Não quero aprender, é muito profundo.
Ver originalResponder0
SoliditySlayer
· 14h atrás
Esta teoria é um pouco aborrecida, não é? O chão já está a ficar entediado.
zk-SNARKs ZKP: do avanço teórico à aplicação prática e desenvolvimento
zk-SNARKs: do teórico à prática - o desenvolvimento
zk-SNARKs(ZKP) como uma tecnologia em destaque na indústria de blockchain, desenvolveu-se rapidamente nos últimos anos. Este artigo revisará a história do desenvolvimento do ZKP, explorará seus princípios básicos e principais aplicações, e fornecerá aos leitores uma visão geral deste complexo campo.
I. Desenvolvimento dos zk-SNARKs
O sistema moderno de zk-SNARKs tem origem no artigo de 1985 dos autores Goldwasser, Micali e Rackoff. Este artigo explora como provar a veracidade de uma afirmação em sistemas interativos, através de múltiplas interações, sem revelar informações adicionais. Embora esse sistema interativo seja probabilisticamente correto, 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 ainda apresentavam deficiências em termos de eficiência e usabilidade, permanecendo principalmente em um nível teórico. Somente na última década, com o surgimento da criptografia no campo das criptomoedas, é que os zk-SNARKs realmente entraram na fase prática.
O artigo de Groth de 2010 estabeleceu a base teórica para zk-SNARKs, sendo um marco importante no desenvolvimento de ZKP. Em 2015, a moeda de privacidade Z-cash aplicou pela primeira vez a prova de conhecimento zero na proteção da privacidade das transações, inaugurando o uso amplo de ZKP.
Desde então, uma série de resultados acadêmicos impulsionou o desenvolvimento dos zk-SNARKs:
Outras tecnologias, como PLONK e Halo2, também fizeram melhorias importantes para zk-SNARKs.
Dois, as principais aplicações de zk-SNARKs
As aplicações mais amplas do ZKP atualmente são a proteção de privacidade e a escalabilidade.
proteção de privacidade
Projetos de transação privada iniciais como Z-cash e Monero promoveram a aplicação de zk-SNARKs no campo da proteção da privacidade. Tomando Z-cash como exemplo, ele utiliza zk-SNARKs para garantir a privacidade das transações:
No entanto, a taxa de uso de transações de privacidade de projetos como o Z-cash é baixa, mostrando que a demanda por privacidade não é tão alta quanto o esperado. Em comparação, o design de um único grande pool de mistura adotado pelo Tornado Cash é mais genérico.
escalabilidade
A aplicação de ZKP na escalabilidade é principalmente zk-rollup. Existem duas categorias de papéis no zk-rollup:
As vantagens do zk-rollup incluem baixos custos, alta velocidade de transação e proteção da privacidade. No entanto, também existem desvantagens, como a grande quantidade de cálculos e a necessidade de configurações confiáveis.
Atualmente, os principais projetos zk-rollup incluem StarkNet, zkSync, Aztec, Polygon Hermez, entre outros, na escolha da linha técnica, principalmente entre SNARK e STARK, bem como se suportam EVM.
A compatibilidade com EVM é uma questão importante. Alguns projetos optam por ser totalmente compatíveis com os códigos de operação Solidity, enquanto outros projetam novas máquinas virtuais compatíveis com Solidity. A elevação da compatibilidade com EVM afetará o ecossistema de desenvolvimento de ZK e o cenário competitivo.
Três, os princípios básicos do zk-SNARKs
zk-SNARKs é uma das soluções de ZKP mais amplamente utilizadas atualmente. Possui as seguintes características:
Os passos básicos para a implementação de zk-SNARKs são:
zk-SNARKs como uma tecnologia de ponta, está rapidamente a desenvolver-se tanto a nível teórico como prático. Com mais projetos a serem implementados, espera-se que os ZKP desempenhem um papel ainda maior no campo da blockchain.