O que é o WASM (Web Assembly)?

12/25/2023, 5:45:53 AM
Avançado
DeFiEthereum
WebAssembly é uma estrutura de desenvolvimento web de código aberto. Saiba mais sobre o que é, a sua história, como funciona e os seus benefícios.

A indústria Blockchain é aquela que está sempre à procura de crescimento e melhoria. A indústria teve um boom e evoluiu recentemente após o início do Ethereum, que era alimentado pela Ethereum Virtual Machine (EVM). Embora o EVM seja eficaz até certo ponto, um novo jogador chegou à cidade na forma de WebAssembly (WASM). Neste artigo vamos ver o que é o WebAssembly, como funciona e os seus laços com a indústria das Criptomoedas.

O que é o Web Assembly (WASM)?

O Web Assembly, popularmente referido como WASM, é uma estrutura de código aberto que permite aos programadores usar o seu código-fonte ou modificá-lo como o programador desejar. O WASM vai um passo adiante com um formato de instrução binária para uma máquina virtual (VM) baseada em pilha. É usado como um destino de compilação portátil para linguagens de programação de alto nível. É uma opção binária pequena e rápida que promete um desempenho quase nativo para aplicações web.

O WebAssembly foi concebido para servir como um destino de compilação para qualquer linguagem, incluindo JavaScript. Isto significa que os programadores podem compilar várias linguagens de programação como C/C++, Go, Rust e muito mais num único padrão que pode ser executado quase nativamente em navegadores como uma alternativa próxima ao JavaScript.

Os desenvolvedores podem usar o Web Assembly para casos de uso de alto desempenho, como jogos, streaming de música, edição de vídeo e aplicações de design auxiliado por computador (CAD). Vários serviços web já adotaram o WASM, por exemplo, o Google Earth e o Figma.

História da WebAssembly

O WebAssembly foi desenvolvido para resolver a necessidade de um melhor desempenho web e o desejo de introduzir uma gama mais ampla de linguagens na plataforma web. Em 2015, o WebAssembly Community Group, composto pela Mozilla, Google, Microsoft e Apple, criou um novo formato binário. Em 2017, o WebAssembly MVP (Minimum Viable Product) foi lançado para fornecer uma base estável para o formato binário, modelo de execução e integração na plataforma web.

O próximo lançamento foi o suporte ao navegador, com os principais navegadores como o Chrome, Firefox, Safari e Edge incorporando WebAssembly. Os programadores descobriram a utilidade da tecnologia fora dos navegadores web e começaram a explorar o uso do WASM na área de ambientes do lado do servidor para computação de alto desempenho.

Como funciona o Web Assembly?

Para ter uma noção de como funciona o WebAssembly, precisa de perceber como funciona o motor JavaScript. Para compilar o código JS, o motor faz algumas coisas, como passar o código através do Parser, que é uma ferramenta que passa pelo código linha por linha, verificando a sintaxe válida bem como os tipos de código. Uma vez concluído, o analisador cria uma estrutura de dados em árvore chamada Árvore de Sintaxe Abstrata (AST).

Uma vez criado o AST, o interpretador do motor pega o AST e converte-o em Bytecode, que é uma representação intermédia do código. O compilador do motor pega o Bytecode e transforma-o em código que as máquinas podem executar no seu processador.

O WebAssembly funciona de forma diferente do JavaScript e diz-se que é mais rápido porque o código WASM vai diretamente para o compilador, pulando efetivamente as etapas um e dois no processo JavaScript. A razão para isso é que, ao contrário do JavaScript, que é uma linguagem digitada dinamicamente, o WASM é tipado estaticamente, o que significa que enquanto a linguagem está a ser digitada, os tipos são declarados antecipadamente; portanto, são conhecidos e verificados em tempo de compilação.

Então, ao escrever um código WASM, escreve o código com os seus tipos, normalmente numa linguagem estaticamente digitada. Em seguida, gera um módulo WASM pré-compilado e, finalmente, executa o código diretamente pelo compilador do motor, pulando o estágio de análise e transformação para o estágio de Representação Intermediária.

Características do WebAssembly

O WebAssembly foi desenvolvido para compilar várias linguagens e diz-se que é mais rápido que o JavaScript. Para poder realizar este feito, foi equipado com certas funcionalidades que não só garantem a segurança e proteção do quadro mas também provam que é de confiança.

Padrão W3C

Tendo estabelecido a confiança na sua eficácia e credibilidade, o WebAssembly foi adicionado às línguas oficiais da web. Existem atualmente quatro idiomas, HTML. CSS, JavaScript e agora WebAssembly. Então, o WebAssembly é agora considerado o padrão WC3.

