Introdução ao Zero Knowledge Proofs

Na criptografia, as provas de conhecimento zero (zero knowledge proofs) resolvem uma tarefa aparentemente impossível: verificar se alguém possui uma informação sem revelá-la. Recentemente, as provas de conhecimento zero encontraram uso mais difundido na indústria de blockchain para ajudar a dimensionar redes usando a camada 2.

O que são zero-knowledge proofs (ZKP)?

Provas de conhecimento zero, ZKPs curtos, são tecnologias de ponta que permitem a verificação de informações sem revelá-las, ao mesmo tempo que agregam um alto nível de segurança e privacidade. O conceito foi introduzido pela primeira vez em 1985 por Shafi Goldwasser, Silvio Micali e Charles Rackoff em um artigo intitulado: ”The knowledge complexity of interactive proof systems."

O objetivo de uma prova de conhecimento zero é simples: convencer o verificador de que uma afirmação é verdadeira. Cada prova envolve duas partes diferentes:

· Prover: aquele que quer provar uma afirmação

· Verifier: a parte que verifica a reclamação.

Bons algoritmos de prova de conhecimento zero têm as três características a seguir:

· Completude: É altamente provável que o verificador aceite a prova quando esta for verdadeira - desde que ambos cumpram o protocolo

· Solidez: Se a afirmação for falsa, o provador não deverá ser capaz de convencer o verificador do contrário, sendo a única exceção circunstâncias extremamente improváveis.

· Conhecimento Zero: O verificador não obtém mais informações sobre o segredo. Tudo o que eles fazem é verificar se a afirmação é verdadeira.

Seus benefícios incluem:

· Privacidade e segurança pois permitem a verificação dos dados sem revelá-los

· Escalabilidade: ao permitir a verificação de transações fora da cadeia

· Interoperabilidade: os ZKPs podem desempenhar um papel crucial no auxílio à comunicação e transferências entre diferentes cadeias.

Interactive vs. non-interactive zero-knowledge proofs

Diferenciamos entre dois tipos gerais de ZKPs dependendo do nível de interação que requerem entre o verificador e o provador.

Interactive zero-knowledge proof

Numa prova interativa de conhecimento zero, o Verifier e o Prover comunicam-se para estabelecer a veracidade da testemunha. Testemunha refere-se ao dado que o Prover deseja provar e pode ser qualquer dado.

Ao longo do processo, o Verifier enviará um desafio ao Prover. Este é um valor ou pergunta gerada aleatoriamente ao qual o Prover deve responder. Como estes desafios são gerados aleatoriamente, acrescentam um elemento adicional de imprevisibilidade, aumentando a segurança da prova ao tornar impossível ao Verifier prever ou pré-calcular.

Non-interactive zero-knowledge proofs

As provas não interativas de conhecimento zero requerem apenas uma rodada de comunicação entre o Verifier e o Prover, o que as torna significativamente mais difíceis. Isso é possível por ter uma chave compartilhada, também chamada de Common Reference String, que permite a verificação de declarações desde que se tenha essa chave. Em vez de comunicações de ida e volta, o Prover passa o segredo para um algoritmo especial para calcular e depois o envia ao Verifier. O Verifier usa a chave para verificar.

Tipos de algorítimos zero-knowledge proof

Avanços na criptografia permitiram a criação de provas de conhecimento zero cada vez mais sofisticadas, incluindo algoritmos quânticos seguros.

zk-SNARKS

zk-SNARK é a abreviatura de Argumento de conhecimento sucinto e não interativo de conhecimento zero e descreve o primeiro algoritmo de prova não interativo, que dependia de uma chave compartilhada para estabelecer parâmetros públicos que poderiam ser usados para verificar afirmações. No entanto, eles exigem uma configuração inicial confiável porque dependem da criação de uma chave compartilhada.

