WASM: El futuro de Web3

WebAssembly, abreviado WASM, es un formato relativamente nuevo de código binario portátil que puede ejecutarse de forma eficiente en los navegadores modernos. El Consorcio World Wide Web (W3C) publicó el código en 2017 con la participación de ingenieros de Google, Mozilla y Apple.

El propósito original de WebAssembly era permitir apps de alto rendimiento en páginas web. Como WASM no proporciona ninguna funcionalidad específica de la Web, también podemos aplicarlo en otros entornos, como el desarrollo de blockchain y contratos inteligentes.

WASM se conoce frecuentemente como Ethereum Virtual Machine – precursora de EVM – en el entorno de desarrollo de blockchain. Puede suministrar todas las funciones de EVM y añadir otras nuevas.

Cómo las ineficiencias de los EVM se convirtieron en el punto de partida de WASM

Con la llegada de EVM, el ordenador virtual de Ethereum para ejecutar/construir contratos inteligentes, la Fundación Ethereum llevó el desarrollo de dApps al siguiente nivel.

EVM es una máquina de estado basada en pilas que traduce el opcode de EVM en instrucciones computacionales que pueden ejecutarse sobre la blockchain. La creó el Dr. Gavin Wood, cofundador de Ethereum y fundador de Polkadot.

Los desarrolladores pueden utilizar lenguajes orientados a contratos, como Solidity o Vyper, para crear aplicaciones que puedan compilarse a bytecode de EVM. La profundidad de EVM es de 1024 elementos, y cada elemento es una palabra de 256 bits.

Sin embargo, el EVM sigue presentando un grave problema: se trata de un diseño muy influenciado por las opiniones. Deriva de un diseño ya muy opinado, que es el diseño de script Bitcoin y hay varios problemas con este enfoque:

  • El rendimiento de los contratos inteligentes está limitado a los EVM: cálculo de 256 bits en arquitectura de 32/62 bits, límite de tamaño de contrato en 24 Kb (EIP-170).
  • Las herramientas de Solidity son muy primitivas y aún nuevas en comparación con NPM o Cargo.
  • La lógica compleja no puede implementarse en EVM
  • eWASM tiene mucha sobrecarga (EIE)
  • Solidity y Vyper son lenguajes poco ortodoxos que hay que aprender.
  • Las dApps EVM están estancadas debido a la falta de innovación

eWASM vs EVM

eWASM es una de las varias mejoras que Ethereum introdujo para facilitar la transición a Ethereum 2.0. Mucha gente vio en eWASM una solución para el desarrollo de un ecosistema rápido, escalable y flexible, animando a los desarrolladores a diseñar complicados contratos inteligentes sobre el protocolo de Ethereum 2.0. eWASM o Ethereum WebAssembly es la versión de Ethereum 2.0 de WebAssembly (WASM).

Un EVM basado en WASM puede beneficiarse de características de hardware mejoradas y de un ecosistema diverso de herramientas y soporte de lenguajes. Con una EVM de este tipo, los contratos inteligentes pueden escribirse teóricamente en cualquier lenguaje que compile en WebAssembly.

En lo que respecta al equipo eWASM, han declarado lo siguiente como sus objetivos de diseño únicos:

  • Como contrato eWASM, crear un transcompilador EVM y un inyector de medición
  • Una especificación detallada de la interfaz Ethereum, así como la semántica del contrato eWASM y características más finas
  • Crear un backend eWASM compilador solc
  • Se proporcionan instrucciones y una biblioteca para desarrollar contratos inteligentes en C y Rust

Al integrar eWASM, Ethereum se unirá a proyectos como EOS, Tron, Cardano y otros que han implementado o están considerando adoptar WASM.

Es vital destacar que las transacciones basadas en EVM no son legibles por humanos, lo que tiene un impacto significativo en la experiencia de usuario del entorno.

EVM no es sostenible desde el punto de vista informático ni energético. Aunque se construyó para ser lo más eficiente posible, aún contiene problemas que lo hacen ineficiente en comparación con competidores como Polkadot, NEAR, Solana y Cosmos.