Velocidade e Eficiência

A máquina de pilha do WebAssembly foi construída para funcionar em formato de código binário, afetando muito o tempo de carregamento e o tamanho. A sua velocidade e eficiência tornaram-no um marco no desenvolvimento de blockchain, e muitos desenvolvedores agora fazem uso da linguagem para ecossistemas robustos.

Segurança

A máquina virtual verifica o código WebAssembly, valida e executa-o dentro de uma sandbox segura para memória. O ambiente incorporado restringe o acesso a recursos locais, incluindo o sistema de ficheiros ou portas de rede. Isto significa que o código WebAssembly obtido da Web e é executado no navegador é altamente limitado quando se lida com recursos de hardware e software.

Open Source

O W3C tem várias empresas de navegadores a trabalhar no projeto. Isto permite que a comunidade contribua, permitindo a criação de aplicações compatíveis com versões anteriores, sem funcionalidades e aplicações testadas por funcionalidades.

WebAssembly e Ethereum

O WebAssembly é atualmente visto como uma alternativa próxima à Ethereum Virtual Machine (EVM). Isto porque, através do WebAssembly, os programadores estão agora equipados com um conjunto de instruções eficiente no qual diferentes linguagens podem ser compiladas, garantindo um desempenho eficaz em diferentes plataformas. O conjunto de instruções WebAssembly também pode ser facilmente determinístico apagando as instruções de ponto flutuante, o que o tornaria um substituto viável para o EVM.

A Ethereum demonstrou interesse no WebAssembly e está a liderar os esforços para desenvolver o Ethereum WebAssembly (EWASM), o redesenho proposto da Máquina Virtual Ethereum. Uma vez bem-sucedido, espera-se que o EWASM seja mais eficiente e permita que os programadores escrevam códigos em várias línguas devido aos seus laços com o WASM. O EWASM funcionará como o EVM como uma linguagem de bytecode pré-compilada que será interpretada nos nós Ethereum.

Com isto, os DApps tornar-se-ão mais eficientes na produção. A integração do WASM tornará o desenvolvimento de contratos inteligentes mais acessível para pessoas que já estão habituadas a linguagens populares como Rust e Go. Isto acaba por erradicar a necessidade de os programadores aprenderem a escrever solidez antes de criar aplicações úteis no Ethereum.

Projetos Blockchain que fazem uso do WebAssembly

Mesmo que o WASM não esteja totalmente desenvolvido para atividades de blockchain, alguns projetos já estão a utilizá-lo para melhorar a funcionalidade das suas plataformas. Por exemplo:

Cosmos

Cosmos é uma cadeia de blocos desenvolvida para facilitar a comunicação entre livros distribuídos sem ter de esperar num servidor central. Popularmente chamados de Internet das Blockchains, foram um dos primeiros blockchains a utilizar o WASM como a sua pilha de construção principal. Implementam o CosmWASM, uma estrutura para a construção de contratos inteligentes no WASM para o Cosmos SDK, Tendermint BFT e protocolo IBC para o seu desenvolvimento de blockchain nativo.

Polkadot

O uso do WASM pelo Polkadot depende de ser um meta-protocolo, permitindo outras linguagens que foram interpretadas ou compiladas no WebAssembly. A utilização do WASM permitiu infra-estruturas e substratos sem garfo para permitir que outras aplicações fizessem ajustes nas cadeias conectadas com pouca ou nenhuma coordenação.

Perto do Protocolo

Near protocol é uma cadeia de blocos pública criada para construir aplicações descentralizadas usando WebAssembly. O Near utiliza o WebAssembly como uma boa maneira de alavancar a tecnologia da Web para melhorar o desempenho e a portabilidade. Implementaram o AssemblyScript para a sua linguagem porque descobriram que é uma opção mais portátil e também fornece acesso fácil a programadores web.

Web Assembly vs JavaScript

JavaScript é uma linguagem de programação interpretada de alto nível que apoia o desenvolvimento web há décadas. Foi desenvolvido para adicionar interatividade às páginas web e é exibido no lado do cliente por navegadores da web. Ao longo dos anos, a popularidade da língua cresceu devido à facilidade de uso e à adoção generalizada.

Desde o início da World Wide Web, sempre houve JavaScript. Recentemente, surgiu o WASM (WebAssembly) e embora muitos acreditem que os dois estão intimamente ligados, o WASM consiste em várias outras coisas, incluindo JavaScript. O WASM foi originalmente desenvolvido para ajudar o JavaScript a funcionar de forma mais eficaz em navegadores web.