São sucintos porque a testemunha (segredo) é menor que a prova para que possa ser verificada em milissegundos. ZCash foi o primeiro a adotar amplamente o zk-SNARKS para permitir transações totalmente criptografadas sem perder a capacidade de confirmar sua adesão às regras de consenso.

Bulletproofs

Bulletproofs foram introduzidas com as palavras “Curtas como balas, mas oferecendo suposições de segurança à prova de balas” como uma tecnologia para melhorar a privacidade da blockchain, permitindo transações trusted. Essas provas não requerem uma configuração confiável e foram projetadas pensando nas criptomoedas. Eles ocultam efetivamente os valores transferidos, mas a verificação consome mais tempo do que com SNARKs.

PLONK

PLONK, ou Permutações sobre bases de Lagrange para argumentos ecumênicos não interativos de conhecimento é um algoritmo zk que levou a um avanço na tecnologia eficiente zk-SNARK. Em vez de exigir a geração de uma string compartilhada para cada novo caso de uso, ele constrói um sistema de prova universal que pode ser usado para qualquer tipo de cálculo. É mais conhecido por sua eficiência e atualmente é usado pela Aztec Network, Matter Labs e outros projetos web3 que trabalham em transações privadas.

zk-STARKS

zk-STARKS significa Zero-Knowledge Scalable Transparent Argument of Knowledge e é uma iteração mais recente dos algoritmos zk que elimina a necessidade de uma configuração inicial confiável. Além disso, os zk-STARKs são altamente escaláveis, pois podem gerar e verificar provas rapidamente, mesmo quando o tamanho da testemunha subjacente seja grande.

Graças à geração de parâmetros comprovadamente aleatórios para prova e verificação, os zk-STARKs também oferecem alta transparência. No entanto, isso tem o custo de exigir mais poder de computação durante o processo de verificação, pois os zk-STARKs geram provas maiores.

Casos de uso para Zero-Knowledge Proofs

Mesmo fora da indústria de blockchain, as provas de conhecimento zero encontraram aplicações.

Financeiro

O banco holandês ING utiliza provas de conhecimento zero para permitir aos clientes provar que um número secreto está dentro de um intervalo conhecido. Isto é útil em todos os pedidos de hipotecas, permitindo que os candidatos verifiquem se se enquadram em uma faixa salarial específica sem revelar seu salário exato.

Outros casos de uso financeiro incluem o uso de provas de conhecimento zero no contexto de KYC e AML. Em vez de exigir que os clientes verifiquem do zero sempre que se inscreverem em um novo serviço, os ZKPs poderiam abrir caminho para uma experiência de usuário mais integrada, permitindo que os usuários verificassem sua personalidade sem precisar revelar informações confidenciais.

Votação Online

As Provas de Conhecimento Zero também podem potencializar os sistemas de votação on-line, permitindo que os usuários votem anonimamente e, ao mesmo tempo, garantindo que o voto de todos seja incluído – e tornando-o verificável.

Machine Learning

No contexto do aprendizado de máquina, as provas de conhecimento zero permitem que o proprietário de um algoritmo compartilhe os resultados de seu modelo sem revelar o modelo inteiro ou mais informações sobre ele – permitindo que os proprietários mantenham sua vantagem.

Internet das Coisas

Os ZKs também podem ajudar a gerenciar o número cada vez maior de dispositivos inteligentes conectados à Internet, desde sistemas de alarme que chamam a polícia até anéis que rastreiam todos os seus dados vitais. Eles podem desempenhar um papel na manutenção da privacidade do usuário, verificando se apenas dispositivos autorizados podem acessar dados específicos e permitir comunicação segura. Além disso, podem ajudar a reduzir as exigências energéticas dos dispositivos IoT.

Usos de caso de Zero-Knowledge Proofs em Blockchain

Transações Anônimas

As moedas de privacidade projetadas para pagamentos anônimos têm usado ZKPs para suas transações desde o início. Monero, por exemplo, vai ainda mais longe e protege todos os detalhes de uma transação, ao mesmo tempo que permite que os nós validem a transação.

