What is an Ethereum (ETH) Virtual Machine (EVM)?
EVM processes and executes the smart contract rules for Ethereum (ETH) nodes.
An Ethereum Virtual Machine (EVM) processes and executes smart contracts. You can think of it as the translator from the smart contract language to the Ethereum nodes.
Technically speaking, EVM is an abstraction layer above the underlying hardware, which connects the requests (transactions) to the network.
Multiple devices and technological concepts have sprouted since the advent of the blockchain technology.
The Ethereum Virtual Machine popularly known as EVM is one of such element that has its root in the blockchain. Just as the name implies, its functionality is built around Ethereum blockchain.
Ethereum’s blockchain is programmable, allowing users to create their own operations of different complexity. The Ethereum network allows developers to create decentralized applications, which includes cryptocurrencies but is not limited to this function.
At the center of this function of Ethereum is the Ethereum Virtual Machine (EVM).
EVM as a concensus hub for full nodes
An Ethereum Virtual Machine is a computer that all full nodes in the Ethereum network agree to run, the reason why the EVM is referred to as the heart of the Ethereum Blockchain.
A consensus is required for agreeing how every code or data functions on the Ethereum network. Every node in the Ethereum network runs on the EVM in order to maintain a single consensus across the blockchain.
This means that the EVM serves as a connection point for a group of individuals, everyone in the network has the same data on a blockchain and so everyone will have the same result.
Only Full nodes are used for performing code execution on the Ethereum network. Full nodes do not rely on any external service; they execute codes on their own as a means of increasing security. There are other types of nodes on the Ethereum network, like the light client.
Light Ethereum (ETH) clients
Light Clients mostly implemented on mobile devices, mostly because of their considerably lower power and resources do not perform all the code execution on their own, they rely on external nodes for performing more complex computations, as a result, they are slightly less secure than the full nodes that run on the EVM.
Ethereum allows developers to create applications (decentralized applications) using a set of programming languages available on the network.
The Dapps created by programmers find its meaning in the EVM. The Ethereum Virtual Machine is designed to execute codes which have been modeled on existing languages on the Ethereum blockchain.
Downside of the Ethereum Virtual Machine
Ethereum maintains a singular consensus with the EVM.
The parallel connection offered by Ethereum Virtual Machines across the entire network makes computation on the Ethereum much slower and more expensive that it would be on traditional computers.
When compared to other blockchains, the Ethereum blockchain comes under regular fire by critics for being relatively slower in terms of transaction speed and transactions that can be performed on the network per second.
The reason behind the slow speed recorded on the Ethereum network is a result of maintaining a singular consensus, backed by the Ethereum Virtual Machine.
Size of Ethereum Blockchain [updated 2018]
The size of the Ethereum blockchain has recently become a big topic of discussion. Depending on how you install/run your node, it can reach up to 1TB.
One community member posted the following data online in March 2018:
As you can see on the Partiy (Rust) install, the full archive runs over 1TB of storage. To put things in perspective, the latest laptops come equipped with roughly 100-300GB stock. That’s barely one-third of the ETH blockchain (using March 2018 numbers).
The Ethereum Foundation is famously working on a scaling solution (Casper and Sharding). We will continue to follow their every move.