Embora ainda sirva o mesmo propósito, o WASM estende-se agora para além do navegador web e aventurou-se em aplicações de borda e servidor, sabe-se que faltam duas áreas de JavaScript. Isto é possível porque, a nível da CPU, o WASM é executado num formato binário e também não é uma linguagem de programação como o JavaScript. O WASM fornece uma funcionalidade extra que acomoda várias linguagens diferentes como JavaScript, Python, Rust e muito mais.A vantagem do WASM sobre o JavaScript continua a ser a sua capacidade de integração com a linguagem sem se limitar ao JavaScript. A integração dá ao JavaScript um grande impulso no desempenho ao compilar a linguagem já interpretada e o seu tempo de execução em módulos WASM.

WebAssembly Vs Ferrugem

WebAssembly e Rust são duas tecnologias muito distintas, mas ao mesmo tempo estão frequentemente associadas umas às outras. Rust é uma linguagem de programação popular conhecida pela sua velocidade, segurança e alto desempenho. O WebAssembly, por outro lado, é um compilador que converte códigos em máquinas executáveis. Para além das suas definições, as duas tecnologias são diferentes das seguintes maneiras.

Desenvolvimento Web

O WASM é utilizado principalmente no desenvolvimento web, permitindo a execução de código em navegadores web, incluindo JavaScript. Ao mesmo tempo, o Rust é uma linguagem multiuso que tem várias aplicações, incluindo programação de sistemas, desenvolvimento de jogos e muito mais.

Características de sintaxe e linguagem

O WASM não é uma linguagem de programação mas é um formato de instrução binário e pode ser direcionado por linguagens como C, C++ e Rust. O Rust, por outro lado, é uma linguagem com a sua sintaxe e características como empréstimos, propriedade e muito mais.

Gestão de memória

O WASM utiliza um modelo de memória linear que fornece um espaço de endereço linear que é facilmente acedido pelo programa. A gestão da memória é tratada manualmente pelo programador e é mantida explícita. A ferrugem, por outro lado, coloca a tónica na segurança da memória. Faz uso de um verificador de empréstimos e um sistema de propriedade que impõe uma regra rígida no momento da compilação que elimina vários bugs conhecidos por afetar a segurança da memória.

Concorrência

O Rust está equipado com o seu próprio suporte para programação de concorrência através do seu sistema de propriedade, que permite aos programadores escrever código seguro e de concorrência sem o risco de corridas de dados. Ao contrário do Rust, o WASM não possui tais características; no entanto, pode alavancar as funcionalidades de concorrência do ambiente anfitrião.

Os melhores recursos para começar a usar o WebAssembly

Ao aprender a usar o WASM, certos cursos fornecem o melhor conhecimento para iniciantes que procuram criar projetos WASM com uma variedade de idiomas. Alguns destes cursos incluem:

Udemy

Este curso fornece um guia completo para aprender a API JavaScript WebAssembly e o conjunto de ferramentas Emscripten. Uma vez adquirido, o curso dá aos utilizadores acesso a mais de 2 horas de videoaulas sob pedido e 17 recursos educativos para download.

O curso dá aos iniciantes uma noção do que é o WebAssembly e como isso afeta o desenvolvimento web. Também aprenderia a carregar e executar módulos WebAssembly usando APIs nativas do navegador Java Script.

Visão plural

Este curso cobre os fundamentos do WebAssembly e porque é importante. O curso irá mostrar-lhe como construir aplicações usando WebAssembly e como criar aplicações web usando outras linguagens como C/C++.

Acampamento Freecode

Este curso gratuito sobre WebAssembly dá aos iniciantes uma análise do que é o WASM. Ensina-o a escrever, compilar, incluir e instanciar o código. Fornece um guia passo a passo sobre como compilar código C++ no WASM.

Conclusão

O WebAssembly está atualmente na vanguarda do desenvolvimento web e a sua velocidade, segurança e adaptabilidade são as principais funcionalidades que os programadores acreditam que irão inaugurar um novo mundo para as Aplicações Descentralizadas. À medida que mais produtos procuram fazer uso do WASM, as portas de um futuro onde os contratos inteligentes são facilmente desenvolvidos e protegidos com as linguagens que o programador conhece estão ao seu alcance.

Autor: Tamilore
Tradutor(a): Cedar
Revisor(es): Matheus、Wayne、Ashley He
* As informações não se destinam a ser e não constituem aconselhamento financeiro ou qualquer outra recomendação de qualquer tipo oferecido ou endossado pela Gate.
* Este artigo não pode ser reproduzido, transmitido ou copiado sem fazer referência à Gate. A violação é uma violação da Lei de Direitos de Autor e pode estar sujeita a ações legais.

Partilhar

Calendário Cripto

