Just like in 2017, blockchain has been all the craze this year. With Bitcoin reaching prices over three times higher than the previous all-time high, everybody has been talking about cryptocurrency and blockchains. And one of the blockchains that has been taking the spotlight is Ethereum. That is why in this article I will explain what Ethereum is, the use case, the present, and the future.
To understand what Ethereum is, you need a (small) understanding of what a blockchain is. My colleague Robert van Molken has explained blockchain in this article.
So what is Ethereum exactly? In short, in Ethereum’s own words: It’s the world’s programmable blockchain. In 2013, Vitalik Buterin introduced Ethereum as an open decentralized platform based on Bitcoin’s innovation, with some big differences. Both let you use digital money without payment providers or banks. But Ethereum is programmable, so you can also use it for lots of different digital assets, you can even build applications on Ethereum.
Ethereum consists of a data layer and a consensus layer. The data layer contains all the data stored in the blockchain. This is divided into decentralized applications (dApps) and accounts (balances). This data is persistent and passed on to each consecutive block.
The consensus layer of Ethereum is currently a proof-of-work (PoW) mechanism. This means that miners (nodes that can add blocks to the chain) have two different computational works to be done. One is to check if everyone’s balance and transactions check out, so nobody is spending coins that they don’t have. This requires very low computational power. The other one is trying to solve a puzzle to be entitled to a reward. The first miner to solve the puzzle is able to create some coins from thin air to him/herself: the block reward. In PoW miners invest their money in hash power to be able to solve these puzzles more frequently.
Ethereum Virtual Machine
In the Ethereum universe, there is a single genuine computer called the Ethereum Virtual Machine, or EVM. Its state is agreed upon by everyone on the Ethereum network. Everyone, every node, keeps a copy of the state of this computer. Every participant can broadcast a request for this computer to perform a computation. whenever such request is broadcast, other participants verify, validate and execute the computation.
Smart contracts (accounts)
Another concept that gets talked about a lot in Ethereum is smart contracts. To know what a smart contract is, you first need to know what an account is on Ethereum. An Ethereum account is an entity with an ‘Ether’ balance that can send transactions on Ethereum. Accounts can be user-controlled or deployed as smart contracts.
From an architectural point of view, a smart contract has some similarities with a basic OOP class. As it hosts its own state, declaration of variables and methods. The crucial difference between a smart contract and a Java class, for instance, is the persistence of state between transactions. In a Java class, for example, the data that comprises the class is per-instantiation. So in other words, classInstance1 and classInstance2 each have their own state. In Solidity, the programming language most used to make smart contracts, there is only one contract in the program. In this sense the state of the contract is a singleton – all the state is program-wide level. It’s as if the entire class were global. Another way of saying this is that all the data fields of the contract are like Java static members.
In practice, a smart contract is a small program that lives in the Ethereum universe that can be called by any account (so either an externally owned account or a smart contract). And just as any other data that is submitted to the blockchain, a smart contract that is deployed to Ethereum is immutable. In other words, reviewing, auditing, and testing has never been so correlated to money before, as contracts can hold billions of Dollars.
Future (Eth2.0 / “The merge” / PoS)
As mentioned before, Ethereum uses a PoW mechanism to ensure the security of the network. And as you may remember – from above, in PoW, miners need to solve a puzzle to earn rewards. Essentially, this means that miners need to buy better mining rigs to solve the puzzle more often. And in reality, this does nothing for the network itself.
A solution to this problem has been in the works for several years and will be ready in Q4 ’21/Q1 ’22. Ethereum will switch its proof-of-work consensus mechanism to proof-of-stake (PoS).
PoS requires users to stake their ETH to become a validator in the network. Validators are responsible for the same thing as miners in proof-of-work: ordering transactions and creating new blocks so that all nodes can agree on the state of the network.
PoS comes with several improvements to the proof-of-work system:
- better energy efficiency – you don’t need to use lots of energy mining blocks
- lower barriers to entry, reduced hardware requirements – you don’t need elite hardware to stand a chance of creating new blocks
- stronger immunity to centralization – proof-of-stake should lead to more nodes in the network
- stronger support for shard chains – a key upgrade in scaling the Ethereum network
Ethereum with the PoS consensus mechanism, also known as ETH2.0, has already been deployed to the Beacon chain. This is a chain that is operating in parallel to the current main chain, Ethereum mainnet. When ready, Ethereum mainnet will merge with the Beacon Chain, a long-awaited event by the Ethereum community also known as “The merge”. Mainnet will bring the ability to run smart contracts into the PoS system, plus the full history and the current state of Ethereum, to ensure that the transition is smooth for all ETH holders and users.
To conclude, Ethereum is a blockchain made to host applications, to facilitate the Web3.0 experience for users and builders. It has been doing so for several years and is still developing.
In my next blog, I will talk about the way to communicate with Ethereum. More specifically, the programming language used for writing smart contracts, Solidity.