No, Ethereum is not a computer program…

çınar fidan
4 min readMar 13, 2022

When I was new to understanding Bitcoin and crypto, the way I could visualize blockchain technologies was thinking that they are computer software programs.

The truth is a little more complicated and it’s crucial to understand the nuances before diving into using blockchain applications (e.g. investing in DeFi or buying an NFT or social token). Only then, you can realize the full potential of crypto and web3.

Let’s take a look at how Ethereum is different than a computer program by introducing the Ethereum Virtual Machine (EVM).

How do we write code?

When you write code, you use a certain programming language. For example, you pick C++ or Javascript to write your program. Well, C++ is a programming language, but it also uses many English words.

This means that your CPU (central processing unit — or your computer’s processor) cannot understand the code you wrote in C++. You need something called a compiler. The compiler takes your C++ code and translates it into bytecode. Bytecode is a set of instructions that your CPU can understand and execute.

Well, this was a simple case for your own computer and your hardware CPU. However, Ethereum is not one single computer and, therefore, it does not have a single hardware CPU. Ethereum is a distributed and decentralized network of many nodes (or computers) all around the world.

So there is not just one CPU, but many. These nodes all around the globe are running the Ethereum Virtual Machine (EVM), which is basically a virtual CPU. It is a virtual CPU that is running inside an Ethereum client (the most widespread one is called geth).

Geth is a piece of software that runs on your computer. When it runs on your machine, you are part of the Ethereum network. So, basically, the Ethereum network is a network of machines running geth which runs a version of EVM. When a developer writes a smart contract in Solidity, this code gets compiled into bytecode. Then, this bytecode gets distributed across the network through the geth program. EVMs execute the bytecode.

State of the blockchain

EVM is responsible for keeping track of the current state of the blockchain. All smart contracts and assets constitute the current state of the blockchain. Running a smart contract changes the state of the blockchain. For example, an NFT is transferred from one account to another or some amount of ether is distributed across five different addresses. EVM is responsible for keeping track of the blockchain’s state through running transactions.

EVM’s state transition function

By using this, the only way to change the state of the blockchain is to use your private key and run a transaction. Nobody can alter without running a smart contract or transaction that involves the private key of the relevant address. We do not need to wait 3 hours or 2 days for a centralized authority to evaluate our case and approve (unless hard-coded into the smart contract and/or oracles are introduced for some purpose).

EVM can be executed in two modes, the read-only mode, and the write mode. In read-only mode, the transactions result in message calls, and in write mode, the transactions result in contract creation.

All implementations of the EVM must adhere to the specification described in the Ethereum Yellow Paper. Over Ethereum’s history, the EVM has undergone several revisions, and there are several implementations of the EVM in various programming languages.[1]

How is this important?

An example of key innovations the EVM enabled is the Automated Market Makers (AMM), such as Uniswap or Bancor. Automated market makers are a part of decentralized exchanges (DEXs) that were introduced to remove any intermediaries in the trading of crypto assets. AMMs are like computer programs that automate the process of providing liquidity. These protocols are built using smart contracts to mathematically define the price of the crypto tokens and provide liquidity. This is only enabled by the EVM.

The development and use of EVM are highly critical in the wider adoption of the Ethereum network. With EVM, we do not need to use different blockchains and layer technologies for different use cases (e.g. insurance, trading, NFTs). EVM turns the Ethereum network into a general-purpose and global computer.

So What?

Blockchain technologies have been around for the past 10 years or so. Ethereum and smart contracts, thus everything else such as DeFi, NFTs, DAOs have been even less. Better read every day for 10 minutes than be super late to the party when existing platforms get replaced with blockchain and web3 alternatives.

Follow me on Twitter to stay in touch.

References:

1. https://ethereum.org/en/developers/docs/evm/

2. https://medium.com/mycrypto/the-ethereum-virtual-machine-how-does-it-work-9abac2b7c9e

--

--

çınar fidan

MBA candidate at MIT Sloan, ex-McKinsey consultant. Interested in understanding consumer behavior, entrepreneurship and startups