O anonimato sempre foi considerado uma das características mais valiosas da comunidade de criptomoedas. É o precursor da fungibilidade, uma característica também necessária para uma forma de dinheiro amplamente utilizada. Da mesma forma, a maioria dos detentores de criptoativos não deseja que seus ativos e registros de transações sejam totalmente divulgados. De todas as diversas tecnologias criptográficas que trabalham para fornecer privacidade aos blockchains, zk-SNARK e zk-STARK são dois exemplos dignos de nota.

zk-SNARK representa uma prova de conhecimento zero simplificada e não interativa, e zk-STARK representa uma prova de conhecimento zero simplificada e totalmente transparente. Zk-SNARK já é usado em sistemas de pagamento baseados em blockchain, como Zcash, projetos JP Morgan Chase e como método de verificação seguro de cliente para servidor. Mas embora os zk-SNARKs já estejam bem estabelecidos e amplamente utilizados, o zk-STARK está agora sendo apresentado como uma versão nova e melhorada do protocolo que visa resolver muitas das deficiências anteriores dos zk-SNARKs.

A fábula da caverna de Ali Babá

Em 1990, o criptógrafo Jean-Jacques Quisquater (junto com outros colaboradores) publicou um artigo intitulado "Como explicar protocolos de prova de conhecimento zero para crianças". Este artigo introduz o conceito de provas de conhecimento zero, incorporando a parábola da caverna do Alibaba. Esta fábula foi adaptada diversas vezes desde a sua criação e hoje temos diversas versões. Mas o conteúdo expresso é basicamente o mesmo.

Imaginemos uma caverna circular com uma entrada e uma porta mágica que separa dois caminhos. Para abrir a porta mágica, é preciso sussurrar o segredo certo. Então, considere que Alice (amarela) quer provar a Bob (azul) que ela sabe qual é a senha, mas ao mesmo tempo mantém a senha em segredo. Para fazer isso, Bob concorda em esperar do lado de fora enquanto Alice entra na caverna e escolhe um dos dois caminhos até o fim. Neste caso, ela decide seguir pelo caminho 1.

zk-SNARKs和zk-STARKs解释

Depois de um tempo, Bob caminha até a entrada e diz de que lado ele quer que Alice saia (neste caso seria o caminho 2).

zk-SNARKs和zk-STARKs解释

Se Alice souber a senha, ela poderá seguir corretamente o caminho que Bob exige.

zk-SNARKs和zk-STARKs解释

Este processo pode ser repetido várias vezes para confirmar que Alice não escolheu o caminho correto por sorte.

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


zk-SNARKs

Zcash é a primeira aplicação generalizada de zk-SNARKs. Embora projetos de privacidade como o Monero também empreguem assinaturas de anel e outras técnicas que efetivamente criam uma cortina de fumaça para proteger os remetentes, os zk-SNARKs mudam fundamentalmente a forma como os dados são compartilhados. A privacidade do Zcash decorre do fato de que as transações na rede podem ser criptografadas, mas ainda podem ser verificadas quanto à validade através do uso de provas de conhecimento zero. Portanto, aqueles que aplicam as regras de consenso não precisam conhecer todos os dados sobre cada transação. Vale ressaltar que os recursos de privacidade do Zcash estão inativos por padrão e são opcionais, sujeitos a configurações manuais.

As provas de conhecimento zero permitem que uma pessoa prove a outra que o que ela está afirmando é verdade, sem revelar qualquer informação além da validade da afirmação. As partes envolvidas são frequentemente chamadas de provadores e verificadores, e os segredos que guardam são chamados de provas. O principal objetivo dessas funções é permitir o mínimo possível de troca de dados entre as duas partes. Em outras palavras, as pessoas podem usar provas de conhecimento zero para provar que sabem algo sem revelar qualquer informação sobre o conhecimento em si.

Na sigla SNARK, a primeira letra “sucinta” significa que essas provas são simples e podem ser verificadas rapidamente. “Não interativo” significa que há pouca interação entre o provador e o verificador. Versões mais antigas de protocolos de prova de conhecimento zero normalmente exigiam que o provador e o verificador se comunicassem e, portanto, eram consideradas provas de conhecimento zero "interativas". Mas numa estrutura “não interactiva”, o provador e o verificador só precisam de trocar provas relevantes.

Atualmente, as provas zk-SNARK dependem de uma configuração inicial de confiança entre provadores e verificadores, o que significa que um conjunto de parâmetros públicos é necessário para construir uma prova de conhecimento zero e, portanto, uma transação privada. Esses parâmetros são quase como regras do jogo, estão programados no protocolo e são um dos fatores necessários para comprovar que uma transação é válida. No entanto, isto cria potenciais problemas de centralização, uma vez que os parâmetros são frequentemente definidos por um grupo muito pequeno.

Embora o ambiente público original seja a base para as implementações atuais do zk-SNARK, os pesquisadores estão trabalhando para encontrar alternativas que reduzam a confiança necessária no processo de interação. A fase de configuração inicial é importante para evitar pagamentos falsos, pois se alguém tiver acesso à aleatoriedade dos parâmetros gerados, poderá criar provas falsas válidas para o validador. No Zcash, a fase inicial de configuração é chamada de processo de geração de parâmetros.

Vamos falar novamente sobre a sigla “ARguments”. zk-SNARKs são considerados razoavelmente computáveis, o que significa que a probabilidade de um provador falso enganar o sistema com sucesso é muito pequena. Esta propriedade é chamada de robustez e assume que o provador possui poder computacional limitado. Em teoria, um provador com poder computacional suficiente pode criar provas forjadas, o que é uma das razões pelas quais os computadores quânticos são considerados por muitos como uma possível ameaça aos zk-SNARKs e aos sistemas blockchain.

A última inicial é “Conhecimento”, o que significa que o provador não pode construir provas sem conhecimento real (ou testemunhas) para apoiar a sua afirmação.

As provas de conhecimento zero podem ser verificadas rapidamente e normalmente ocupam muito menos dados do que as transações Bitcoin padrão. Isto abre um novo caminho para a tecnologia zk-SNARK ser usada como uma solução de anonimato e escalabilidade.

zk-STARKs

Os zk-STARKs foram criados como uma versão alternativa do protocolo zk-SNARK e são considerados uma implementação mais rápida e conveniente da tecnologia. Mas o mais importante é que o zk-STARK não requer configuração inicial de confiança (daí a letra “T” para transparência).

Tecnicamente, os Zk-STARKs não requerem uma configuração confiável inicializada, pois contam com um método de criptografia simétrica mais enxuto por meio de colisões de funções hash. Esta abordagem também elimina os pressupostos da teoria dos números dos zk-SNARKs, que são computacionalmente caros e teoricamente vulneráveis ​​a ataques de computadores quânticos.

Uma das principais razões pelas quais o Zk-STARK fornece uma implementação mais conveniente e rápida é porque a quantidade de comunicação entre provadores e verificadores permanece constante em relação a qualquer incremento de computação. Em contraste, em zk-SNARKs, quanto mais cálculos forem necessários, mais vezes as partes terão que enviar e receber mensagens. Portanto, o tamanho geral dos dados do zk-SNARK é muito maior que o tamanho dos dados na prova zk-STARK.

É claro que tanto o zk-SNARKS quanto o zk-STARK atraem questões crescentes sobre o anonimato. No mundo das criptomoedas, esses protocolos têm um enorme potencial para se tornarem uma abordagem inovadora para uso generalizado.