O sistema moderno de zk-SNARKs remonta a 1985, com a pesquisa colaborativa de Goldwasser, Micali e Rackoff. Eles propuseram como provar a veracidade de uma afirmação em sistemas interativos com a troca mínima de informações. Este conceito é denominado zk-SNARKs, ou seja, provar que um determinado enunciado é verdadeiro sem revelar qualquer informação adicional.
Os sistemas de zk-SNARKs iniciais apresentavam deficiências em termos de eficiência e praticidade, permanecendo principalmente a nível teórico. Apenas na última década, com a ampla aplicação da criptografia no campo das criptomoedas, os zk-SNARKs começaram a prosperar, tornando-se uma direção de pesquisa chave. Dentre elas, o desenvolvimento de protocolos de zk-SNARKs gerais, não interativos e com pequenos tamanhos de prova é uma das direções de exploração mais importantes.
Um importante avanço na prova de conhecimento zero foi a proposta de Groth em 2010 da prova de conhecimento zero não interativa de pares curtos, que estabeleceu a base teórica para zk-SNARKs. Em 2015, a aplicação da prova de conhecimento zero no projeto Zcash implementou a proteção da privacidade das transações, abrindo cenários de aplicação mais amplos.
Desde então, uma série de importantes resultados acadêmicos surgiram a seguir:
O protocolo Pinocchio de 2013 melhorou significativamente a eficiência de prova e verificação.
O Groth16 de 2016 simplificou ainda mais o tamanho da prova e aumentou a velocidade de verificação.
A proposta de Bulletproofs em 2017 apresentou zk-SNARKs que não requerem configuração confiável.
Em 2018, os zk-STARKs foram propostos como provas de integridade computacional escaláveis, transparentes e resistentes a ataques quânticos.
Outras tecnologias emergentes como PLONK, Halo2, entre outras, também estão constantemente a impulsionar o progresso dos zk-SNARKs.
zk-SNARKs principais aplicações
Os dois principais campos de aplicação dos zk-SNARKs atualmente são a proteção da privacidade e a escalabilidade.
Na proteção da privacidade, surgiram projetos representativos como Zcash e Monero. No entanto, devido à demanda por transações privadas não ter sido a esperada, esse tipo de projeto gradualmente desapareceu da visão mainstream.
Na questão da escalabilidade, com a transição do Ethereum 2.0 para uma abordagem centrada em rollups, as soluções de escalabilidade baseadas em zk-SNARKs voltaram a ser o foco.
transações de privacidade
A principal implementação das transações privadas inclui:
Uso de zk-SNARKs do Zcash e Tornado Cash
Monero com Bulletproofs
O Dash( que utiliza o sistema de mistura de moedas apenas oculta o endereço )
Tomando o Zcash como exemplo, seu processo de transação inclui: configuração do sistema, geração de chaves, cunhagem, despejo, verificação e recebimento, entre outros passos. No entanto, o Zcash também apresenta algumas limitações, como ser baseado no modelo UTXO, o que dificulta a combinação com outras aplicações, e a real utilização de transações privadas não é alta.
Tornado Cash adota um único pool de moedas misturadas, baseado na rede Ethereum, utilizando a tecnologia zk-SNARKs. Isso garante que apenas as moedas depositadas possam ser retiradas, e cada moeda só pode ser retirada uma vez.
Em comparação, a implementação da proteção da privacidade é relativamente fácil; no futuro, se o problema da escalabilidade for resolvido, a privacidade também não se tornará um obstáculo principal.
escalabilidade
As aplicações de zk-SNARKs na escalabilidade são principalmente de duas tipos:
Expansão da rede em camadas, como o projeto Mina
Expansão da rede de segunda camada, ou seja, zk-rollup
A ideia central do zk-rollup é agrupar um grande número de transações e gerar um zk-SNARKs, que é então validado na cadeia principal para atualizar o estado. Esta abordagem tem vantagens como baixos custos, alta segurança e rápida finalização das transações, mas também enfrenta desafios como alto volume de computação e a necessidade de configurações confiáveis.
Atualmente, os principais projetos de zk-rollup no mercado incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring e Scroll. A principal diferença na abordagem técnica desses projetos reside na escolha entre SNARK e STARK, bem como na questão de suportar ou não a compatibilidade com EVM.
A compatibilidade com EVM é uma questão importante. Os projetos precisam equilibrar a eficiência dos zk-SNARKs e a facilidade de uso para os desenvolvedores de Ethereum. Alguns projetos optam por serem completamente compatíveis com os códigos de operação do Solidity, enquanto outros projetam novas máquinas virtuais para conciliar a amizade com zk-SNARKs e a compatibilidade com o Solidity. O rápido progresso recente na compatibilidade com EVM oferece mais opções para os desenvolvedores.
Princípios básicos dos zk-SNARKs
zk-SNARK(zk-SNARKs) é uma técnica de prova de conhecimento zero amplamente utilizada. Possui as seguintes características:
zk-SNARKs: não vazar informações adicionais
Simples: validação de tamanho pequeno
Não interativo: não requer múltiplas interações
Confiável: provadores com capacidade limitada não conseguem falsificar provas
Conhecimento: o provador deve saber informações válidas para construir a prova
Groth16 é uma implementação comum de zk-SNARKs, cujos passos básicos são os seguintes:
Converter o problema em circuitos
Converter o circuito para a forma R1CS ( do Sistema de Restrições de Rank-1 )
Converter R1CS para QAP (Programa Aritmético Quadrático)
Realizar a configuração de confiança, gerar a chave de prova e a chave de verificação
Gerar e verificar zk-SNARKs
A tecnologia de zk-SNARKs está a desenvolver-se rapidamente, trazendo novas possibilidades para a blockchain. No futuro, continuaremos a explorar os princípios dos zk-SNARKs, casos de aplicação e a relação deles com outras tecnologias como zk-STARK.
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.
11 Curtidas
Recompensa
11
5
Repostar
Compartilhar
Comentário
0/400
MoneyBurner
· 08-10 20:31
Agora que estou a entrar numa posição em zk, será que consigo apanhar esta onda até à lua? Eu acabei de criar uma posição em cinco!
Ver originalResponder0
RooftopVIP
· 08-10 17:56
Qual é a utilidade da teoria pura? Não se preocupe com isso.
Ver originalResponder0
FalseProfitProphet
· 08-10 17:50
Isso está a aproveitar a popularidade do shitcoin.
Ver originalResponder0
IfIWereOnChain
· 08-10 17:48
Ah, isto não é apenas uma assinatura eletrónica?
Ver originalResponder0
DataOnlooker
· 08-10 17:46
Finalmente chegou o meu zero conhecimento favorito
zk-SNARKs: Da História à Aplicação, Revelando os Princípios e as Perspectivas Futuras
zk-SNARKs的发展历程与应用前景
zk-SNARKs da história
O sistema moderno de zk-SNARKs remonta a 1985, com a pesquisa colaborativa de Goldwasser, Micali e Rackoff. Eles propuseram como provar a veracidade de uma afirmação em sistemas interativos com a troca mínima de informações. Este conceito é denominado zk-SNARKs, ou seja, provar que um determinado enunciado é verdadeiro sem revelar qualquer informação adicional.
Os sistemas de zk-SNARKs iniciais apresentavam deficiências em termos de eficiência e praticidade, permanecendo principalmente a nível teórico. Apenas na última década, com a ampla aplicação da criptografia no campo das criptomoedas, os zk-SNARKs começaram a prosperar, tornando-se uma direção de pesquisa chave. Dentre elas, o desenvolvimento de protocolos de zk-SNARKs gerais, não interativos e com pequenos tamanhos de prova é uma das direções de exploração mais importantes.
Um importante avanço na prova de conhecimento zero foi a proposta de Groth em 2010 da prova de conhecimento zero não interativa de pares curtos, que estabeleceu a base teórica para zk-SNARKs. Em 2015, a aplicação da prova de conhecimento zero no projeto Zcash implementou a proteção da privacidade das transações, abrindo cenários de aplicação mais amplos.
Desde então, uma série de importantes resultados acadêmicos surgiram a seguir:
Outras tecnologias emergentes como PLONK, Halo2, entre outras, também estão constantemente a impulsionar o progresso dos zk-SNARKs.
zk-SNARKs principais aplicações
Os dois principais campos de aplicação dos zk-SNARKs atualmente são a proteção da privacidade e a escalabilidade.
Na proteção da privacidade, surgiram projetos representativos como Zcash e Monero. No entanto, devido à demanda por transações privadas não ter sido a esperada, esse tipo de projeto gradualmente desapareceu da visão mainstream.
Na questão da escalabilidade, com a transição do Ethereum 2.0 para uma abordagem centrada em rollups, as soluções de escalabilidade baseadas em zk-SNARKs voltaram a ser o foco.
transações de privacidade
A principal implementação das transações privadas inclui:
Tomando o Zcash como exemplo, seu processo de transação inclui: configuração do sistema, geração de chaves, cunhagem, despejo, verificação e recebimento, entre outros passos. No entanto, o Zcash também apresenta algumas limitações, como ser baseado no modelo UTXO, o que dificulta a combinação com outras aplicações, e a real utilização de transações privadas não é alta.
Tornado Cash adota um único pool de moedas misturadas, baseado na rede Ethereum, utilizando a tecnologia zk-SNARKs. Isso garante que apenas as moedas depositadas possam ser retiradas, e cada moeda só pode ser retirada uma vez.
Em comparação, a implementação da proteção da privacidade é relativamente fácil; no futuro, se o problema da escalabilidade for resolvido, a privacidade também não se tornará um obstáculo principal.
escalabilidade
As aplicações de zk-SNARKs na escalabilidade são principalmente de duas tipos:
A ideia central do zk-rollup é agrupar um grande número de transações e gerar um zk-SNARKs, que é então validado na cadeia principal para atualizar o estado. Esta abordagem tem vantagens como baixos custos, alta segurança e rápida finalização das transações, mas também enfrenta desafios como alto volume de computação e a necessidade de configurações confiáveis.
Atualmente, os principais projetos de zk-rollup no mercado incluem StarkNet, zkSync, Aztec Connect, Polygon Hermez/Miden, Loopring e Scroll. A principal diferença na abordagem técnica desses projetos reside na escolha entre SNARK e STARK, bem como na questão de suportar ou não a compatibilidade com EVM.
A compatibilidade com EVM é uma questão importante. Os projetos precisam equilibrar a eficiência dos zk-SNARKs e a facilidade de uso para os desenvolvedores de Ethereum. Alguns projetos optam por serem completamente compatíveis com os códigos de operação do Solidity, enquanto outros projetam novas máquinas virtuais para conciliar a amizade com zk-SNARKs e a compatibilidade com o Solidity. O rápido progresso recente na compatibilidade com EVM oferece mais opções para os desenvolvedores.
Princípios básicos dos zk-SNARKs
zk-SNARK(zk-SNARKs) é uma técnica de prova de conhecimento zero amplamente utilizada. Possui as seguintes características:
Groth16 é uma implementação comum de zk-SNARKs, cujos passos básicos são os seguintes:
A tecnologia de zk-SNARKs está a desenvolver-se rapidamente, trazendo novas possibilidades para a blockchain. No futuro, continuaremos a explorar os princípios dos zk-SNARKs, casos de aplicação e a relação deles com outras tecnologias como zk-STARK.