dApps como Tornado Cash implementaram ZKPs para ofuscar detalhes de transações. No Tornado, os usuários depositam fundos no protocolo e podem então sacar fundos mistos. ZKPs são usados para verificar o direito de retirada do usuário.

Terceirizar computação

Os nós Blockchain são limitados em poder computacional e podem atingir seus limites quando a demanda é alta e a rede não pode ser dimensionada para acomodá-la. Os ZKPs permitem a terceirização da computação e permitem que os nós originais verifiquem os resultados. Este é o mecanismo em que zk-Rollups dependem para aumentar o rendimento de uma cadeia subjacente.

Os rollups processam transações fora da cadeia e, em seguida, enviam os resultados de seus trabalhos como prova de execução para a cadeia principal – aumentando o número de transações que o sistema pode manipular.

Compressão de dados

Graças à sua capacidade de criar provas menores que a testemunha, os ZKPs também são usados para compactar dados. Filecoin, por exemplo, usa ZKPs para estabelecer prova de armazenamento de arquivos específicos por usuários sem prejudicar a escalabilidade. O Mina Protocol também usa ZKPs, mas para ajudar a reduzir o tamanho de seu livro-razão, compactando todos os seus dados de verificação em menos de 22 KB.

Evita o front-running e minimiza o MEV

Um grande desafio com as redes públicas de blockchain é que elas abrem amplas oportunidades para os comerciantes experientes se anteciparem e extrairem mais taxas dos comerciantes menos experientes. A execução antecipada em uma blockchain pode ser alcançada simplesmente pagando ao minerador para que sua transação seja incluída antes daquela que você está executando.

No entanto, ao ocultar os detalhes da transação, os ZKPs podem impedir que os bots procurem negociações e as executem. Na mesma linha, os ZKPs poderiam ajudar a prevenir o MEV (valor máximo extraível), muitas vezes descrito como um imposto invisível que os mineradores podem extrair de usuários desconhecidos. Um dos motivos pelos quais isso ocorre é que os mineradores têm total visibilidade das transações que aguardam para serem incluídas nos blocos (no mempool). Usando ZKPs, estes poderiam ser submetidos, comprovados e verificados sem revelar detalhes aos mineradores.

Desvantagens dos ZKPs

Embora as Provas de Conhecimento Zero sejam ótimas para muitas coisas em blockchain, elas apresentam algumas desvantagens:

• Computação: ZKPs consomem mais recursos do que outros sistemas de prova, especialmente quando se trata de provas complicadas. Isso pode resultar em tempos de processamento mais longos, afetando a escalabilidade e a experiência do usuário. Além disso, a verificação pode ficar cara, com zk-Rollups no Ethereum pagando até 500.000 gas para verificar um único zk-SNARK e mais para zk-STARKs.

• Suposições de confiança: Dependendo do algoritmo utilizado, elas não são totalmente isentas de confiança. Em um caso ideal, vários participantes honestos participarão de uma cerimônia de configuração confiável, mas não há como os usuários terem certeza.

• Complexidade: os ZKP acrescentam outra camada de complexidade a sistemas descentralizados, muitas vezes já complexos. Eles tornam os protocolos mais difíceis de auditar, o que pode aumentar o risco de serem encontradas vulnerabilidades críticas.

Cada caso de uso de ZKPs requer uma avaliação cuidadosa dos benefícios e desvantagens. No entanto, os ZKPs continuam a ser um avanço excitante na tecnologia e, com mais progressos no hardware, algumas das desvantagens podem até desaparecer completamente.

0
PitcoinPost author

Web 3. 0 enthusiastic - Polkadot & Astar Network ambassador

Astar Network suporta a construção de dApps com contrato inteligente EVM e WASM, e oferece interoperabilidade cross-consensus messaging XCM para desenvolvedores

0 comments

Astar Network suporta a construção de dApps com contrato inteligente EVM e WASM, e oferece interoperabilidade... Show More