WebAssembly

From CryptoWiki

Basics

"WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications."

  • From this blog (31-8-2019):

"Wasm is built for the web and is being actively developed by engineers from Mozilla, Google, Microsoft and Apple."

Ethereum WebAssembly (eWASM)

  • From this blog (31-8-2019):

"Ewasm will replace the EVM as the state execution engine of the Ethereum network and is expected to be one of the final aspects of Eth 2.0 to be integrated. Ewasm (Ethereum WebAssembly), is a “restricted subset of Wasm” that has been modified specifically for the Ethereum network. One of the major targets is to provide an EVM transcompiler and a metering injector, preferably as an Ewasm contract. Another is a clear specification of the Ethereum interface and Ewasm contract semantics. Finally, the team aims to implement an Ewasm backend for the Solidity compiler and to provide instructions and a library for writing contracts in C and Rust. The differences between Ewasm and wasm can be thought of in the following way: Ewasm = Wasm — nondeterminism (floating point) + metering + EEI methods (used to interact with Ethereum). Ethereum will join projects like Polkadot, Cardano, EOS, Tron, Spacemesh and NEAR protocol, who have either already adopted or are in the process of adopting Wasm.⁹"