What is an Ethereum Virtual Machine?
An Ethereum Virtual Machine (EVM) is used to turn blockchains and other distributed ledgers into application platforms that are capable of hosting custom business logic and supporting organizational strategies for digital transformation, innovation and industry disruption. When businesses, startups, decentralized autonomous organizations (DAOs) and individual developers use Distributed Ledger Technology (DLT) to host their custom-developed applications (known as smart contracts), a virtual machine is typically required to support the execution of those applications. For these reasons, when choosing a DLT to support their business objectives, enterprises should focus their research on chains that are fully smart contract-enabled. Some chains such as Bitcoin offer limited programmability, or none at all.
The idea of DLT as a versatile platform for custom-developed business logic was first pioneered on the Ethereum public distributed ledger. Given the extent to which virtual machine technology is required to support smart contract execution on a distributed ledger, Ethereum naturally named its virtual machine the “Ethereum Virtual Machine.”
Java is the native programming language of the Java Virtual Machine (JVM) and programs that are developed in Java must first be compiled into source code called “byte-code” before the JVM can run them. Similar to Java, Solidity is the native programming language of the EVM and any business logic that’s written in Solidity must also be compiled into byte-code before an EVM can run it. In addition to the actual EVM that’s coupled with the Ethereum distributed ledger, there are other EVM-compatible virtual machines on the market. For example, the Hyperledger Besu EVM.
Competing ledgers have followed Ethereum’s lead. Some support custom developed business logic with an actual EVM and others rely on a virtual machine that’s not compatible with the EVM. Smart contract-enabled ledgers that depend on a non-EVM-compatible virtual machine are typically programmable in a language other than Solidity, for example, Rust. Other smart contract-enabled distributed ledgers have found clever ways to be EVM-compatible while at the same time supporting languages besides Solidity. Even so, among the different DLT virtual machines, EVM has the most mindshare and market share. For this reason, EVMs and their companion programming language (Solidity) have achieved de facto standard status for virtual machine-based DLT programmability. As such, enterprises that like how compliance with de facto and de jure standards keeps their options open (for example, the ability to move their custom-developed DLT applications from one distributed ledger to another without having to rewrite a lot of source code) should take this EVM ubiquity into consideration when making strategic DLT choices.
Related Blockchain Journal Articles