Introdução

Em nossa postagem de blog anterior, apresentamos brevemente nosso protocolo, ZKCross, que visa conectar Web2 e Web3 sem esforço, sem adicionar complexidade desnecessária. Também destacamos os problemas atuais que assolam a indústria Web3, que impedem a verdadeira descentralização, eficiência e acessibilidade para desenvolvedores. Esta postagem de blog se aprofundará em como planejamos superar esses problemas e atingir nossa meta de vincular Web2 e Web3 perfeitamente.

Antes de entrarmos em detalhes, vamos rever o que é o ZKCross!

O que é ZKCross?

O ZKCross é uma plataforma inovadora que visa preencher a lacuna entre duas versões da internet, Web2 e Web3. Ele usa uma máquina virtual WebAssembly chamada zkVM e uma “camada zk-shadow”, facilitando o trabalho conjunto de diferentes partes da plataforma. Essa abordagem permite que desenvolvedores Web2 usem linguagens de programação como C/C++, Java ou Python.

Nossa plataforma também emprega uma camada única que conecta os ambientes on-chain e off-chain perfeitamente. Essa camada, conhecida como “zk-shadow layer”, facilita a conexão entre zkWASM e a camada on-chain por meio de contratos zk-proxy. Consequentemente, isso nos permite quebrar a barreira entre Web2 e Web3, ao mesmo tempo em que facilitamos alto rendimento e acessibilidade para qualquer usuário ou desenvolvedor.

As maravilhas da tecnologia de conhecimento zero

A tecnologia Zero Knowledge (ZK) se refere a uma classe de protocolos que permite que uma parte (o provador) demonstre conhecimento de um segredo para outra parte (o verificador) sem revelar nenhuma informação sobre o segredo em si. O conceito foi introduzido no final da década de 1980 e, desde então, encontrou muitas aplicações, incluindo autenticação criptográfica. Uma prova ZK normalmente envolve uma série de interações entre o provador e o verificador, durante as quais o provador convence o verificador do conhecimento de um segredo sem revelá-lo.

Para ser considerado à prova de ZK, um protocolo deve satisfazer completude, solidez e conhecimento zero. Completude significa que um provador honesto sempre convencerá um verificador honesto da veracidade da declaração que está sendo provada. Solidez significa que um provador desonesto não pode convencer o verificador de uma declaração falsa com alta probabilidade. Finalmente, conhecimento zero significa que o protocolo não revela nenhuma informação sobre o segredo ao verificador, exceto que o provador o conhece. Isso significa que mesmo que um invasor intercepte todas as comunicações entre o provador e o verificador, ele não aprenderá nada sobre o segredo.

As limitações do desenvolvimento do ZK dApp

Desenvolver aplicativos ZK pode ser desafiador devido às limitações na escolha da linguagem de programação. Muitos blockchains usam uma linguagem de programação especializada chamada Solidity, adaptada para escrever contratos inteligentes. Não é a linguagem mais amigável ao usuário e tem uma curva de aprendizado íngreme que pode desafiar desenvolvedores Web2 não familiarizados, levando assim a preocupações de acessibilidade para esses desenvolvedores.

Para lidar com esse desafio, os desenvolvedores estão explorando novas soluções que permitem mais flexibilidade de linguagem de programação ao criar aplicativos ZK. Uma abordagem envolve usar uma máquina virtual WebAssembly (WASM), que pode permitir que os desenvolvedores codifiquem em suas linguagens de programação de alto nível preferidas, como C/C++, Java ou Python. Isso permite que os desenvolvedores Web2 aproveitem suas habilidades e experiência existentes para criar aplicativos ZK sem aprender novas linguagens de programação. Além disso, ferramentas e estruturas (por exemplo, ZKCross SDK) estão sendo desenvolvidas para abstrair parte da complexidade de escrever contratos inteligentes, tornando mais fácil para os desenvolvedores criar aplicativos ZK seguros.

zkVM, a santíssima trindade do desenvolvimento

ZKVM é a abreviação de Zero-Knowledge Virtual Machine, uma tecnologia usada no protocolo ZKCross para ajudar desenvolvedores Web2 a escrever contratos inteligentes para Web3 sem aprender novas linguagens de programação. O zkVM utiliza uma máquina virtual WASM, que permite que desenvolvedores Web2 codifiquem em suas linguagens de programação preferidas. O WASM é incrivelmente popular para aplicativos baseados na web e é usado em todos os mecanismos da web significativos. Assim, usar o zkVM permite que milhões de desenvolvedores criem aplicativos prontos para Web3 sem nenhuma curva de aprendizado íngreme. Por outro lado, o zkVM utiliza zk-SNARKs; uma prova criptográfica que permite que uma parte prove a outra parte o conhecimento de uma informação específica sem revelar nenhuma informação sobre ela. Os SNARKs fornecem uma maneira de validar computações no blockchain sem expor dados sensíveis (pessoais), como informações de identificação pessoal.

Uma das principais vantagens dos SNARKs é sua concisão. Ao contrário de outros tipos de provas ZK, que podem ser muito caras computacionalmente e exigem muitas rodadas de interação entre o provador e o verificador, os SNARKs podem ser altamente eficientes e exigem apenas uma única prova que pode ser verificada rapidamente.

Outra vantagem dos SNARKs é sua escalabilidade. Os SNARKs podem ser usados ​​para verificar a correção de grandes computações sem revelar nenhum detalhe da computação em si. Isso os torna particularmente úteis para verificar a correção de contratos inteligentes em redes de blockchain, onde as computações podem ser muito complexas e exigir muitos recursos computacionais.

Vantagens do ZkVM

O zkVM oferece uma variedade de benefícios para desenvolvedores que buscam criar aplicativos descentralizados.

  • Alta flexibilidade: com o zkVM, os desenvolvedores podem escrever contratos inteligentes em sua linguagem de programação de alto nível preferida, C/C++, Java ou Python, em vez de ficarem limitados a linguagens de programação específicas.

  • Escalabilidade aprimorada: o zkVM permite execução de transações mais rápida e maior rendimento, essencial para a criação de aplicativos descentralizados escaláveis.

  • Viu modularidade e componibilidade: com o zkVM, os desenvolvedores podem criar rapidamente aplicativos descentralizados complexos usando diferentes módulos sem se preocupar com problemas de compatibilidade de linguagem ou plataforma.

  • Segurança aprimorada: o zkVM utiliza provas ZK, conhecidas como SNARKs, para fornecer alta segurança ao permitir a verificação de computação sem revelar dados confidenciais.

  • Descentralização: O zkVM promove a descentralização ao permitir a execução de contratos inteligentes de forma distribuída em vários nós, eliminando assim a necessidade de autoridades centrais.

Nos próximos blogs, nosso ecossistema exclusivo e revolucionário será explicado com mais detalhes, destacando casos de uso, analisando profundamente a arquitetura e muito mais!