A privacidade sempre foi considerada um recurso muito valioso pela comunidade de criptomoedas. É um precursor da fungibilidade, necessária para uma forma de dinheiro amplamente utilizada. A maioria dos proprietários de criptoativos não deseja que seus acervos e históricos de transações sejam totalmente públicos. Dentre os diversos métodos criptográficos que visam garantir a confidencialidade das blockchains, dois exemplos de evidências que merecem atenção são zk-SNARK e zk-STARK.
zk-SNARK significa argumento de conhecimento curto, não interativo e de conhecimento zero, e zk-STARK significa argumento de conhecimento curto, transparente e de conhecimento zero. As provas Zk-SNARK já são usadas no Zcash, o sistema de pagamento baseado em blockchain do JP Morgan Chase, e como forma de autenticar clientes com segurança nos servidores. Mas embora o zk-SNARK tenha feito avanços significativos em seu estabelecimento e adaptação, o zk-STARK é agora apresentado como uma versão nova e melhorada do protocolo que aborda muitas das deficiências anteriores do zk-SNARK.
A Parábola de Ali Babá e a Caverna
Em 1990, o criptógrafo Jean-Jacques Quisquater (juntamente com outros colaboradores) publicou um artigo intitulado “Como explicar protocolos de conhecimento zero para seus filhos”. O artigo apresenta o conceito de evidência ZK com a parábola da caverna de Ali Babá. Desde a sua publicação, foi revisado diversas vezes, existindo atualmente diversas versões. No entanto, as informações básicas são essencialmente as mesmas.
Vamos imaginar uma caverna circular com uma entrada e uma porta mágica separando dois caminhos laterais. Para passar pela porta mágica, você precisa sussurrar as palavras secretas certas. Então, considere que Alice (amarela) quer provar a Bob (azul) que conhece as palavras secretas e, ao mesmo tempo, quer mantê-las em segredo. Para fazer isso, Bob concorda em esperar do lado de fora enquanto ela entra na caverna e segue 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 para que lado quer que Alice apareça (caminho 2 neste caso).

Se Alice realmente souber o segredo, ela definitivamente terminará no caminho escolhido por Bob.

Todo o processo pode ser repetido várias vezes para confirmar que Alice não escolheu acidentalmente o caminho certo.
A parábola de Ali Babá e a Caverna 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 é o primeiro aplicativo zk-SNARKs amplamente disponível. Enquanto outros projetos de privacidade como o Monero usam assinaturas em anel e outras técnicas, criando efetivamente uma cortina de fumaça em torno de quem enviou algo, o zk-SNARKS muda fundamentalmente a forma como os dados são trocados. A privacidade do Zcash baseia-se no fato de que as transações na rede podem permanecer criptografadas, mas ainda assim serem verificadas usando provas de conhecimento zero. Assim, quem aplica as regras de consenso não necessita de ter todos os dados subjacentes a cada transação. É importante ressaltar que o recurso de privacidade do Zcash não vem habilitado por padrão, mas está sujeito a configuração manual e é opcional.
As provas de conhecimento zero permitem que uma pessoa prove a outra que uma afirmação é verdadeira sem revelar qualquer informação além da validade da afirmação. As partes envolvidas são geralmente chamadas de verificador e verificador, e a declaração que mantêm em segredo é chamada de testemunha. O principal objetivo dessas evidências é revelar o mínimo de informações possível entre as duas partes. Em outras palavras, pode-se usar evidências de conhecimento zero para provar que se tem certo conhecimento sem revelar qualquer outra informação.
A sigla SNARK “comprimido” significa que esta evidência é menor em tamanho e pode ser verificada rapidamente. “Não interativo” significa que há pouca ou nenhuma interação entre provador e verificador. Versões mais antigas de protocolos de conhecimento zero normalmente exigem que o verificador e o verificador se comuniquem entre si e, portanto, são consideradas provas zk "interativas". Mas em projetos “não interativos”, o verificador e o verificador devem trocar apenas uma evidência.
Atualmente, as provas zk-SNARK dependem de uma configuração inicial de confiança entre o verificador e o verificador, o que significa que um conjunto de parâmetros públicos é necessário para criar provas de conhecimento zero para transações privadas. Esses parâmetros correspondem quase às regras do jogo, estão codificados no protocolo e são um dos fatores necessários para confirmar a validade da transação. Contudo, isto cria um problema potencial na centralização, uma vez que os parâmetros são frequentemente formulados por um grupo muito pequeno.
Embora a configuração pública inicial seja fundamental para as implementações modernas do zk-SNARK, os pesquisadores estão trabalhando para encontrar outras alternativas como forma de reduzir o nível de confiança exigido neste processo. A fase de configuração inicial é importante para evitar gastos falsificados porque se alguém tivesse acesso à aleatoriedade que gera os parâmetros, poderia criar evidências falsas que pareceriam válidas para o verificador. No Zcash, a fase de configuração inicial é conhecida como Cerimônia de Geração de Parâmetros.
Passemos a “ARuments” como fragmento de uma sigla. zk-SNARKs são considerados computacionalmente sólidos, o que significa que verificadores desonestos têm uma chance muito baixa de enganar o sistema com sucesso. Esta propriedade é conhecida como força e pressupõe que o verificador tenha poder de processamento limitado. Em teoria, um verificador com poder computacional suficiente poderia criar evidências falsas, o que é uma das razões pelas quais os computadores quânticos são vistos por muitos como uma ameaça aos sistemas zk-SNARK e blockchain.
A última parte deste acrónimo é “Conhecimento”, o que significa que o examinador não pode construir provas sem ter conhecimento (ou uma testemunha) para apoiar a sua afirmação.
As provas de conhecimento zero são verificadas rapidamente e normalmente ocupam muito menos dados do que uma transação Bitcoin padrão. Isso abre caminho para que a tecnologia zk-SNARK seja usada como uma solução de privacidade e escalabilidade.
zk-STARKs
O zk-STARK foi criado como uma versão alternativa do zk-SNARK e é considerado uma implementação mais rápida e barata da tecnologia. Mas o mais importante é que o zk-STARK não requer uma configuração de confiança inicial (daí "T" transparente).
Tecnicamente falando, o Zk-STARK não requer configuração inicial confiável, pois depende de criptografia simétrica mais simples graças às suas funções hash resistentes a colisões. Esta abordagem também remove as suposições teóricas dos números do zk-SNARK, que são computacionalmente caras e teoricamente suscetíveis a ataques de computadores quânticos.
Uma das principais razões pelas quais o Zk-STARK oferece uma implementação mais barata e rápida é que o número de ciclos de comunicação entre verificadores e verificadores permanece constante em relação a qualquer aumento na computação. Em contraste, em zk-SNARKs, quanto mais computação for necessária, mais partes terão que enviar e receber mensagens. Portanto, o tamanho total dos dados no zk-SNARK é muito maior do que no zk-STARK.
É claro que tanto o zk-SNARKS quanto o zk-STARKs estão apelando para preocupações crescentes com a privacidade. No mundo das criptomoedas, estes protocolos têm um grande potencial e podem tornar-se a inovação necessária para a adoção em massa.



