A privacidade sempre foi vista como um recurso valioso na comunidade de criptomoedas. É o precursor da fungibilidade, necessária para uma forma de dinheiro amplamente utilizada. Da mesma forma, a maioria dos detentores de criptoativos não querem que seus acervos e histórico de transações sejam completamente públicos. Dentre as diversas técnicas criptográficas que visam proporcionar privacidade às blockchains, as provas zk-SNARK e zk-STARK são dois exemplos dignos de nota.

zk-SNARK significa argumento de conhecimento sucinto e não interativo de conhecimento zero, e zk-STARK representa argumento de conhecimento transparente, sucinto e de conhecimento zero. As provas zk-SNARK são usadas por projetos de criptomoeda (como Zcash), em sistemas de pagamento baseados em blockchain e como uma forma de autenticar com segurança clientes em servidores. Mas embora os zk-SNARKs tenham feito progressos significativos para serem bem estabelecidos e adotados, as provas zk-STARK estão agora sendo apresentadas como a versão nova e melhorada do protocolo, abordando muitas das desvantagens anteriores dos zk-SNARKs.

A parábola da caverna de Ali Babá

Em 1990, um artigo intitulado "Como explicar protocolos de conhecimento zero para seus filhos" foi publicado pelo criptógrafo Jean-Jacques Quisquater (junto com outros colaboradores). O artigo introduz o conceito de provas zk com uma parábola envolvendo a Caverna de Ali Babá. Desde a sua criação, a parábola foi adaptada diversas vezes e agora temos múltiplas 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 os dois caminhos laterais. Para passar pela porta mágica, é preciso sussurrar as palavras secretas corretas. Portanto, considere que Alice (amarela) quer provar a Bob (azul) que ela sabe quais são as palavras secretas - embora ainda as mantenha em segredo. Para 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 seguir o Caminho 1.

Depois de 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 aparecerá com segurança no caminho que Bob nomeia.

Todo o processo pode ser repetido diversas vezes como forma de confirmar que Alice não está escolhendo o caminho certo por sorte.

A parábola da Caverna de Ali Babá ilustra o conceito de provas de conhecimento zero, que fazem parte dos protocolos zk-SNARK e zk-STARK. As provas ZK podem ser usadas para comprovar a posse de determinado conhecimento sem revelar qualquer informação sobre ele.

zk-SNARKs

Zcash é um dos primeiros exemplos de projeto que usa zk-SNARKs. Enquanto outros projetos de privacidade como o Monero empregam assinaturas em anel e outras técnicas, o zk-SNARKs muda fundamentalmente a forma como os dados são compartilhados. A privacidade do Zcash deriva do fato de que as transações na rede podem permanecer criptografadas, mas ainda assim ser verificadas como válidas usando provas de conhecimento zero. Portanto, aqueles que aplicam regras de consenso não precisam conhecer todos os dados subjacentes a cada transação. Vale a pena mencionar que os recursos de privacidade no Zcash não estão ativos por padrão, mas são opcionais e dependem de configuração manual.

As provas de conhecimento zero permitem que um indivíduo prove a outro que uma afirmação é verdadeira sem revelar qualquer informação além da validade da afirmação. As partes envolvidas são comumente chamadas de provador e verificador, e a declaração que mantêm em segredo é chamada de testemunha. O principal objetivo destas provas é revelar o mínimo de dados possível entre as duas partes. Em outros termos, pode-se usar provas de conhecimento zero para provar que possuem determinado conhecimento sem revelar qualquer informação sobre o conhecimento em si.

Dentro da sigla SNARK, “sucinto” significa que essas provas são menores e podem ser verificadas rapidamente. “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 e, portanto, são consideradas provas ZK “interativas”. Mas em construções “não interativas”, provadores e verificadores só precisam trocar uma prova.

Atualmente, as provas zk-SNARK dependem de uma configuração inicial confiável entre um provador e um verificador, o que significa que um conjunto de parâmetros públicos é necessário para construir provas de conhecimento zero e, portanto, transações privadas. Esses parâmetros são quase como as regras do jogo; eles são codificados no protocolo e são um dos fatores necessários para provar que uma transação é válida. No entanto, isto cria um potencial problema de centralização porque os parâmetros são frequentemente formulados por um grupo muito pequeno.

Embora uma configuração inicial confiável seja fundamental para as implementações atuais do zk-SNARK, os pesquisadores estão trabalhando para encontrar outras alternativas como forma de reduzir a quantidade de confiança necessária no processo. A fase de configuração inicial é importante para evitar gastos falsificados porque se alguém tivesse acesso à aleatoriedade que gerou os parâmetros, poderia criar provas falsas que parecessem válidas para o verificador. No Zcash, a fase de configuração inicial é conhecida como Cerimônia de Geração de Parâmetros.

Passando para a parte “Argumentos do Conhecimento” da sigla. Os zk-SNARKs são considerados computacionalmente sólidos, o que significa que um provador desonesto tem uma chance muito baixa de enganar o sistema sem realmente ter o conhecimento (ou testemunha) para apoiar sua afirmação. Esta propriedade é conhecida como solidez e assume que o provador tem poder computacional limitado.

Teoricamente, um provador com poder computacional suficiente poderia criar provas falsas, e esta é uma das razões pelas quais os computadores quânticos são considerados por muitos como uma ameaça aos zk-SNARKs (e aos sistemas blockchain).

As provas de conhecimento zero são rapidamente verificáveis ​​e geralmente ocupam muito menos dados do que uma transação Bitcoin padrão. Isso abre um caminho para que a tecnologia zk-SNARK seja usada como solução de privacidade e escalabilidade.

zk-STARKs

Os zk-STARKs foram criados por Eli-Ben Sasson, professor do Instituto de Tecnologia Technion-Israel. Como uma versão alternativa das provas zk-SNARK, os zk-STARKs são geralmente considerados uma variante mais eficiente da tecnologia - potencialmente mais rápida e barata, dependendo da implementação. Mas o mais importante é que os zk-STARKs não requerem uma configuração inicial confiável (daí o “T” de transparente).

Tecnicamente falando, os zk-STARKs não requerem uma configuração inicial confiável porque dependem de criptografia mais enxuta por meio de funções hash resistentes a colisões. Essa abordagem também elimina as suposições teóricas dos números dos zk-SNARKs que são computacionalmente caros e teoricamente propensos a ataques por computadores quânticos.

Em outros termos, as provas zk-STARK apresentam uma estrutura mais simples em termos de suposições criptográficas. No entanto, esta nova tecnologia apresenta pelo menos uma grande desvantagem: o tamanho das provas é maior quando comparado aos zk-SNARKs. Tal diferença no tamanho dos dados pode apresentar limitações dependendo do contexto de utilização, mas é provavelmente algo que pode ser descoberto à medida que a tecnologia é testada e investigada.

Considerações finais

É claro que tanto os zk-SNARKs quanto os zk-STARKs apelam à crescente preocupação com a privacidade. No mundo das criptomoedas, esses protocolos têm grande potencial e podem ser um caminho inovador para a adoção convencional.