EVM tiene su propio conjunto de instrucciones, limitaciones de espacio de memoria y restricciones de profundidad de pila, lo que aumenta la probabilidad de que se produzcan fallos y errores. Esto hace que escribir contratos inteligentes seguros para EVM sea todo un reto. Como vimos con el hackeo de DAO en 2016, incluso errores menores en la codificación pueden ser explotados por hackers motivados para explotar esa debilidad.

EVM tiene un tamaño de pila de 1024 y admite palabras de 256 bits. El límite de 1024 muestra que el nivel de complejidad de los contratos inteligentes de EVM está diseñado para ser limitado.

Como resultado, las restricciones de EVM dificultan el diseño de casos de uso avanzados para los desarrolladores de EVM.

El futuro de Web3: WASM

WASM es un estándar omnipresente para realizar actividades a nivel nativo desde el contexto de un navegador. Google, Microsoft, Mozilla, Apple y otros lideran el desarrollo.

Gracias a la fuerza de WASM, es posible ejecutar cualquier tarea que requiera un uso intensivo de hardware, como juegos, desde el navegador con un rendimiento cercano al nivel nativo.

Para que Web3 sea una realidad, es necesaria la adopción masiva de blockchain, y los contratos inteligentes basados en WASM son técnicamente superiores a EVM. La capacidad de WASM para superar a EVM como máquina virtual para blockchains es clara: es rápido, eficiente y portátil, con una velocidad casi nativa:

  • Alto rendimiento: WASM permite un buen rendimiento ya que está diseñado para ser lo más parecido posible al código máquina nativo sin dejar de ser independiente de la plataforma.
  • Tamaño reducido: WASM genera archivos binarios de tamaño minúsculo. Esto encaja perfectamente en el mundo del blockchain, ya que los binarios más pequeños se traducen en menos datos de transacción y, por tanto, en menores gastos de gas.
  • VM general y bytecode: WASM se diseñó para poder desplegarse en cualquier navegador y producir los mismos resultados. EVM, en cambio, se creó para un caso de uso específico. Como resultado, más equipos han estado utilizando WASM por diversas razones y creando una amplia gama de herramientas y recursos.
  • Herramientas y soporte: Como se ha indicado anteriormente, la comunidad ha ido desarrollando herramientas y recursos para WASM que están a disposición de los desarrolladores.
  • Ejecución JIT eficiente: WASM admite de forma nativa operaciones con enteros de 64 y 32 bits, lo que permite una ejecución JIT eficiente. Esto es útil cuando se ejecutan operaciones de 64 bits, ya que elimina la necesidad de descomponer y simular instrucciones. WASM, por su parte, proporciona todas las instrucciones numéricas con capacidad de 64 bits que se asignan una a una a las instrucciones de la CPU.
  • Minimalista: las especificaciones formales de un caso de uso caben fácilmente en una sola página.
  • Ejecución determinista: WASM puede hacerse determinista fácilmente eliminando las operaciones en coma flotante, lo que es necesario para los algoritmos de consenso.
  • Soporte de lenguajes de programación populares: WASM soporta C, C++, C#, Assembly Script, RUST, evitando que los desarrolladores tengan que aprender lenguajes de casos de uso únicos como Solidity.

Una perspectiva de futuro

La transición entre EVM y WASM se producirá gradualmente. Aunque WASM recibe un apoyo y una integración considerables, a diferencia de EVM, no está diseñada para comunicarse con la blockchain. Actualmente, está experimentando un bajo nivel de adopción por parte de los desarrolladores de Web3, ya que EVM es la máquina virtual más utilizada y carece de herramientas.

Actualmente, sólo hay un puñado de redes blockchain que soportan WASM de forma nativa y, por lo tanto, un pequeño número de dApps basadas en WASM. Para trabajar con las dApps nativas de WASM y liberar todo su potencial, se necesitan herramientas Web3 desarrolladas en WASM. Como resultado, los proveedores de infraestructuras deben reinstalar sus servicios en WASM para poder conectar con los contratos inteligentes WASM.

Otro aspecto que subraya la necesidad de abrir Web3 para los desarrolladores Web2, además de la escasez de desarrolladores Web2 en comparación con los desarrolladores Web3, es el nivel de experiencia que tienen los desarrolladores WebAssembly con las herramientas.

Seguir Leyendo…

Fuente: Medium

Libre Traducción: LBC

Más Información…

Latam Blockchain Council