WebAssembly (Wasm) é um formato de instrução binária portátil e de alto desempenho que pode ser executado em navegadores da web. Ele foi projetado como um alvo de compilação universal que pode ser usado com múltiplas linguagens de programação e executado em diferentes plataformas.
Blockchain é uma tecnologia descentralizada de contabilidade distribuída que garante a segurança e a confiabilidade dos dados por meio do uso de criptografia e algoritmos de consenso. Blockchain pode ser usado para registrar transações, armazenar dados e executar contratos inteligentes, entre outras aplicações.
Existem vários relacionamentos e cenários de aplicação entre Wasm e blockchain:
Em resumo, a combinação de Wasm e blockchain fornece aplicativos e serviços de blockchain mais eficientes, seguros e flexíveis. A portabilidade e o alto desempenho do Wasm o tornam uma tecnologia importante na área de blockchain.
WebAssembly é um padrão de conjunto de instruções leve e eficiente desenvolvido pelo World Wide Web Consortium (W3C). Ele é aclamado como um disruptor para a web e para a computação de alto desempenho, suportando a execução entre navegadores. Isso significa que podemos compilar diferentes linguagens de programação, incluindo C/C++, Go, Rust e muito mais, em um formato binário padrão unificado e usá-lo como um substituto para JavaScript, executando com eficiência de código quase nativo em navegadores da web.
WebAssembly, também conhecido como WASM, é uma tecnologia segura para memória e independente de plataforma que pode mapear com eficiência diferentes arquiteturas de CPU. Ele oferece várias vantagens importantes:
Além disso, a Web é a única plataforma verdadeiramente universal que permite o acesso às suas aplicações em qualquer dispositivo. Isso também permite manter uma única base de código, simplificar atualizações e garantir que todos os usuários possam acessar seus aplicativos. WASM suporta operações inteiras de 64 e 32 bits, que correspondem diretamente às instruções da CPU. Ao remover as operações de ponto flutuante, o comportamento determinístico pode ser facilmente alcançado, o que é necessário para algoritmos de consenso. Apoiado pelo projeto de infraestrutura do compilador LLVM, o WASM pode se beneficiar de mais de uma década de otimizações do compilador no LLVM. WASM é continuamente desenvolvido por grandes empresas como Google, Apple, Microsoft, Mozilla e Facebook, e é suportado pelos backends de navegadores desenvolvidos por essas empresas.
A beleza do WASM está na capacidade de rodar em qualquer lugar sem a necessidade de download ou instalação, pois está em formato binário. Com apenas um clique, os aplicativos da web podem ser executados imediatamente quando necessário. É ainda mais seguro do que baixar e executar arquivos binários diretamente, pois os navegadores possuem mecanismos de segurança integrados que evitam que o código executado danifique o seu sistema. Além disso, o compartilhamento de aplicativos da Web é simples: os links podem ser colocados em qualquer lugar como sequências clicáveis.
A Web evoluiu de uma plataforma para conteúdo estático e pequenas linguagens de script para uma plataforma poderosa e popular, repleta de aplicativos e recursos incríveis, graças à funcionalidade integrada dos navegadores e à interatividade fornecida pela Web. No entanto, as aplicações Web ainda são predominantemente conduzidas pela mesma linguagem de script (JavaScript), que não foi inicialmente projetada para realizar essas tarefas.
JavaScript era inicialmente uma linguagem de script simples destinada a trazer interatividade a documentos leves de hipertexto em aplicações Web. Seu design era fácil de aprender e escrever e não priorizava a velocidade de execução. Ao longo dos anos, melhorias significativas de desempenho na análise de JavaScript pelos navegadores levaram a aumentos notáveis de desempenho.
Com a velocidade acelerada da execução do JavaScript, a gama de coisas que podem ser feitas nos navegadores se expandiu significativamente. Novas APIs introduziram recursos como gráficos interativos, streaming de vídeo, navegação offline e muito mais. Além disso, um número crescente de aplicações que antes estavam limitadas a ambientes de desktop entrou na Web. Agora você pode editar documentos e enviar e-mails facilmente em seu navegador. No entanto, em certos domínios, o desempenho do JavaScript continua a ser um desafio. Pense nos aplicativos de software que você usa além dos navegadores: jogos, edição de vídeo, renderização 3D ou produção musical. Essas aplicações exigem cálculos extensos e alto desempenho. JavaScript se esforça para atender a esses requisitos de alto desempenho.
No entanto, não é prático substituir o JavaScript e pode até levar décadas para atingir esse objetivo, já que toda a Internet depende dele. Além disso, há uma grande comunidade que aprimora constantemente o JavaScript. Na verdade, em comparação com outras linguagens, o JavaScript tem algumas deficiências em aspectos como nulo e ==. No entanto, esses problemas não são graves o suficiente para justificar a substituição de toda a tecnologia.
Portanto, o WebAssembly não substituirá o JavaScript, mas isso não significa que o WASM não será usado no futuro. Na verdade, o uso do WASM se tornará cada vez mais difundido. Isso ocorre porque o WASM pode trazer recursos computacionais poderosos para a web, como processamento de imagens ou jogos. Com o WASM, você pode criar uma versão do Photoshop baseada na web que funcione bem ou um jogo 3D que rode a 60 quadros por segundo ou taxas de quadros ainda mais altas no navegador. Os jogos, em particular, representam um desafio porque exigem a execução simultânea de processamento de áudio e vídeo, bem como a coordenação de efeitos físicos e IA. WASM tem a capacidade de executar jogos com eficiência no navegador, abrindo a porta para trazer muitos outros aplicativos para o navegador.
A figura acima mostra uma comparação do fluxo de trabalho entre JavaScript e WebAssembly (wasm). Pode-se observar que wasm é muito mais conciso comparado ao JavaScript.
VM WASM
Em 2018, o ecossistema Ethereum começou a discutir o uso de uma VM WASM como máquina virtual de contrato inteligente, por ser considerada de melhor desempenho que a EVM. Gavin Wood, o inventor do EVM, expressou a viabilidade de substituí-lo pelo WASM, e Vitalik também afirmou que o Ethereum 2.0 será atualizado para suportar contratos WASM (eWASM) para atender a mais necessidades de desenvolvimento. Hoje, o desenvolvimento de contratos WASM já tomou forma.
Problema de tamanho de arquitetura
Os computadores tradicionais possuem conjuntos de instruções que aceitam entrada de 32 ou 64 bits. O EVM, no entanto, é diferente e único, pois é um computador de 256 bits projetado para lidar mais facilmente com o algoritmo hash do Ethereum, que produz saídas explícitas de 256 bits.
No entanto, o computador real que executa programas EVM precisa dividir as palavras de 256 bits em suas arquiteturas nativas para executar contratos inteligentes, tornando todo o sistema ineficiente e impraticável.
Além disso, se você deseja implementar um algoritmo complexo como SHA256 usando OPCODES básicos do EVM no Ethereum, você enfrentará momentos difíceis! Para resolver o problema do alto custo do gás na execução de programas complexos por meio do conjunto de instruções, Ethereum introduziu o conceito de pré-compilações, que compila o programa em EVM e consome uma quantidade fixa de gás. Uma pré-compilação notável é o algoritmo hash Ethereum, pois implementá-lo na máquina virtual resultaria em taxas extremamente caras quando os contratos são chamados.
Pré-compilação inchada
O problema da pré-compilação é que ela aumenta continuamente o inchaço e a complexidade da máquina virtual, sem resolver o problema central: o design ineficiente e pobre do conjunto de instruções e especificações atuais.
E se pudéssemos definir uma nova especificação e conjunto de instruções que não exigisse pré-compilação desses programas complexos, mas que, em vez disso, alcançasse com eficiência os resultados desejados por meio de instruções básicas? É aqui que o WASM entra em jogo.
A equipe EWASM está atualmente integrando o WebAssembly no Ethereum para garantir uma camada de execução mais eficiente e simplificada, tornando o Ethereum adequado como uma plataforma de computação totalmente descentralizada. WASM foi adotado como padrão por muitos outros projetos, incluindo Dfinity e EOS, ambos utilizando-o para aprimorar suas camadas de execução.
O projeto Stylus é uma iniciativa da rede Arbitrum Ethereum Layer 2 que visa melhorar o desempenho da execução de contratos inteligentes através da introdução da máquina virtual WebAssembly (WASM). Os contratos podem ser executados mais rapidamente do que com o Solidity, ao mesmo tempo que reduz os custos do gás. Isso facilita a construção de contratos inteligentes de alto desempenho na rede Arbitrum e atualmente oferece suporte à compilação em C, C++ e Rust.
Suporte de pré-compilação personalizada: Stylus também oferece suporte a pré-compilações personalizadas, o que permite aos desenvolvedores implantar suas próprias pré-compilações Rust ou C++ na rede Arbitrum. Isso pode ajudar a introduzir novos algoritmos criptográficos ou outras funcionalidades específicas na cadeia, sem esperar por atualizações na cadeia. Por exemplo, a computação de tensores pode ser pré-compilada para reduzir custos de inferência, o que pode ser benéfico para o aprendizado de máquina on-chain.
Interoperabilidade com EVM: Stylus consegue integração com o ecossistema Ethereum existente através da interoperabilidade com a Máquina Virtual Ethereum (EVM). Isto significa que os contratos Stylus podem interagir com contratos EVM existentes e compartilhar o mesmo estado global que o EVM.
Reentrada: Ao contrário do Cosmos Wasm, o Stylus Rust SDK introduz um recurso de reentrada e permite que os desenvolvedores o habilitem manualmente. Isto permite que os contratos tenham mais flexibilidade na interoperabilidade, mas os desenvolvedores precisam gerenciar cuidadosamente o estado para garantir a segurança.
Com base no próspero ecossistema do Arbitrum, a integração do Stylus é talvez a integração WASM mais significativa. Também aumenta a competitividade do Arbitrum entre os campos zkRollup.
O protocolo Gear está criando uma tecnologia que pode ser implantada como um parachain Polkadot, servindo como uma ferramenta para hospedar contratos inteligentes. Semelhante ao Polkadot, o Gear também utiliza a estrutura Substrate, que simplifica o processo de criação de diferentes blockchains para aplicações específicas. O Substrate fornece funcionalidade pronta para uso, permitindo que as pessoas se concentrem na criação de mecanismos personalizados com base no protocolo.
Anteriormente, o custo de lançamento de uma blockchain era alto, mas o Gear permite que os desenvolvedores de dApps se concentrem em seus projetos em vez de construir e operar uma blockchain inteira do zero.
O principal motor do protocolo Gear é o módulo de contrato inteligente. No caso do Gear, qualquer contrato inteligente é um programa WebAssembly compilado em diferentes linguagens como Rust, C e C++. Para desenvolvedores de fora do mundo criptográfico, a barreira de entrada é baixa porque eles podem construir contratos inteligentes em um ambiente familiar. Os desenvolvedores acham mais fácil experimentar linguagens de programação de contratos inteligentes.
A arquitetura de contrato inteligente do Gear utiliza o modelo de ator subjacente e fornece as seguintes funcionalidades:
Cada programa possui uma quantidade fixa de memória, que o Gear permite controlar. Um programa só pode ler e escrever em sua própria memória e não pode acessar o espaço de memória de outros programas. Cada programa possui seu próprio espaço de memória independente e as informações nos nós do Gear podem ser processadas em paralelo.
CosmWasm é uma plataforma de contrato inteligente baseada em Wasm moderna e poderosa que pode ser facilmente integrada ao Cosmos-SDK. Isso mostra uma das principais vantagens do CosmWasm: os contratos escritos com CosmWasm são totalmente integrados com IBC (Comunicação Inter-Blockchain) nativamente, permitindo que desenvolvedores e usuários entrem em um futuro multi-cadeia. Atualmente, apenas Rust é compatível.
Vantagens do CosmWasm
Desafios e Limitações
Além da máquina virtual wasm, há também uma tecnologia emergente recente chamada ZKWASM. O inventor, Delphinus Labs, abriu o código do ZK-WASM no GitHub. ZKWASM permite que os desenvolvedores verifiquem a exatidão dos cálculos executados sem reexecutá-los. Ao aproveitar o ZKWASM, os desenvolvedores podem construir com flexibilidade aplicativos à prova de conhecimento zero (ZKP) usando várias linguagens de programação. Esses aplicativos podem ser executados perfeitamente em navegadores da web.
ZKWASM é derivado de ZKSNARK, que é uma combinação de SNARG e provas de conhecimento zero. Vamos explicar melhor. Normalmente, para usar o ZKSNARK, você precisa escrever um programa em uma linguagem de circuito aritmético ou em uma linguagem amigável a circuitos, como Pinóquio, TinyRAM, Buffet/Pequin, Geppetto, estrutura xJsnark, ZoKrates, etc. Isto representa uma barreira aos programas existentes, tornando difícil para eles aproveitarem o poder do ZKSNARK. No entanto, existe outra maneira, que não é usar o ZKSNARK no nível do código-fonte, mas no nível do bytecode de uma máquina virtual e, em seguida, implementar uma máquina virtual que suporte o ZKSNARK. Delphinus Labs adotou a última abordagem incorporando toda a máquina virtual WASM em um circuito ZKSNARK. Como resultado, os aplicativos WASM existentes podem ser executados diretamente no ZKWASM sem quaisquer modificações. Portanto, os provedores de serviços em nuvem podem provar a qualquer usuário que os resultados dos cálculos são computados honestamente e não divulgarão nenhuma informação privada.
ZKWASM oferece vários casos de uso, como permitir a verificação on-chain de operações realizadas no navegador. Ele permite interações baseadas na web que são verificáveis no blockchain. Outros casos de uso incluem serviços Oracle, computação fora da cadeia, automação, preenchendo a lacuna entre Web2 e Web3, gerando provas para aprendizado de máquina e processamento de dados, e até mesmo jogos e aplicativos sociais. Com a crescente adoção, o zkWASM expande as possibilidades do Web3 e integra os desenvolvedores do Web2 neste cenário transformador.
Através da implementação ZKWASM do Delphinus Lab, os desenvolvedores podem aproveitar o poder das provas de conhecimento zero para aumentar a segurança e a privacidade de seus aplicativos, abrindo caminho para um ecossistema digital mais confiável e descentralizado.
O desempenho da Web e o futuro da camada de execução da plataforma de contratos inteligentes são promissores. Os dApps não apenas terão desempenho superior, mas a integração do WASM também tornará mais fácil para aqueles familiarizados com linguagens convencionais como Rust e Go desenvolver contratos inteligentes, sem ter que aprender as complexidades da solidez ou outras linguagens de desenvolvimento de blockchain. De acordo com a Evans Data Corporation, existem quase 27 milhões de desenvolvedores em todo o mundo, e esse número está crescendo constantemente, com um aumento esperado para mais de 28,7 milhões até 2024. No entanto, o número de desenvolvedores na área de blockchain ainda é inferior a 30.000, representando apenas cerca de um milésimo do número total de desenvolvedores. Embora esse número esteja aumentando constantemente, aprender novas linguagens de contratos inteligentes ainda pode ser uma barreira para os desenvolvedores entrarem na indústria de blockchain.
Mas cada vez mais blockchains estão começando a suportar Web Assembly como bytecode para contratos inteligentes compilados. WASM traz eficiência, interoperabilidade e uma ampla gama de casos de uso para blockchains. Também serve como chave para abrir a porta para os desenvolvedores, reduzindo a barreira de entrada no desenvolvimento de blockchain. Imagine, num futuro próximo, quando os desenvolvedores da Web 2.0 quiserem experimentar o desenvolvimento de blockchain, eles poderão usar linguagens familiares como Python, C++ e JavaScript para construir aplicativos em larga escala no blockchain, maximizando o valor das redes descentralizadas. Primeiro, diminua a barreira para os criadores (desenvolvedores), depois diminua a barreira para os usuários e avance para a adoção em massa.
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
https://www.notion.so/18f67cee15c147dfae68b06269a455c0?pvs=21
https://wiki.polkadot.network/docs/learn-wasm
https://docs.arbitrum.io/stylus/stylus-gentle-introduction
https://medium.com/@gear_techs/introduzindo-gear-easy-to-use-polkadot-parachain-9ccd05437a9c
https://medium.com/cosmwasm/cosmwasm-for-ctos-f1ffa19cccb8
https://www.cncf.io/wp-content/uploads/2023/09/The-State-of-WebAssembly-2023.pdf
https://github.com/DelphinusLab/zkWasm
Obrigado a Maggie e Xinyou Ji (CMU) pelos conselhos e orientações sobre este artigo.
Isenção de responsabilidade: todos os artigos da Foresight Ventures não pretendem ser conselhos de investimento. Os investimentos envolvem riscos, por isso avalie a sua própria tolerância ao risco e tome decisões de investimento com cuidado.
WebAssembly (Wasm) é um formato de instrução binária portátil e de alto desempenho que pode ser executado em navegadores da web. Ele foi projetado como um alvo de compilação universal que pode ser usado com múltiplas linguagens de programação e executado em diferentes plataformas.
Blockchain é uma tecnologia descentralizada de contabilidade distribuída que garante a segurança e a confiabilidade dos dados por meio do uso de criptografia e algoritmos de consenso. Blockchain pode ser usado para registrar transações, armazenar dados e executar contratos inteligentes, entre outras aplicações.
Existem vários relacionamentos e cenários de aplicação entre Wasm e blockchain:
Em resumo, a combinação de Wasm e blockchain fornece aplicativos e serviços de blockchain mais eficientes, seguros e flexíveis. A portabilidade e o alto desempenho do Wasm o tornam uma tecnologia importante na área de blockchain.
WebAssembly é um padrão de conjunto de instruções leve e eficiente desenvolvido pelo World Wide Web Consortium (W3C). Ele é aclamado como um disruptor para a web e para a computação de alto desempenho, suportando a execução entre navegadores. Isso significa que podemos compilar diferentes linguagens de programação, incluindo C/C++, Go, Rust e muito mais, em um formato binário padrão unificado e usá-lo como um substituto para JavaScript, executando com eficiência de código quase nativo em navegadores da web.
WebAssembly, também conhecido como WASM, é uma tecnologia segura para memória e independente de plataforma que pode mapear com eficiência diferentes arquiteturas de CPU. Ele oferece várias vantagens importantes:
Além disso, a Web é a única plataforma verdadeiramente universal que permite o acesso às suas aplicações em qualquer dispositivo. Isso também permite manter uma única base de código, simplificar atualizações e garantir que todos os usuários possam acessar seus aplicativos. WASM suporta operações inteiras de 64 e 32 bits, que correspondem diretamente às instruções da CPU. Ao remover as operações de ponto flutuante, o comportamento determinístico pode ser facilmente alcançado, o que é necessário para algoritmos de consenso. Apoiado pelo projeto de infraestrutura do compilador LLVM, o WASM pode se beneficiar de mais de uma década de otimizações do compilador no LLVM. WASM é continuamente desenvolvido por grandes empresas como Google, Apple, Microsoft, Mozilla e Facebook, e é suportado pelos backends de navegadores desenvolvidos por essas empresas.
A beleza do WASM está na capacidade de rodar em qualquer lugar sem a necessidade de download ou instalação, pois está em formato binário. Com apenas um clique, os aplicativos da web podem ser executados imediatamente quando necessário. É ainda mais seguro do que baixar e executar arquivos binários diretamente, pois os navegadores possuem mecanismos de segurança integrados que evitam que o código executado danifique o seu sistema. Além disso, o compartilhamento de aplicativos da Web é simples: os links podem ser colocados em qualquer lugar como sequências clicáveis.
A Web evoluiu de uma plataforma para conteúdo estático e pequenas linguagens de script para uma plataforma poderosa e popular, repleta de aplicativos e recursos incríveis, graças à funcionalidade integrada dos navegadores e à interatividade fornecida pela Web. No entanto, as aplicações Web ainda são predominantemente conduzidas pela mesma linguagem de script (JavaScript), que não foi inicialmente projetada para realizar essas tarefas.
JavaScript era inicialmente uma linguagem de script simples destinada a trazer interatividade a documentos leves de hipertexto em aplicações Web. Seu design era fácil de aprender e escrever e não priorizava a velocidade de execução. Ao longo dos anos, melhorias significativas de desempenho na análise de JavaScript pelos navegadores levaram a aumentos notáveis de desempenho.
Com a velocidade acelerada da execução do JavaScript, a gama de coisas que podem ser feitas nos navegadores se expandiu significativamente. Novas APIs introduziram recursos como gráficos interativos, streaming de vídeo, navegação offline e muito mais. Além disso, um número crescente de aplicações que antes estavam limitadas a ambientes de desktop entrou na Web. Agora você pode editar documentos e enviar e-mails facilmente em seu navegador. No entanto, em certos domínios, o desempenho do JavaScript continua a ser um desafio. Pense nos aplicativos de software que você usa além dos navegadores: jogos, edição de vídeo, renderização 3D ou produção musical. Essas aplicações exigem cálculos extensos e alto desempenho. JavaScript se esforça para atender a esses requisitos de alto desempenho.
No entanto, não é prático substituir o JavaScript e pode até levar décadas para atingir esse objetivo, já que toda a Internet depende dele. Além disso, há uma grande comunidade que aprimora constantemente o JavaScript. Na verdade, em comparação com outras linguagens, o JavaScript tem algumas deficiências em aspectos como nulo e ==. No entanto, esses problemas não são graves o suficiente para justificar a substituição de toda a tecnologia.
Portanto, o WebAssembly não substituirá o JavaScript, mas isso não significa que o WASM não será usado no futuro. Na verdade, o uso do WASM se tornará cada vez mais difundido. Isso ocorre porque o WASM pode trazer recursos computacionais poderosos para a web, como processamento de imagens ou jogos. Com o WASM, você pode criar uma versão do Photoshop baseada na web que funcione bem ou um jogo 3D que rode a 60 quadros por segundo ou taxas de quadros ainda mais altas no navegador. Os jogos, em particular, representam um desafio porque exigem a execução simultânea de processamento de áudio e vídeo, bem como a coordenação de efeitos físicos e IA. WASM tem a capacidade de executar jogos com eficiência no navegador, abrindo a porta para trazer muitos outros aplicativos para o navegador.
A figura acima mostra uma comparação do fluxo de trabalho entre JavaScript e WebAssembly (wasm). Pode-se observar que wasm é muito mais conciso comparado ao JavaScript.
VM WASM
Em 2018, o ecossistema Ethereum começou a discutir o uso de uma VM WASM como máquina virtual de contrato inteligente, por ser considerada de melhor desempenho que a EVM. Gavin Wood, o inventor do EVM, expressou a viabilidade de substituí-lo pelo WASM, e Vitalik também afirmou que o Ethereum 2.0 será atualizado para suportar contratos WASM (eWASM) para atender a mais necessidades de desenvolvimento. Hoje, o desenvolvimento de contratos WASM já tomou forma.
Problema de tamanho de arquitetura
Os computadores tradicionais possuem conjuntos de instruções que aceitam entrada de 32 ou 64 bits. O EVM, no entanto, é diferente e único, pois é um computador de 256 bits projetado para lidar mais facilmente com o algoritmo hash do Ethereum, que produz saídas explícitas de 256 bits.
No entanto, o computador real que executa programas EVM precisa dividir as palavras de 256 bits em suas arquiteturas nativas para executar contratos inteligentes, tornando todo o sistema ineficiente e impraticável.
Além disso, se você deseja implementar um algoritmo complexo como SHA256 usando OPCODES básicos do EVM no Ethereum, você enfrentará momentos difíceis! Para resolver o problema do alto custo do gás na execução de programas complexos por meio do conjunto de instruções, Ethereum introduziu o conceito de pré-compilações, que compila o programa em EVM e consome uma quantidade fixa de gás. Uma pré-compilação notável é o algoritmo hash Ethereum, pois implementá-lo na máquina virtual resultaria em taxas extremamente caras quando os contratos são chamados.
Pré-compilação inchada
O problema da pré-compilação é que ela aumenta continuamente o inchaço e a complexidade da máquina virtual, sem resolver o problema central: o design ineficiente e pobre do conjunto de instruções e especificações atuais.
E se pudéssemos definir uma nova especificação e conjunto de instruções que não exigisse pré-compilação desses programas complexos, mas que, em vez disso, alcançasse com eficiência os resultados desejados por meio de instruções básicas? É aqui que o WASM entra em jogo.
A equipe EWASM está atualmente integrando o WebAssembly no Ethereum para garantir uma camada de execução mais eficiente e simplificada, tornando o Ethereum adequado como uma plataforma de computação totalmente descentralizada. WASM foi adotado como padrão por muitos outros projetos, incluindo Dfinity e EOS, ambos utilizando-o para aprimorar suas camadas de execução.
O projeto Stylus é uma iniciativa da rede Arbitrum Ethereum Layer 2 que visa melhorar o desempenho da execução de contratos inteligentes através da introdução da máquina virtual WebAssembly (WASM). Os contratos podem ser executados mais rapidamente do que com o Solidity, ao mesmo tempo que reduz os custos do gás. Isso facilita a construção de contratos inteligentes de alto desempenho na rede Arbitrum e atualmente oferece suporte à compilação em C, C++ e Rust.
Suporte de pré-compilação personalizada: Stylus também oferece suporte a pré-compilações personalizadas, o que permite aos desenvolvedores implantar suas próprias pré-compilações Rust ou C++ na rede Arbitrum. Isso pode ajudar a introduzir novos algoritmos criptográficos ou outras funcionalidades específicas na cadeia, sem esperar por atualizações na cadeia. Por exemplo, a computação de tensores pode ser pré-compilada para reduzir custos de inferência, o que pode ser benéfico para o aprendizado de máquina on-chain.
Interoperabilidade com EVM: Stylus consegue integração com o ecossistema Ethereum existente através da interoperabilidade com a Máquina Virtual Ethereum (EVM). Isto significa que os contratos Stylus podem interagir com contratos EVM existentes e compartilhar o mesmo estado global que o EVM.
Reentrada: Ao contrário do Cosmos Wasm, o Stylus Rust SDK introduz um recurso de reentrada e permite que os desenvolvedores o habilitem manualmente. Isto permite que os contratos tenham mais flexibilidade na interoperabilidade, mas os desenvolvedores precisam gerenciar cuidadosamente o estado para garantir a segurança.
Com base no próspero ecossistema do Arbitrum, a integração do Stylus é talvez a integração WASM mais significativa. Também aumenta a competitividade do Arbitrum entre os campos zkRollup.
O protocolo Gear está criando uma tecnologia que pode ser implantada como um parachain Polkadot, servindo como uma ferramenta para hospedar contratos inteligentes. Semelhante ao Polkadot, o Gear também utiliza a estrutura Substrate, que simplifica o processo de criação de diferentes blockchains para aplicações específicas. O Substrate fornece funcionalidade pronta para uso, permitindo que as pessoas se concentrem na criação de mecanismos personalizados com base no protocolo.
Anteriormente, o custo de lançamento de uma blockchain era alto, mas o Gear permite que os desenvolvedores de dApps se concentrem em seus projetos em vez de construir e operar uma blockchain inteira do zero.
O principal motor do protocolo Gear é o módulo de contrato inteligente. No caso do Gear, qualquer contrato inteligente é um programa WebAssembly compilado em diferentes linguagens como Rust, C e C++. Para desenvolvedores de fora do mundo criptográfico, a barreira de entrada é baixa porque eles podem construir contratos inteligentes em um ambiente familiar. Os desenvolvedores acham mais fácil experimentar linguagens de programação de contratos inteligentes.
A arquitetura de contrato inteligente do Gear utiliza o modelo de ator subjacente e fornece as seguintes funcionalidades:
Cada programa possui uma quantidade fixa de memória, que o Gear permite controlar. Um programa só pode ler e escrever em sua própria memória e não pode acessar o espaço de memória de outros programas. Cada programa possui seu próprio espaço de memória independente e as informações nos nós do Gear podem ser processadas em paralelo.
CosmWasm é uma plataforma de contrato inteligente baseada em Wasm moderna e poderosa que pode ser facilmente integrada ao Cosmos-SDK. Isso mostra uma das principais vantagens do CosmWasm: os contratos escritos com CosmWasm são totalmente integrados com IBC (Comunicação Inter-Blockchain) nativamente, permitindo que desenvolvedores e usuários entrem em um futuro multi-cadeia. Atualmente, apenas Rust é compatível.
Vantagens do CosmWasm
Desafios e Limitações
Além da máquina virtual wasm, há também uma tecnologia emergente recente chamada ZKWASM. O inventor, Delphinus Labs, abriu o código do ZK-WASM no GitHub. ZKWASM permite que os desenvolvedores verifiquem a exatidão dos cálculos executados sem reexecutá-los. Ao aproveitar o ZKWASM, os desenvolvedores podem construir com flexibilidade aplicativos à prova de conhecimento zero (ZKP) usando várias linguagens de programação. Esses aplicativos podem ser executados perfeitamente em navegadores da web.
ZKWASM é derivado de ZKSNARK, que é uma combinação de SNARG e provas de conhecimento zero. Vamos explicar melhor. Normalmente, para usar o ZKSNARK, você precisa escrever um programa em uma linguagem de circuito aritmético ou em uma linguagem amigável a circuitos, como Pinóquio, TinyRAM, Buffet/Pequin, Geppetto, estrutura xJsnark, ZoKrates, etc. Isto representa uma barreira aos programas existentes, tornando difícil para eles aproveitarem o poder do ZKSNARK. No entanto, existe outra maneira, que não é usar o ZKSNARK no nível do código-fonte, mas no nível do bytecode de uma máquina virtual e, em seguida, implementar uma máquina virtual que suporte o ZKSNARK. Delphinus Labs adotou a última abordagem incorporando toda a máquina virtual WASM em um circuito ZKSNARK. Como resultado, os aplicativos WASM existentes podem ser executados diretamente no ZKWASM sem quaisquer modificações. Portanto, os provedores de serviços em nuvem podem provar a qualquer usuário que os resultados dos cálculos são computados honestamente e não divulgarão nenhuma informação privada.
ZKWASM oferece vários casos de uso, como permitir a verificação on-chain de operações realizadas no navegador. Ele permite interações baseadas na web que são verificáveis no blockchain. Outros casos de uso incluem serviços Oracle, computação fora da cadeia, automação, preenchendo a lacuna entre Web2 e Web3, gerando provas para aprendizado de máquina e processamento de dados, e até mesmo jogos e aplicativos sociais. Com a crescente adoção, o zkWASM expande as possibilidades do Web3 e integra os desenvolvedores do Web2 neste cenário transformador.
Através da implementação ZKWASM do Delphinus Lab, os desenvolvedores podem aproveitar o poder das provas de conhecimento zero para aumentar a segurança e a privacidade de seus aplicativos, abrindo caminho para um ecossistema digital mais confiável e descentralizado.
O desempenho da Web e o futuro da camada de execução da plataforma de contratos inteligentes são promissores. Os dApps não apenas terão desempenho superior, mas a integração do WASM também tornará mais fácil para aqueles familiarizados com linguagens convencionais como Rust e Go desenvolver contratos inteligentes, sem ter que aprender as complexidades da solidez ou outras linguagens de desenvolvimento de blockchain. De acordo com a Evans Data Corporation, existem quase 27 milhões de desenvolvedores em todo o mundo, e esse número está crescendo constantemente, com um aumento esperado para mais de 28,7 milhões até 2024. No entanto, o número de desenvolvedores na área de blockchain ainda é inferior a 30.000, representando apenas cerca de um milésimo do número total de desenvolvedores. Embora esse número esteja aumentando constantemente, aprender novas linguagens de contratos inteligentes ainda pode ser uma barreira para os desenvolvedores entrarem na indústria de blockchain.
Mas cada vez mais blockchains estão começando a suportar Web Assembly como bytecode para contratos inteligentes compilados. WASM traz eficiência, interoperabilidade e uma ampla gama de casos de uso para blockchains. Também serve como chave para abrir a porta para os desenvolvedores, reduzindo a barreira de entrada no desenvolvimento de blockchain. Imagine, num futuro próximo, quando os desenvolvedores da Web 2.0 quiserem experimentar o desenvolvimento de blockchain, eles poderão usar linguagens familiares como Python, C++ e JavaScript para construir aplicativos em larga escala no blockchain, maximizando o valor das redes descentralizadas. Primeiro, diminua a barreira para os criadores (desenvolvedores), depois diminua a barreira para os usuários e avance para a adoção em massa.
https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
https://www.notion.so/18f67cee15c147dfae68b06269a455c0?pvs=21
https://wiki.polkadot.network/docs/learn-wasm
https://docs.arbitrum.io/stylus/stylus-gentle-introduction
https://medium.com/@gear_techs/introduzindo-gear-easy-to-use-polkadot-parachain-9ccd05437a9c
https://medium.com/cosmwasm/cosmwasm-for-ctos-f1ffa19cccb8
https://www.cncf.io/wp-content/uploads/2023/09/The-State-of-WebAssembly-2023.pdf
https://github.com/DelphinusLab/zkWasm
Obrigado a Maggie e Xinyou Ji (CMU) pelos conselhos e orientações sobre este artigo.
Isenção de responsabilidade: todos os artigos da Foresight Ventures não pretendem ser conselhos de investimento. Os investimentos envolvem riscos, por isso avalie a sua própria tolerância ao risco e tome decisões de investimento com cuidado.