O que s√£o zk-SNARKs e zk-STARKs?
P√°gina Inicial
Artigos
O que s√£o zk-SNARKs e zk-STARKs?

O que s√£o zk-SNARKs e zk-STARKs?

Avançado
Publicado em Feb 26, 2019Atualizado em Feb 22, 2024
6m
A privacidade sempre foi vista como um recurso valioso dentro da comunidade de¬†criptomoedas. √Č o recurso precursor da fungibilidade, que √© necess√°ria quando se trata de uma forma de dinheiro amplamente utilizada. Analogamente, a maioria dos investidores de criptomoedas n√£o querem que seus portf√≥lios e hist√≥rico de transa√ß√Ķes sejam completamente p√ļblicos. Entre as v√°rias t√©cnicas criptogr√°ficas que visam fornecer privacidade √†s blockchains, as provas zk-SNARK e zk-STARK s√£o dois exemplos not√°veis.

zk-SNARK quer dizer ‚Äėzero-knowledge succinct non-interactive argument of knowledge‚Äô (argumento de conhecimento sucinto n√£o interativo de conhecimento-zero)¬†, e zk-STARK representa ‚Äėzero-knowledge succinct transparent argument of knowledge‚Äô (argumento de conhecimento sucinto transparente de conhecimento-zero).¬†As provas Zk-SNARK j√° est√£o sendo usadas na criptomoeda Zcash, no sistema de pagamento baseado em blockchain do JP Morgan Chase, e tamb√©m como uma forma segura de autenticar clientes para servidores. Mas enquanto os zk-SNARKs fizeram progressos significativos para serem bem estabelecidos e adotados, as provas zk-STARK est√£o sendo apresentadas como a nova vers√£o ¬†melhorada do protocolo, abordando muitas das desvantagens anteriores dos zk-SNARKs.


The Ali Baba's Cave Parable (A Par√°bola da Caverna de Ali Baba)

Em 1990, um¬†artigo intitulado "Como explicar os protocolos de conhecimento zero a seus filhos" foi publicado pelo cript√≥grafo Jean-Jacques Quisquater (juntamente com outros colaboradores). O artigo introduz o conceito das¬†provas ZK com uma par√°bola envolvendo a Caverna de Ali Baba. Desde a sua cria√ß√£o, a par√°bola foi adaptada v√°rias vezes e agora temos v√°rias varia√ß√Ķes. Ainda assim, a informa√ß√£o subjacente √© essencialmente a mesma.

Vamos imaginar uma caverna em forma de anel com uma √ļnica entrada e uma porta m√°gica que separa dois caminhos. Para percorrer a porta m√°gica, √© preciso sussurrar as palavras secretas corretamente. Ent√£o, considere que Alice (amarelo) quer provar a Bob (azul) que ela sabe quais s√£o as palavras secretas - ainda mantendo-as em segredo. Para fazer isso, Bob concorda em esperar do lado de fora, enquanto ela entra na caverna e caminha at√© o final de um dos dois caminhos poss√≠veis. Neste exemplo, ela decide passar pelo caminho 1.

Depois de esperar um tempo, Bob passa pela entrada e grita de que lado ele quer que Alice apareça (Caminho 2 neste caso).

Se Alice realmente souber o segredo, ela certamente aparecerá pelo caminho que Bob gritou. 

Todo o processo pode ser repetido v√°rias vezes como uma maneira de confirmar que Alice n√£o est√° escolhendo o caminho certo por sorte.

A parábola da Caverna de Ali Baba ilustra o conceito das provas de conhecimento-zero, que são parte dos protocolos zk-SNARK e zk-STARK. As provas ZK podem ser usadas para provar a posse de certos conhecimentos sem revelar qualquer informação sobre os mesmos.


zk-SNARKs

Zcash foi a primeira aplica√ß√£o em larga escala do zk-SNARKs. Enquanto outros projetos focados em privacidade, como a Monero, adotam assinaturas em anel (ring signatures) dentre outras t√©cnicas - que camuflam as informa√ß√Ķes - zk-SNARKs muda a forma como os dados s√£o compartilhados. A privacidade da Zcash se deve ao fato que as transa√ß√Ķes da rede podem permanecer¬†encriptadas e, ainda assim, serem verificadas como v√°lidas atrav√©s do uso das provas de conhecimento-zero (zero-knowledge proofs). Portanto, os participantes que for√ßam as regras de¬†consenso s√≥ precisam ter conhecimento de uma pequena parcela de informa√ß√£o para cada transa√ß√£o. Vale lembrar que as funcionalidades de privacidade da Zcash n√£o s√£o ativas por padr√£o, ou seja, s√£o opcionais e dependem de configura√ß√£o manual.

Provas de conhecimento-zero permitem que um indivíduo prove para outro que um argumento é verdadeiro, sem precisar fornecer nenhuma outra informação que vai além da validade do argumento. Os membros envolvidos são geralmente chamados de provador (prover) e verificador (verifier), e o argumento que eles mantêm em segredo é chamado de testemunho (witness). O principal objetivo dessas provas é revelar o mínimo de informação possível entre duas partes. Em outros termos, uma pessoa pode usar as provas de conhecimento-zero para provar que ela possui certo conhecimento sem revelar nenhuma informação do conhecimento em si.

