zk-STARKs

Avançado
Existem dois tipos populares de zero-knowledge (zk) proofs, também conhecidos como protocolos zk ou provas de conhecimento zero – SNARKs e STARKs. Zero-knowledge proof é um método de verificação criptográfica pelo qual uma parte (o comprovador) pode provar à outra parte (o verificador) que uma determinada afirmação é verdadeira sem revelar nenhuma informação adicional.
O termo zk-STARK refere-se a “zero-knowledge scalable transparent argument of knowledge”. Os zk-STARKs foram concebidos por Eli-Ben Sasson, professor do Technion-Israel Institute of Technology. Ao contrário dos zk-SNARKs, que dependem de uma configuração inicial confiável entre um comprovador e um verificador, os zk-STARKs não requerem uma configuração inicial confiável, pois dependem de uma criptografia mais enxuta que usa funções de hash resistentes a colisões. Essa abordagem também elimina as suposições teóricas de que zk-SNARKs, que são computacionalmente caros, podem, teoricamente, ser propensos a ataques realizados por computadores quânticos.
Em termos simples, provas zk-STARK apresentam uma estrutura mais direta em termos de suposições criptográficas. No entanto, eles têm uma desvantagem significativa: o tamanho dos dados (proof size). Geralmente, eles são de 10 a 100 vezes maiores quando comparados aos zk-SNARKs. Essa diferença no tamanho dos dados os torna mais caros e pode apresentar limitações na utilização da tecnologia para envio de criptomoedas e outras aplicações.

Aplicações comuns para zero-knowledge proofs incluem casos em que a privacidade e a segurança são essenciais. Um exemplo é a autenticação de identidade. O uso de determinados serviços on-line exige a comprovação da sua identidade e o direito de acesso a essas plataformas. Isso geralmente requer o fornecimento de informações pessoais, como nome, e-mail, data de nascimento, entre outras informações.

Zero-knowledge proofs podem simplificar o processo de autenticação para plataformas e usuários. Após gerar um zk-proof usando inputs públicos (dados que confirmam a adesão do usuário à plataforma) e inputs privados (dados do usuário), o usuário pode simplesmente apresentá-lo para autenticar sua identidade sempre que precisar acessar o serviço. Isso melhora a experiência do usuário e libera as organizações da obrigação de armazenar grandes quantidades de informações pessoais.