Zk-SNARK - KamilTaylan.blog
23 Junho 2021 12:41

Zk-SNARK

O que é zk-SNARK?

Zk-SNARK é uma sigla que significa “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”. Um zk-SNARK é uma prova criptográfica que permite a uma parte provar que possui certas informações sem revelar essas informações. Esta prova é possível usando uma chave secreta criada antes de a transação acontecer. Ele é usado como parte do protocolo para a criptomoeda, Zcash.

Principais vantagens

  • Zk-SNARK é um protocolo à prova de conhecimento zero usado em criptografia, e é um acrônimo que significa “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge”.
  • Essa prova foi desenvolvida e introduzida pela primeira vez no final dos anos 1980 e agora é empregada pela criptomoeda Zcash para resolver um problema de anonimato percebido com blockchains do tipo Bitcoin.
  • As provas do Zk-SNARK dependem de uma configuração inicial de “sistema de confiança” que foi criticada como uma falha de segurança inerente.

Compreendendo o zk-SNARK

Para muitos membros originais da comunidade criptomoeda – principalmente a comunidade Bitcoin – a privacidade era um objetivo assumido e uma característica das criptomoedas. No entanto, a privacidade sempre foi uma preocupação de segunda ordem, dada a necessidade da criptomoeda de criar um sistema “sem confiança” para garantir a integridade da moeda eletrônica e das transações digitais.

No início de 2010, os usuários do relativamente fácil reidentificar pessoas que forneceram dados pseudônimos a fontes múltiplas.

Por causa da percepção da falta de privacidade de algumas das criptomoedas originais, como o Bitcoin, os desenvolvedores começaram a trabalhar em moedas com foco na privacidade. O mais proeminente deles foi o Zcash, apoiado por uma tecnologia conhecida como zk-SNARKs.

Prova de Conhecimento Zero

Um zk-SNARK (“argumento do conhecimento sucinto não interativo de conhecimento zero”) utiliza um conceito conhecido como “prova de conhecimento zero”. A ideia por trás dessas provas foi desenvolvida pela primeira vez na década de 1980. Simplificando, uma prova de conhecimento zero é uma situação em que cada uma das duas partes em uma transação é capaz de verificar uma à outra que possui um determinado conjunto de informações, ao mesmo tempo que não revela quais são essas informações.

Para a maioria dos outros tipos de prova, pelo menos uma das duas partes deve ter acesso a todas as informações. Uma prova tradicional pode ser comparada a uma senha usada para acessar uma rede online. O usuário envia a senha e a própria rede verifica o conteúdo da senha para verificar se está correta. Para fazer isso, a rede também deve ter acesso ao conteúdo da senha.

Uma versão de prova de conhecimento zero dessa situação envolveria o usuário demonstrar à rede (por meio de prova matemática) que possui a senha correta, sem realmente revelar a própria senha. As vantagens de privacidade e segurança nesta situação são claras: Se a rede não tiver a senha armazenada em algum lugar para fins de verificação, a senha não poderá ser roubada.

A base matemática de zk-SNARKS é complexa. No entanto, provas desse tipo permitem que uma parte demonstre não apenas que existe uma informação específica, mas também que a parte em questão tem conhecimento dessa informação. No caso do Zcash, os zk-SNARKs podem ser verificados quase instantaneamente e o protocolo não requer nenhuma interação entre o provador e o verificador.

Críticas a zk-SNARKs

Existem, é claro, preocupações relacionadas ao zk-SNARKs. Por exemplo, se alguém foi capaz de acessar a chave privada que foi usada para criar os parâmetros do protocolo de prova, ele poderia criar provas falsas que ainda assim pareciam válidas para verificadores. Isso permitiria que essa pessoa criasse novos tokens de Zcash por meio de um processo de falsificação. Para evitar que isso aconteça, o Zcash foi projetado de forma a tornar os protocolos de prova elaborados e espalhados por várias partes.

Embora a construção do processo de prova Zcash tenha sido concluída de forma a minimizar a possibilidade de falsificação de tokens por meio de provas falsas, há pelo menos uma outra preocupação relacionada à criptomoeda também. O Zcash foi criado com um “imposto” de 20% cobrado sobre todos os blocos criados durante os primeiros anos do token. Esse imposto é conhecido como “imposto do fundador” e é usado para compensar os desenvolvedores da criptomoeda.

Os críticos sugeriram que os fundadores poderiam usar essa faceta do sistema para criar um número infinito de tokens Zcash sem que ninguém mais soubesse da existência desses tokens. Por esse motivo, não é inteiramente possível saber o número exato de tokens Zcash existentes neste momento.

Desde 2019, alguns desenvolvedores têm trabalhado para melhorar o zk-SNARKs removendo a configuração confiável. Uma equipe chamada Suterusu desenvolveu um sistema chamado zK-ConSNARK que afirma ser operável sem uma configuração confiável, pode fornecer proteção de privacidade para blockchains convencionais como Bitcoin e tem a inflação mais baixa para qualquer criptomoeda existente.