What is Ethereum Virtual Machine (EVM)?

Tiny Crypto Labs
Coinmonks

--

One way to think of the Ethereum blockchain is as a blockchain with a built-in programming language. A consensus-based, globally executed virtual machine is another way to describe it. The Ethereum Virtual Machine is the component of the Ethereum protocol responsible for all computing (EVM).

What is the Ethereum Virtual Machine? (EVM)

Ethereum’s ability to execute smart contracts depends on the EVM. Ethereum’s smart contracts allow for decentralized applications (dapps). Additionally, businesses can organize so-called ICOs, or initial coin offerings, on the Ethereum blockchain to introduce their tokens thanks to smart contracts.

ETHEREUM VIRTUAL MACHINE ESSENTIALS

  • The Ethereum Virtual Machine (EVM) is a runtime environment for smart contracts used to develop and test smart contracts.
  • The EVM is quasi-Turing complete, meaning it can perform any calculation as long as the user initiating the calculation has enough ether to pay the fee required for that calculation.
  • The EVM is a sandboxed and isolated environment, meaning that the code it runs has no access to the network, filesystem, or other processes.
  • Additionally, the EVM cannot access real-world data, e.g. the current date, time or weather. To acquire such data, it relies on so-called oracles.
  • All full nodes of the Ethereum network run the EVM.

Environment for developing smart contracts

The EVM is sandboxed and isolated from the real world. It means that the code running in the EVM has no access to a network, file system, or other processes. It makes the EVM perfect for developing and testing smart contracts without interfering with the blockchain’s operations.

You might be asking yourself why it is a good idea to test smart contracts in a sandboxed environment. The thing is that flawed code can be detrimental to any smart contract, so making sure that there are no flaws in the smart contract code is a must.

Moreover, a sandboxed environment such as the EVM provides infinite opportunities to learn, iterate, improve and eventually complete robust smart contracts ready for deployment to the blockchain.

What does the EVM do?

Whenever a transaction is initiated on the Ethereum blockchain — and it does not matter whether it is a simple transfer of value or a smart contract deployment — the EVM must perform the following three checks:

It confirms whether a transaction has the correct number of values, whether the signature is valid, and whether the transaction nonce matches the nonce of that particular transaction account. In case of a mismatch, the transaction prompts an error.

It calculates the fee required for the transaction and initializes the gas payment.

It executes the transfer of the ether or tokens to the assigned address.

The transaction will fail if the EVM notices that the sender did not allocate enough gas to the initiated transaction. The transaction charge is not reimbursed to the initiator in this instance. Instead, the miner receives payment.

However, if a transaction is unsuccessful due to an error on the recipient’s address, the EVM will return the amount sent and the associated fee to the sender.

EVM is where the magic of Ethereum happens, bringing added value to blockchain technology and the world of cryptocurrencies. Because of features such as the EVM, the Ethereum platform has enjoyed great popularity, with ether, its native crypto, remaining one of the largest cryptos by market cap.

Limitations of the EVM

Turing complete is the term used to characterize the Ethereum Virtual Machine. The ability of a computer to perform every computation given to it is known as “Turing completeness.” Any acceptable analysis can be solved by programs or decentralized apps created in Ethereum.

But there is a limitation to the EVM, and it is a kind of safety precaution. Smart contracts can call other contracts, potentially allowing for infinite looping.

The EVM demands a gas fee for each on-network transaction, which means infinite computational loops are prevented by exhausting their ether. The EVM cannot be Turing-complete; instead, it is to be quasi-Turing-complete.

Another thing worth mentioning is that the EVM cannot access even the most basic real-world data. For example, the EVM cannot know on its own what day it is or tell the current temperature.

The EVM relies on real-world data providers known as oracles to acquire such data, which is required to execute smart contracts properly. An oracle can gather data from a website, an app or elsewhere and feed it to the smart contract.

Bottomline

The EVM makes Ethereum a platform and not just a blockchain. However, the EVM could be a better system. There are many challenges around transaction speed and network throughput.

It is an area of focus for the development community and the roadmap for Ethereum. If Ethereum is to fulfil its promises of revolutionizing how we transact amongst each other, it will be on the back of improvements to the EVM.

New to trading? Try crypto trading bots or copy trading

--

--

Tiny Crypto Labs
Coinmonks

Sharing wonderful ideas and knowledge from the world of Crypto and Web3