O que são zk-SNARKs e zk-STARKs?

zk-SNARK é o acrônimo de argumento de conhecimento sucinto não interativo de conhecimento-zero, ou seja, é uma forma usada para provar que você possui uma informação sem precisar revelar a informação. Dito isto, a privacidade das transações é elevada.

A primeira blockchain a utilizar este conceito foi o Zcash (ZEC), neste caso a informação é a chave secreta. Sendo assim, a parte que precisa provar que detêm a informação não necessita relevar a mesma, apenas provar a validade da informação para a outra parte, o verificador.

As transações no Zcash não são anônimas por padrão, o usuário precisa ativá-las e a vasta maioria dos usuários não as utiliza. Talvez pelo fato de que um computador padrão demore alguns minutos para criar uma transação anônima pois é necessário um enorme esforço computacional.

Além disso, os zk-SNARKs precisam de uma chave secreta especial para configurar todo o sistema. Caso esta chave for comprometida, o atacante poderá criar moedas e então matar o projeto. Tal fase é conhecida como Cerimônia de Geração de Parâmetros, um procedimento um tanto centralizado e que depende de segurança.

Por fim os computadores quânticos também podem ser uma ameaça às blockchains que utilizam zk-SNARKs, pois com poder computacional suficiente poderia criar provas falsas.

O que são zk-STARKs?

zk-STARK é o acrônimo de argumento de conhecimento transparente escalável de conhecimento-zero, ou seja, o T é de Transparência, afinal não é necessário uma cerimônia que depende de confiança como a do Zcash para dar o ponta-pé inicial.

Além disso os zk-STARKs se sobressaem em outros pontos, é exigido um menor poder computacional para a criação de provas, a escalabilidade pode ser melhorada e não são vulneráveis a ataques de computadores quânticos.

A evolução neste meio é inevitável, testes com zk-STARKs estão sendo feitos na blockchain do Ethereum, e os resultados são animadores, 550 transações por segundo.

Quando perguntado sobre a visão do Ethereum 3.0, Vitalik Buterin, disse:

“STARKs, STARKs e STARKs”

Comparações entre zk-SNARK e zk-STARK:

Benchmark simplificado ilustrando a comunicação exigida à medida que a prova subjacente aumenta em termos de complexidade. Nível 1 – Nível 6 refere-se à complexidade do circuito aritmético (níveis de multiplicação de portas, cada aumento de nível é ~55x do nível anterior). Os níveis 5 e 6 não são mostrados pois o tamanho da comunicação excede 100GB). O tempo de verificação de pós-processamento do zk-SNARK refere-se a quando um SNARK é verificado.
Benchmark simplificado ilustrando que o tempo do zk-STARK para gerar uma prova aumenta muito mais lentamente que o do ZK-SNARK à medida que a prova subjacente aumenta em complexidade. Nível 1 – Nível 6 refere-se à complexidade do circuito aritmético (níveis de multiplicação de portas, cada aumento de nível é ~55x do nível anterior). O nível 6 não é mostrado pois o tempo de conclusão excede 10 horas).
Benchmark simplificado ilustrando que o tempo do zk-STARK para verificar uma prova aumenta muito lentamente em comparação com o zk-SNARK à medida que a prova subjacente aumenta em complexidade. Nível 1 – Nível 6 refere-se à complexidade do circuito aritmético (níveis de multiplicação de portas, cada aumento de nível é ~55x do nível anterior). O nível 6 não é mostrado pois tempo de conclusão excede 10 horas). O tempo de verificação de pós-processamento do zk-STARK e zk-SNARK refere-se a quando o STARK/SNARK é verificado.

Caso tenha interesse em um conteúdo mais técnico, consulte o whitepaper da Zcash e o whitepaper do zk-STARK.

Saiba mais em O que são zk-SNARKs e zk-STARKs?

Você pode gostar...