“Dominando ZoKrates: kit de ferramentas de privacidade da Ethereum” — Parte 1
Privacidade e segurança tornaram-se preocupações primordiais na era de hoje. Este guia será uma série de 3 artigos para familiarizá-lo com o domínio e uso do kit de ferramentas Zokrates .

Observação : para aproveitar ao máximo este artigo, sinta-se à vontade para navegar pelo conteúdo e pular a seção se já estiver familiarizado com o mesmo.
A parte 1 da série Mastering ZoKrates incluirá:
- Introdução à série
- Visão geral dos zkSNARKs e sua importância em aplicativos de preservação da privacidade
- Introdução ao ZoKrates e sua motivação
- Histórico e visão geral técnica do ZoKrates
Sejam todos bem-vindos a esta série detalhada de Mastering ZoKrates. Estaremos passando de 0 para 1, portanto, se você é um entusiasta do blockchain ou simplesmente um gato curioso, eu o cobri.
- A privacidade é o novo preto: no mundo de hoje, estamos compartilhando dados, ou podemos dizer supercompartilhamento de dados, recuperar a privacidade é uma das principais preocupações e, com a ajuda de zkSNARKs e ZoKrates, vamos restaurar isso.
- Adicionando camada de invisibilidade: zkSNARKs e ZoKrates ajudarão a incluir a invisibilidade em nossas transações e interações com o Ethereum Blockchain.
- A transparência no Ethereum é um mito: o Blockchain público parece um livro aberto, mas às vezes precisamos registrar algumas informações privadas. Portanto, usando zkSNARKs e ZoKrates, tornaremos o Ethereum Blockchain mais seguro e privado do que nunca.
Se você quiser dar um passo atrás e ter uma visão geral do ZKP, consulte este .
Provas de conhecimento zero — Um método para preservar a privacidade.Efeito zkSNARKs: Elevando a privacidade no Ethereum:
Os zkSNARKs (argumentos de conhecimento sucintos e não interativos de conhecimento zero) fornecem um método impressionante para validar cálculos corretos sem executá-los ou revelar os detalhes, garantindo que você nem saiba o que foi executado.
Isso tem três propriedades principais:
- Zero-conhecimento: o provador pode demonstrar a posse de informações específicas sem revelar as informações em si, garantindo a privacidade.
- Sucisão: O tamanho da prova é relativamente pequeno e o processo de verificação é eficiente , permitindo a implementação prática.
- Não Interativo: A prova pode ser verificada sem exigir qualquer interação entre o provador e o verificador , agilizando o processo.