A palavra ‚Äúsuccinct‚ÄĚ (sucinto) do acr√īnimo SNARK significa que essas provas s√£o menores em tamanho (por volta de 288 bytes) e podem ser verificadas com muita rapidez. ‚ÄúNon-interactive‚ÄĚ (n√£o interativo) significa que h√° pouca ou nenhuma intera√ß√£o entre o provador e o verificador. Vers√Ķes mais antigas de protocolos de conhecimento-zero geralmente exigem que o provador e o verificador se comuniquem diversas vezes e, portanto, s√£o consideradas provas ZK interativas (interactive zk proofs). Nas vers√Ķes n√£o-interativas, os provadores e verificadores s√≥ precisam se comunicar uma √ļnica vez.

Atualmente, as provas zk-SNARK baseiam-se em uma estrutura inicial (entre provador e verificador) que depende de confian√ßa (initial trusted setup). Isso significa que um conjunto de par√Ęmetros p√ļblicos √© necess√°rio para construir provas de conhecimento-zero e, com isso, transa√ß√Ķes privadas. Tais par√Ęmetros funcionam como as regras do jogo e s√£o programados no protocolo como um dos fatores necess√°rios na autentica√ß√£o de transa√ß√Ķes. Entretanto, isso pode levar √† problemas de centraliza√ß√£o, pois os par√Ęmetros geralmente s√£o definidos por um grupo relativamente pequeno de pessoas.

Um setup confi√°vel √© fundamental para implementa√ß√Ķes de zk-SNARK, mas pesquisadores est√£o buscando novas alternativas para reduzir a necessidade de confian√ßa necess√°ria no processo. Apesar de ser relativamente centralizada, a fase inicial (initial trusted setup) √© importante para prevenir fraudes e duplica√ß√£o de moedas. Se algu√©m possuir acesso aos par√Ęmetros de aleatoriedade do sistema, ele pode criar provas falsas que s√£o vistas como v√°lidas pelos verificadores. No caso da Zcash, a fase de setup inicial √© conhecida como¬†Cerim√īnia de Gera√ß√£o de Par√Ęmetros.
A palavra ‚ÄúARguments‚ÄĚ (argumentos) do acr√īnimo refere-se ao fato de que as provas zk-SNARKs possuem a propriedade matem√°tica da corre√ß√£o (soundness). Isso significa que um provador desonesto possui uma chance extremamente baixa de sucesso ao tentar fraudar o sistema. No contexto da computa√ß√£o, a propriedade da corre√ß√£o considera que o provador possui uma capacidade limitada de poder computacional. Teoricamente, um provador com poder computacional suficiente poderia criar provas falsas e esse √© um dos motivos de computadores qu√Ęnticos serem considerados por muitos como uma amea√ßa √†s provas ZK-SNARKs e aos sistemas de¬†blockchain.

A pe√ßa final do acr√īnimo √© ‚ÄúKnowledge‚ÄĚ (conhecimento) e diz respeito √† impossibilidade do provador de construir uma prova sem realmente possuir o conhecimento (tamb√©m chamado de testemunho ou¬†witness) para embasar seu argumento.

As provas de conhecimento-zero podem ser rapidamente verificadas e ocupam muito menos espaço do que uma transação padrão de Bitcoin. Isso abre um caminho de possibilidades para a tecnologia zk-SNARK, que pode ser usada tanto como uma solução para privacidade quanto para escalabilidade.


zk-STARKs

As zk-STARKs foram criadas como uma vers√£o alternativa das provas zk-SNARK e s√£o consideradas uma implementa√ß√£o mais r√°pida e barata da tecnologia. Mas mais importante que isso, as zk-STARKs n√£o dependem de uma estrutura inicial baseada em confian√ßa (initial trusted setup) - por isso o ‚ÄúT‚ÄĚ de¬†transparent.

Tecnicamente falando, zk-STARKs s√£o baseados em t√©cnicas de¬†criptografia que n√£o dependem de um setup de confian√ßa e se baseiam em fun√ß√Ķes hash resistentes a colis√Ķes. Tal abordagem tamb√©m elimina as suposi√ß√Ķes te√≥rico-num√©ricas (presentes nas provas zk-SNARK) que exigem maior poder computacional e s√£o suscet√≠veis a ataques de computadores qu√Ęnticos.

Um dos principais motivos das zk-STARKs oferecerem uma implementa√ß√£o mais r√°pida e barata se deve ao fato de o n√ļmero de rodadas de comunica√ß√£o entre provador e verificador permanecer constante, independente do aumento no trabalho computacional. Nas zk-SNARKs, por outro lado, quanto maior o trabalho computacional, maior o n√ļmero de mensagens que devem ser trocadas entre as partes. Portanto, o tamanho dos dados nas provas zk-SNARK √© muito maior do que nas zk-STARK.

√Č vis√≠vel que tanto as zk-SNARKs quanto as zk-STARKs s√£o alternativas interessantes para lidar com a crescente preocupa√ß√£o com privacidade. Dentro do mundo das¬†criptomoedas, esses protocolos possuem um grande potencial e podem ser uma das grandes pontes em dire√ß√£o √† ado√ß√£o global.
Compartilhar publica√ß√Ķes
Registre uma conta
Coloque seus conhecimentos em pr√°tica. Abra uma conta na Binance hoje mesmo.