Atualizações de projetos
Etherex irá lançar o Token REX no dia 6 de agosto.
REX
22.27%
2025-08-06
Dia Raro de Desenvolvimento & Governança em Las Vegas
A Cardano irá organizar o Rare Dev & Governance Day em Las Vegas, de 6 a 7 de agosto, apresentando workshops, hackathons e discussões em painel focadas em desenvolvimento técnico e tópicos de governança.
ADA
-3.44%
2025-08-06
Blockchain.Rio em Rio de Janeiro
A Stellar participará da conferência Blockchain.Rio, agendada para ser realizada no Rio de Janeiro, de 5 a 7 de agosto. O programa incluirá palestras e discussões em painel com representantes do ecossistema Stellar em colaboração com os parceiros Cheesecake Labs e NearX.
XLM
-3.18%
2025-08-06
Webinar
A Circle anunciou um webinar ao vivo chamado “A Era do GENIUS Act Começa”, agendado para 7 de agosto de 2025, às 14:00 UTC. A sessão irá explorar as implicações do recém-aprovado GENIUS Act—o primeiro quadro regulatório federal para moedas estáveis de pagamento nos Estados Unidos. Dante Disparte e Corey Then, da Circle, liderarão a discussão sobre como a legislação impacta a inovação em ativos digitais, a clareza regulatória e a liderança dos EUA na infraestrutura financeira global.
USDC
-0.03%
2025-08-06
AMA na X
Ankr irá realizar um AMA no X no dia 7 de agosto às 16:00 UTC, focando no trabalho do DogeOS na construção da camada de aplicação para DOGE.
ANKR
-3.23%
2025-08-06

Artigos relacionados

O que é o Gate Pay?
Principiante

O que é o Gate Pay?

O Gate Pay é uma tecnologia de pagamento segura com criptomoeda sem contacto, sem fronteiras, totalmente desenvolvida pela Gate.io. Apoia o pagamento rápido com criptomoedas e é de uso gratuito. Os utilizadores podem aceder ao Gate Pay simplesmente registando uma conta de porta.io para receber uma variedade de serviços, como compras online, bilhetes de avião e reserva de hotéis e serviços de entretenimento de parceiros comerciais terceiros.
1/10/2023, 7:51:00 AM
O que é o DyDX? Tudo o que precisa saber sobre a DYDX
Intermediário

O que é o DyDX? Tudo o que precisa saber sobre a DYDX

O DyDX é um intercâmbio descentralizado (DEX) bem estruturado que permite aos utilizadores trocar cerca de 35 criptomoedas diferentes, incluindo BTC e ETH.
12/23/2022, 7:55:26 AM
O que é Uniswap?
Principiante

O que é Uniswap?

O Uniswap é um protocolo de comércio criptográfico descentralizado baseado na blockchain Ethereum que permite a qualquer pessoa trocar os fichas ERC-20 diretamente da sua carteira ou criar piscinas de liquidez dos fichas.
11/21/2022, 9:29:17 AM
Aptos: Um lar para DeFi's de Alto Desempenho
Principiante

Aptos: Um lar para DeFi's de Alto Desempenho

Este artigo analisa o Aptos a partir de perspetivas como a sua linguagem adoptada, o crescimento do ecossistema e os projetos DeTI implementados, afirmando que o Aptos é uma das melhores escolhas para projetos DeTI.
12/31/2023, 8:46:47 AM
Tudo o que precisa saber sobre o Helio
Intermediário

Tudo o que precisa saber sobre o Helio

O Helio Protocol é um protocolo stablecoin excessivamente colateralizado construído na cadeia BNB. A lógica do produto é semelhante aos protocolos tradicionais de stablecoin sobre-colateralizados, com a principal diferença sendo que os ativos colateralizados no BNB são convertidos em ativos LSD do BNB para obter lucros, que são depois distribuídos aos intervenientes da stablecoin HAY e fornecedores de liquidez. O protocolo ainda não emitiu um token de governação e recebeu um investimento de 10 milhões de dólares da Binance em agosto deste ano.
12/14/2023, 4:54:43 PM
Empréstimo no Ethereum: Comparando a evolução da arquitetura do MakerDAO, Yield, Aave, Compound, & Euler
Intermediário

Empréstimo no Ethereum: Comparando a evolução da arquitetura do MakerDAO, Yield, Aave, Compound, & Euler

Este artigo analisa os mecanismos de empréstimo e projetos arquitetónicos de diferentes protocolos, e também examina os pontos fortes e fracos de várias abordagens, bem como os desafios enfrentados pela indústria.
12/31/2023, 1:08:06 PM
Comece agora
Registe-se e ganhe um cupão de
100 USD
!