Ethereum Classic (ETC) does not need a custom virtual machine! Furthermore, some alternatives have vastly better performance and support! I will discuss and also consider the WebAssembly virtual machine.

Performance

The ETC system is brilliant. Nevertheless, its virtual machine is not very amenable to fast implementations. For example, the ETC virtual machine only supports 256 bit integers. These are not supported by most current hardware. In general, implementations must sacrifice a lot of performance because most hardware is so different in many ways. On the other hand, the WebAssembly virtual machine was intentionally designed to be similar to modern hardware to increase performance.

This lack of performance leads to calls for extensions to the ETC virtual machine to handle computationally expensive cryptographic operations and more. Measures like this would be unnecessary with the WebAssembly virtual machine.

Support

There are only a few ETC smart contract languages to choose from. Smart contract development unfortunately does not get as much attention as other sectors like web development. Imagine having support for all major programming languages and having access to advanced optimizing compilers for each.

The WebAssembly virtual machine is supported by Google, Microsoft, Apple, Facebook and others. Billions will use the WebAssembly virtual machine as it is supported by all the major web browsers. There will simply be more and better support for the WebAssembly virtual machine for a long time.

Alternatives

There are other virtual machines with good performance and support such as the Java Virtual Machine, .NET Common Language Runtime and LLVM. The problem with these is they include too much. This bloat, which makes it difficult to gain widespread acceptance in blockchain systems, is also a big reason why these alternatives are not universally desired on the web. On the other hand, the WebAssembly virtual machine has a minimalistic specification that was agreeable to all the major web supporters!

Furthermore, unlike these other options, WebAssembly is not an additional virtual machine to be added to the web! Rather, it is essentially just some extensions to the current Javascript virtual machine. This avoids the need to support multiple virtual machines and communications between each.

Conclusion

The ETC virtual machine is not ideal and not even necessary. Other choices have better performance and support. The WebAssembly virtual machine is a compelling option as it will likely be the most supported virtual machine on the planet. This worldwide attention will likely lead to unprecedented scrutiny, security, performance and development compared to all the alternatives.

Feedback

Feel free to leave any comments or questions below. You can also contact me by email at cs@etcplanet.org or by clicking any of these icons:

Acknowledgements

I would like to thank IOHK (Input Output Hong Kong) for funding this effort.

License

This work is licensed under the Creative Commons Attribution ShareAlike 4.0

International License.