Recently there has been a lot of discussion around using Wasm for blockchain development, let’s talk about topic: How WASM can make dApps development easier.
How WASM can make dApps development easier
The issues with current tech
While at the time there was good reason to build a custom EVM that could be easily integrated into a blockchain, there were serious problems with that approach: For example, the EVM was inefficient at where it does not support integers smaller than 256-bit; any 256-bit operations must be performed by the CPU with many 64 or 32-bit operations. There are also very few people who can afford and are willing to extend the EVM and the necessary tools.
WebAssembly: a widely supported, high-performance standard
Many investors and scholars of reputed colleges believe that WebAssembly (Wasm), and the multitude of languages that compile to Wasm, is an ideal alternative to EVM. It is developed so that the code can be deployed in any browser with the same result. Wasm is highly performant — it’s built to be as close to native machine code as possible while remaining platform independent. It facilitates small binary codes sent over the internet to devices with slow internet connections. Spent many years working for Wasm, both the compilation and standardization team.
Language of your smart contract?
Nowadays, most importantly, Wasm extends the family of languages available to smart contract developers to include Rust, C/C++, C#, Typescript, Haxe, and Kotlin. This means you can write smart contracts in any language you’re familiar with, although we don’t like Rust due to its lack of runtime overhead and inherent security properties. Additional benefits for WebAssembly:
- Memory safe, sandboxed, and platform independent.
- Supports 64-bit and 32-bit integer operations mapped 1-1 with CPU instructions.
It is easy to implement determinism by eliminating floating point operations, which is necessary for consensus algorithms.
Powered by the LLVM compiler infrastructure project, that means Wasm benefits from over a decade of compiler optimizations by LLVM.
Continuously developed by big companies like Google, Apple, Microsoft, Mozilla and Facebook.
The road to Wasm support
While Wasm itself benefits from extensive support and integration, unlike EVM, it is not built with the intention of interacting with the blockchain. The Ethereum Parity client runs the Wasm bytecode in the Wasmi interpreter, allowing the Wasm code to access and interact with the blockchain. Currently, we are testing Wasm on a Kovan testnet on which EVM and Wasm smart contracts can coexist and even interact. The Ethereum Foundation is also working on implementing Wasm support into geth, implementing a Go client, and researching the use of Wasm in sharding.
Because we believe Wasm will be the foundation of decentralized system development, Polkadot, a next-generation blockchain interoperability protocol, is being built with Wasm support from the ground up. Polkadot smart contracts can be developed in any language compiled to Wasm.
We look forward to a future where developing secure smart contracts is easier and where developers can develop smart contracts in languages they already know.
WASM brings us many ideas about new ways of managing and supporting despite its disadvantages.
If you want to know more about WASM, Contact us right here
Contact us if you have any queries about Blockchain development services.