What is Ethereum Virtual Machine? EVM at a glance
EVM, or Ethereum Virtual Machine, is an important component of the Ethereum blockchain platform. It is responsible for executing smart contracts, which are self-executing contracts with the terms of the agreement between buyer and seller being directly written into lines of computer code.
If you think about Ethereum as a complete ecosystem of a currency and a smart contract platform, you can imagine EVM as the engine or the brain inside. This engine is able to understand programming and, therefore, the smart contracts that are built. In this way, anyone, whether a developer or even a user like you, could use this brain to build and launch decentralised applications or decentralised applications or Dapps on the Ethereum network.
When a smart contract is deployed on the Ethereum network, it runs on the EVM, which processes transactions and ensures that the contract behaves as intended. The execution of the smart contracts on the EVM is what allows for Dapps to run on the Ethereum blockchain.
Whether it is a decentralised exchange (DEX), or another DeFi Dapp like a lending system, or even a game or an NFT marketplace, every Dapp that is launched on Ethereum is run by this EVM.
It all began when the co-founder of Ethereum, Vitalik Buterin, suggested that one of the earliest examples of a Dapp was BitTorrent – the software that changed the way people downloaded and shared files by splitting up large files into multiple portions to hasten downloads.
BitTorrent not only made it easier and faster to share files, it is still active today, more than 20 years after its development by Bram Cohen. The file-sharing protocol has spawned dozens of versions, and people continue to share torrents, particularly of hard-to-get files.
Its longevity is also remarkable when considering that there have been multiple attempts to take it down – mainly because of alleged piracy of intellectual rights, associated with sharing protected content like copyrighted books and films.
But Buterin’s comparison probably refers to BitTorrent’s vast network of distributed computers all over the world. It won’t be enough to take down one or most of the computers running it – you would have to take down every single computer running a BitTorrent client to kill the network.
So Ethereum wanted to do the same thing – be a virtual machine, which has no physical limits, doesn’t require expensive computers, and can be used rightaway by most newcomers with basic computer literacy.
While Bitcoin and early crypto networks required people to learn more about computers, understand bytes, cryptography, proof of work, you didn’t necessarily need to learn much more than a programming language to build an application on Ethereum.
Blockchains use EVM because it is a highly efficient and secure computing platform that allows developers to create Dapps on the blockchain network.
EVM is the execution environment (sometimes called the runtime environment) for smart contracts on the Ethereum blockchain and provides a platform for developers to write and run code in a decentralised manner without the need for a central authority or server.
In addition, EVM is capable of Turing completeness. In computing theory, Turing completeness refers to the ability of a machine – a simple machine that can implement an algorithm according to rules. In other words, EVM, being Turing complete, can recognise or decide rule sets for data manipulation.
This means that smart contracts can perform any combination of code and complex calculations. This flexibility of performing complex calculations is what gives EVM the ability to be used for a variety of use cases and applications.
All in all, Ethereum Dapps are not only able to use the security of a decentralised network, but also have the flexibility to build all sorts of decentralised apps.
For developers of Dapps, EVM itself is a beneficial package that promotes open coding because the codes uploaded to the EVM are transparent and immutable. It also allows for developers to code in simpler programming languages, when compared to other systems.
Because most of the smart contracts codes on Ethereum are open, it is also fairly simple for developers to simply copy these smart contracts and modify them to their needs to create different versions or add improvements to existing Dapps. Many Dapps out there actually are built from the same source code of their predecessors.
The success of EVM with its unique sets of advantages has resulted in Ethereum remaining as the most established and widely adopted platform.
Like any system, there are some disadvantages to the EVM. One main criticism is how expensive it can be.
Every interaction on Ethereum usually denotes a transaction. Other than regular sending transactions where tokens are transferred, most other types of interaction requires a smart contract to execute. Examples include approving a new type of interaction (like approving a new USDT to ETH swap) or approving a request to stake tokens into a liquidity pool (like staking ETH and USDT into a USDT/ETH liquidity pool on a DEX).
Any transaction on Ethereum also requires fees, which is denoted as gas. This gas is paid for in Ether (ETH).
In case of high networking activity, gas fees increase. Sometimes, an execution fails, and you get your gas back – but if you run out of gas while the execution is happening (for example, fees raise before your transaction is confirmed), then the execution will also fail.
Another suggested flaw is the many quirks of Solidity, the main programming language used to code on Ethereum. While it is a fairly simple coding language, it has been the subject of a range of bugs and exploits. The DAO exploit that caused Ethereum to fork, and the Parity multi-sig wallet bug were some prominent examples that caused huge losses of funds.
The EVM needs to be flexible, and perhaps sacrifices some security aspects, such as inspection and traceability. Because anyone can upload Dapps, a lot of the coding on the chain is illegible to some, and allows for what could be dangerous calls to external smart contracts.
Finally, while Ethereum itself is decentralised, many of the Dapps actually rely on their creators or owners to continue using Ethereum. If a Dapp’s owner stops using Ethereum, it is likely that the service will also fail if the nodes stop doing work for it.
As a result, EVM-compatible alternatives like Binance Smart Chain, Avalanche, Polygon, and Fantom provide what they feel are promising solutions to issues like scalability, transaction fees, and speed.
There are several blockchain platforms that do not use the EVM.
Non EVM blockchains are the ones that do not follow the Ethereum principles and do not require continuous monitoring from a computation engine. Non-EVM compatible chains are more likely to grow in trending categories and niches where new ideas are emerging. Diverse public chains can thrive in areas such as NFTs, GameFi, and payments.
The most well-known blockchain without EVM is Bitcoin, which uses a proof-of-work (PoW) consensus algorithm to validate transactions. While it is considered a lot less vulnerable in terms of security exploits, this is mainly because Bitcoin was designed as a non-Turing complete system with limited functionality.
Bitcoin uses the Script programming language, with a highly-focused function of processing Bitcoin transactions, unable to support more complex smart contract logic that requires multiple steps of execution.
EOS was another blockchain platform that did not initially use EVM. It used a delegated proof-of-stake (DPoS) consensus algorithm, which does not require miners to validate transactions. Instead of Solidity, it used the WebAssembly (WASM) standard, allowing developers to write code in any programming language, that could run on any browser supporting WASM. This was thought to result higher efficiency, speed, and user-friendliness.
However, recognising that EVM is still today the most-used solution for Dapps, EOS also developed an EVM-compatible version with a consensus mechanism upgrade in April 2024, making it, by far, the “fastest” EVM-comptible network at the moment.
Web3 wallets are not EVMs on their own, but they are designed to interact with the Ethereum blockchain, which is powered by the EVM. Web3 wallets are different from traditional wallets as they have built-in support for interacting with smart contract networks, allowing users to sign transactions and approve smart contract interactions without leaving the wallet interface.
Many Web3 wallets also call themselves “EVM-compatible”. MetaMask is one such wallet. This means that wallet is able to interact with Dapps that utilise an EVM chain.
On Ethereum, they allow users to securely store and manage their Ethereum-based assets, such as Ether and ERC-20 tokens, as well as interact with Dapps built on the Ethereum blockchain. On BNB Chain, they do the same, but with BNB and BNB ERC-20 tokens.
Popular Web3 wallets include MetaMask, MyEtherWallet, Trust Wallet, and Coinbase DApp Wallet, Bitpie, Brave, Wallet3, and XDEFI.