- Codificação como um problema polinomial : O processo de codificar computações em equações polinomiais para verificação.
- Sucisão por amostragem aleatória: Escolher uma seção pequena e aleatória para verificar a fim de reduzir o tempo e o esforço necessários para a verificação.
- Codificação/criptografia homomórfica : Manipular o conteúdo (realizar cálculos) sem ver os dados reais.
- Conhecimento Zero : Demonstrar a posse de informações específicas sem revelar as informações em si.
- Codificação como um problema polinomial: preparando uma receita
2. Sucisão por Amostragem Aleatória: Verificação da Obra
Suponha que você queira verificar se uma grande obra de arte é genuína sem examinar a peça inteira. A concisão alcançada por meio da amostragem aleatória é como escolher uma pequena seção aleatória da obra de arte para inspecionar. Essa abordagem reduz significativamente o tempo e o esforço necessários para verificação, mantendo alta confiança na autenticidade da obra de arte.
3. Codificação/criptografia homomórfica: trancando um baú do tesouro
Codificação/criptografia homomórfica é como trancar itens valiosos dentro de um baú de tesouro. O provador pode manipular o conteúdo (realizar cálculos) sem nunca ver os itens reais, assim como pode calcular valores criptografados sem conhecer o ponto de avaliação secreto.
4. Conhecimento zero: um truque de mágica
O aspecto de conhecimento zero dos zkSNARKs é semelhante a um truque de mágica. O mágico convence o público de que realizou uma façanha aparentemente impossível sem revelar como foi feito. Nos zkSNARKs, o provador ofusca os valores criptografados enquanto ainda permite que o verificador verifique sua correção, mantendo a privacidade dos dados subjacentes.
Ref: A referência da explicação acima foi retirada deste documento . Se você quiser mergulhar fundo mais técnico , consulte o artigo vinculado.
Obrigado Cris
Introdução ao ZoKrates e sua motivação:
ZoKrates oferece uma solução abrangente para integrar zkSNARKs em seus aplicativos descentralizados baseados em Ethereum (DApps). Este kit de ferramentas simplifica todo o processo de utilização de computação verificável em seu DApp. Desde a definição do seu programa em uma linguagem de alto nível e fácil de usar até a geração e verificação de provas de computação no Solidity, o ZoKrates oferece cobertura para você.
Deixe-me detalhar o parágrafo acima para você:
- ZoKrates é uma ferramenta útil para adicionar privacidade aos Ethereum DApps.
- Isso facilita o uso de recursos de privacidade para os desenvolvedores.
- Com ZoKrates, você pode:
a. Escreva seu programa em linguagem simples (DSL).
b. Crie provas especiais de privacidade.
c. Verifique as provas de privacidade na blockchain Ethereum. - O ZoKrates torna seu DApp mais privado e seguro.
Mas por que precisamos disso? A motivação por trás disso:
- A rede da Ethereum executa cálculos em todos os nós, levando a altos custos, complexidade limitada e baixa privacidade.
- Os zkSNARKs fornecem uma solução mais econômica para verificar cálculos na cadeia sem revelar dados confidenciais, mas podem ser difíceis de implementar.
- ZoKrates é uma caixa de ferramentas que simplifica o uso de zkSNARKs, permitindo que desenvolvedores criem programas off-chain e os integrem ao blockchain Ethereum, expandindo o potencial de seus DApps.
- Com o ZoKrates, os desenvolvedores podem usar linguagens de programação de alto nível para especificar seus cálculos, gerar provas de cálculo e verificá-los na linguagem de contrato inteligente do Solidity.
- Isso aumenta a privacidade e a eficiência dos DApps, ao mesmo tempo em que reduz os custos e as limitações associadas aos cálculos on-chain.
Vamos mergulhar fundo em alguns antecedentes ou história do ZoKrates:
- O ZoKrates foi criado em 2018 como um kit de ferramentas de código aberto para zkSNARKs no Ethereum.
- Ele foi desenvolvido por Jacob Eberhardt e Alex Gluchowski , ambos Ph.D. alunos da TU Darmstadt.
- O ZoKrates passou por várias atualizações desde seu lançamento, com novos recursos adicionados e bugs corrigidos.
- A equipe de desenvolvimento continua a manter e melhorar o ZoKrates, com a versão estável mais recente sendo a versão 0.8.7 de maio de 2023.
- ZoKrates ganhou popularidade na comunidade de desenvolvedores Ethereum como uma maneira simples e amigável de implementar zkSNARKs.
- O uso de ZoKrates levou à criação de vários DApps que preservam a privacidade .
- ZoKrates é uma caixa de ferramentas de programação para criar provas de conhecimento zero (ZKPs) usando programas de linguagem específica de domínio (DSL) de alto nível compilados em circuitos.
- O ZoKrates DSL é semelhante à programação C e inclui variáveis, loops e declarações condicionais.
- ZoKrates usa libsnark, uma biblioteca C++ zkSNARKs, para gerar provas e chaves de verificação.
- ZoKrates suporta criptografia de curva elíptica, aritmética modular, funções hash e outras operações criptográficas.
- ZoKrates usa o sistema de prova Groth16 para geração e verificação rápida e eficiente de ZKP.
- O ZoKrates pode ser integrado ao Solidity para o desenvolvimento de contratos inteligentes que preservam a privacidade no blockchain Ethereum.
- O ZoKrates é licenciado pelo MIT e é um projeto de código aberto aberto a contribuições da comunidade.
Então, nesta parte, começamos nossa jornada com ZoKrates e zkSNARKs . Na próxima parte, vamos nos aprofundar nos recursos e seus principais componentes: compilador, bibliotecas e ferramentas. Além disso, aprender a escrever código e AZ de implantação.

Entre em contato se tiver alguma dúvida e ficarei muito feliz se puder compartilhar mais informações comigo. Sempre feliz em aprender mais, então vamos nos conectar e explorar juntos
Twitter , Lens , Farcaster — @pranshurastogi,
Linkedin , Github , Youtube