Smart Contracts and Web Assembly

in #bloglast year (edited)

Recent developments in the Ethereum development community have contributed to a multitude of competing programming languages to write smart contracts that run on the Ethereum virtual machine. What if the Virtual Machine itself were to be changed? and the programming language  used to write smart contracts were to change from solidity to other commonly used languages such as C/C++ or even the most secure programming language of Rust, which One of the arguments for supporting this change is the need to support different kinds of hardware (from small devices that run on micro-controllers, to the largest quantum computer), software operating systems and browsers.  WebAssembly (abbreviated Wasm), is a binary instruction format for a stack-based Virtual Machine that runs within the javascript virtual machine supported by most of today's browsers. Wasm is significantly developed and has a seemingly large list of tools that will enable users to build all kinds of apps. A detailed documentation of wasm and all tools supported is provided at this link.

EWasm ArchitectureFigure 2. Depicts the Ethereum Web Assembly and Ethereum Virtual Machine interface and how they inter-operate.

While Wasm apps are slowly gaining ground for different device based applications, the Ethereum foundation is promoting the development of Ethereum Wasm ( E-Wasm is a full stack virtual machine layer on top the Ethereum Virtual Machine, that brings all the benefits of WASM i.e., security, portability, speed, and low memory footprint. This layer supports writing of smart contracts in other programming languages such as C/C++/Rust thereby . E-Wasm is designed as a portable target for compilation of high-level languages like C/C++/Rust, enabling deployment on the web for client and server applications in the most commonly used programming languages. The design and specification of EWasm will make development and deployment of Smart contracts atop Ethereum secure and accessible to the common masses without needing the complex syntax of the Solidity programming language. 

Posted from my blog with SteemPress :