What is Ethereum, and why is it useful?
There are many technical explanations out there, but let’s do something novel and explain Ethereum simply.
Ethereum is a distributed ledger and a distributed computer. It’s a record of ‘who owns what’, and a system of data storage and computation.
Practically, Ethereum is a network protocol: software that runs on thousands of computers around the world. The Ethereum network is the set of computers running the Ethereum software. The Ethereum network is peer-to-peer, with no central authority or controller.
Accounts and Ether
Ethereum has a virtually unlimited number of unique addresses. An address either maps to an account owned by someone, or to a contract – a piece of code on the Ethereum network.
Like Bitcoin, Ethereum has a native cryptocurrency, known as ether. Ether has a limited supply, with new ether being minted at a slow and predictable rate.
Accounts may send ether to other accounts in a transaction.
In terms of it’s representation on the network, ether is simply recorded in a ledger – account A owns X ether, account B owns Y ether – etc.
So far, so good. But why is Ethereum special?
The Breakthrough: Blockchain + Validation + Proof-of-Work
You can think of Ethereum as a distributed, synchronized ledger. Let’s unpack that:
Distributed: the network of nodes is spread all over the world
Synchronized: each computer running the Ethereum protocol has an identical copy of all the data, and new transactions are added in the same order.
Ethereum’s useful properties are enabled by three core components: the blockchain data structure, the network validation rules, and a “proof-of-work” mechanism.
Together, these three pillars enable nodes (participants in the network) to reach agreement on some shared truth – such as ‘who owns what’ – without relying on a central authority or record keeper.
Up until a few years ago this seemed impossible, and was an unsolved problem in computer science.
Consensus – Everyone Must Agree
As new transactions are created, consensus must be maintained – nodes must make the same changes to the ledger, in the same order, and come to the same conclusion about the state of it.
How they do this is known as the consensus mechanism.
The first blockchain – Bitcoin – yielded a major breakthrough in distributed systems: it enabled consensus, based on a proof-of-work.
Before Bitcoin came along, it was impossible for all nodes to agree on the ‘truth’ of the ledger – the record of ‘who owns what’ – without a central authority.
What if someone wants to cheat – to rewrite the ledger, and re-spend funds that they’ve already spent? If other nodes receive ledger version A from an honest node, and version B from a cheater, which version of the truth is correct?
With no way to determine this, consensus across the whole network can’t be reached, and cheaters can run rife.
A Proof-of-Work Blockchain enables Agreement
Blockchain networks that use proof-of-work solve this problem. They enable all nodes in the network to reach agreement on the state of the ledger – the record of ‘who owns what’.
Essentially, proof of work involves special miner nodes, which are paid a reward in ether for doing work (using energy to solve computational puzzles) to create valid blocks of transactions. If they submit honest blocks of transactions, they get paid. If they try to cheat, they squander the intensive computational work required to produce the block – wasting electricity, and therefore losing money.
These incentives ensure that nodes repeatedly come to agree on the order of transactions – so they have identical copies of ‘the truth’.
Why Blockchains are Useful: Trustlessness
The consensus mechanism ensures that every node has an identical copy of the record of ‘who owns what’.
Hence the network itself can be directly trusted as a source of truth. We dont need to check our balance at a bank, and we can trust that there is no middle-man that can freeze our funds or block our transactions. We can access the network directly and see any account balance or transaction.
Account balances can only be altered by transactions – sent to or from their address. And transactions can always be sent, as long as you have a connection to the Ethereum network.
We call such networks trustless – they don’t require trust in an intermediate bank to know who owns what, or to be able to send and receive value. Users don’t have to trust institutions to keep the records straight, or to allow transactions through.
They can trust the network itself to keep the record, and they can always directly send and receive funds, with no middleman.
Ethereum: Computation on a Blockchain
Ethereum is marketed as a world computer.
Fundamentally, it is (currently) structurally similar to Bitcoin: a distributed, synchronized ledger, hosted on thousands of nodes that maintain consensus. It has its own digital currency – ether – that can be sent and received.
Ethereum is a record of account balances and data. Remember, Ethereum has user accounts, and ‘contract’ accounts that store code and data.
As the database is synchronized, transactions, account balances and data storage are held by every node on the network. This global dataset is called the “state” of Ethereum – a global record of who owns what, and all the data associated with each account.
Ethereum’s Major Innovation
In Ethereum, transactions don’t only change the record of who-owns-what. They can also send data, make code run, and change the data in storage.
Transactions sent to contract accounts can change the state of Ethereum –a transaction sent to a contract can trigger some code, which can update the contract’s data, or trigger further transactions to other contracts.
Each node receive all transactions, executes the code each transaction triggers, and records the resulting state changes.
That’s why we call Ethereum a world computer – every node receives the same input, does the same computation, and produces the same output.
Smart Contracts – Rules ‘Written in Stone’
Smart contracts on Ethereum are accounts that can contain computer code and data storage. The code can only be executed when the contract receives a transaction – either from another contract, or a human-owned account.
The term ‘smart contracts’ is a little misleading – they’re not really contracts, and they’re definitely not smart. They are simply automated rules that execute when triggered by an input.
In fact, they are more like vending machines. A vending machine essentially runs on the following set of rules:
Receive an input ($payment and Item)
If $payment > $ItemPrice, and Item in stock:
Change = ( $payment – $ItemPrice)
Else if Item out of stock:
Display "Item out of stock - please choose another snack"
We could add further rules for the refund button, and (if we’re generous) a time-out that refunds the full amount if the user doesn’t pick an item after, say, a minute.
Smart contracts follow this format: simple rulesets, triggered by inputs, that change data in storage or send transactions, depending on their internal logic.
They are simply rules, written in code. This code can be triggered by incoming transactions. The code in turn may send further transactions containing data and value (ether), and reads or writes data from/to the contract’s storage.
Smart contracts are written in stone. Once they are live on the Ethereum network, the code they contain can not be changed.
This makes computation trustless. When triggered by a transaction, code runs automatically and updates stored data based on external inputs. There is no centralized company in control of the code or the database.
Anyone can verify the state of the contract’s stored data, and that the code does exactly X, and not Y or Z. More importantly, data in storage can only be changed by contract code execution. No human has the power to arbitrarily interfere and change the data in storage, or the code itself.
Thus, smart contracts are automated, tamper-proof decision-makers.
Because smart contract execution is completely deterministic, there is no need for a trusted third party to make decisions or resolve disputes. This gave rise to the phrase ‘code is law’.
What is Ethereum Good For?
Trustless computation and data storage on a blockchain opens up interesting possibilities.
Like Bitcoin, the trustless ledger enables a global dencentralized payment network, where users can send quantities of currency to each other, bipassing intermediate banks and institutions. Users can rely on the network itself to tell the truth about who owns what.
The trustless computation enables the data on Ethereum to be changed conditionally. Data in storage can be updated based on user input, validity / authority of a user, time, amount of value sent, or the joint inputs of various users.
This enables some really cool applications.
Asset registries ( property, valuables, currency) without a centralized ledger. Robot auctioneers. Automated insurance. Provably fair gambling. Decentralized prediction markets. Unique digital items.
Let’s dive into the more exciting possibilities.
Tokens – Ledgers Within Ledgers
Ethereum’s flexible data storage makes it possible to create new ledgers nested within the base ledger.
Smart contracts on Ethereum can define a who-owns-what record for a completely new coin or token, and set initial balances.
If they implement some ability for accounts to transfer amounts of this new token to and from other account balances, they have effectively created a new currency.
As with all data on Ethereum, tokens can be governed by rules set in stone in code, which makes it possible to give them different properties. They could be inflationary, deflationary, constant supply, identical or each unique, exchangeable for certain services, or correspond to real-world objects.
It’s possible to create:
- Access tokens, that can be exchanged for access to a digital service
- Asset tokens, that represent ownership of some real-world asset like real-estate, art, or equity in a company
- New cryptocurrencies, with their own rulesets and monetary policy
- Decentralized ecommerce, betting, and financial services
The balances of token holders are stored in one smart contract. But since every node on the network has an identical copy of all the data and code on Ethereum, token ledgers can inherit Ethereum’s trustlessness, and constitute a tamper-proof record of who-owns-what.
Security Tokens – Stocks, Bonds and Real Estate Investment on the Blockchain
One of the most promising formulations is security tokens. Security tokens can represent ownership of real-world equities.
For centuries, transferring ownership of equity has been an arduous process involving middlemen, fees, and plenty of paperwork.
Public markets are now fairly liquid – but shares in private companies are still constrained, and matching buyers with sellers is highly inefficient.
Security tokens unlock liquidity and allow investors to buy and trade assets with unprecedented ease, speed and convenience.
We can imagine a future where:
- Users around the world trade stocks of high-growth private companies with the click of a button
- Small local businesses easily and quickly sell equity as tokens to local residents
It’s early days, and the success of security tokens does depend on their acceptance from regulators. The technology is very exciting, and could change the way equities are traded globally.
Stablecoins – Pegging Cryptocurrencies to Dollars and Pounds
One downside of cryptocurrencies so far has been price volatility. Bitcoin and Ethereum have had massive price swings in recent years.
Stablecoins allow for the possibility of a coin with all the benefits of cryptocurrency – peer-to-peer transactions, digital store of value – with the added benefit of a stable exchange rate with fiat a currency.
On Ethereum, there are various approaches to Stablecoin creation. A stablecoin is a token, issued by a smart contract. The tricky part is… keeping its value stable. Designs vary, and tend to be complex – systems of interlocking contracts, incentives and collateral assets, which increase or decrease the supply of a stablecoin algorithmically.
Approaches vary, but each stablecoin design attempts to guide the price of the token back to equilibrium through various feedback loops.
Stablecoins are hard to do well, and keeping the value pegged to fiat currency (like USD) is a massive challenge. Several have failed, and lost their peg.
The most successful stablecoin so far has been MakerDAO’s DAI token, which has largely maintained its exchange rate of 1 DAI to $1 USD – with the biggest fluctuation being only 6%.
Unique and Rare Digital Items
With a decentralized record of who-owns-what and ‘what data is where’, it becomes possible to create verifiably scarce items.
This allows for the creation of unique collectibles, such as digital art, or rare and valuable in-game items for video games.
Users can see for themselves that these assets are unique or scarce, and that it’s not possible for the developer to create more.
Of course, such items could be created in centralized applications – rare rings, swords or magic items in Diablo, for instance. The game-changing benefit brought by Ethereum is that these items can be provably scarce – anyone can check the ledger on the Ethereum network, and see for themselves that there is only one Flaming Sword of Glory (for instance!).
They can also verify – by looking at the smart contract code – that it’s not possible to create another identical one.
This provable scarcity can potentially add an exciting new dimension to games, and open up whole new markets for rare digital collectibles.
Prediction Markets – Peer-to-Peer Betting Without a Central Arbiter
Smart contracts can interface with the wider world, and send Ether based on the outcomes of real-world events.
A smart contract could have the following rules:
- Record the terms of a bet
- Receive currency from each party
- Resolve the bet: Either receive the real-world data from a trusted source, or a wider group users “vote” for the outcome they believe to be true
- Pay out currency to the winner
Betting and prediction markets have existed for milennia, but they have problems:
- Uncertainty around payoffs
- Funds being arbitrarily frozen or confiscated
- Limited bets available
Ethereum’s ‘set-in-stone’ smart contract rules mean that payouts can be quick, efficient and indisputable. The decision-making can be a hard-and-fast rule based on number of votes, or a real-world data source that connects to the Ethereum network.
Bets can be generated by users, with payout conditions set in advance, and settlement executed automatically by smart contract.
As such, a wider range of predictions and bets can be made and settled peer-to-peer, by participants across the world.
What Ethereum is Bad At
Decentralized apps (dApps) on Ethereum are really inefficient, in both space and time.
For a change to be made – either a transfer of value, or a change to the dataset – every node on the network must receive the transaction, perform any triggered computation, and make any resulting updates to the data storage.
Transactions throughput is limited. Ethereum is much slower than centralized payment networks like Visa, or centralized data services like Amazon AWS.
It’s also a collossal space hog. The dataset must be duplicated thousands of times across the network.
Each full Ethereum node must hold all the code, run every computation, and store all the data for every dApp on the network. The chaindata size is already up to over 130 Gigabytes, and still growing rapidly. Nodes are groaning under the size of the blockchain.
Inefficiency in space and time is the price Ethereum pays for decentralization and trustlessness.
Ethereum’s Future – Scaling, Ambition, Skepticism
The Ethereum community needs to solve two core problems: size of the blockchain, and transaction throughput.
Ethereum’s developers have spent many hours attacking the problem of scaling the network – slowing the rapid growth of chaindata size, and increasing the maximum number of transactions per second.
It’s arguably a moonshot culture, and there is much ongoing research into different mechanisms by which Ethereum can evolve and truly fulfill the initial ‘world computer’ vision.
Proof-of-Stake and Sharding
The current roadmap plans to transition to Ethereum 2.0 through the implemention of several technologies: primarily Sharding, and proof-of-stake consensus (PoS).
PoS consensus will replace proof-of-work, both to reduce energy consumption and align incentives between miners and users.
Sharding is designed to increase transaction throughput by splitting the state of the blockchain into shards, such that each node only has a fraction of the whole dataset. Nodes would only process transactions performed on their shard – allowing transaction throughput to increase massively, as shards process transactions in parallel.
These upgrades are ambitious, and untested waters. Both PoS and sharding introduce new complexity, serious engineering challenges, and potential unintended consequences.
Critics of Ethereum cite this moonshot culture as a flaw – specifically, the philosophy of “anything can be done with enough smart thinking and engineering”. An Ethereum skeptic may parse this as “we’ll figure it out later”.
Real businesses and users need proof, not promises from developers, before they invest time and resources into the network. Ethereum 2.0 needs successful implementation of several unproven new technologies to really succeed as a world computer.
Regardless of current limitations and future skepticism – Ethereum 1.0 is an effective proof-of-work blockchain and smart contract platform today. It functions well as an asset registry platform, and stablecoins, security tokens and collectibles are perfectly viable without sharding.
The Promise of Ethereum
Ethereum is a distributed ledger and computer. The Ethereum network transfers value, and performs computation trustlessly – without needing to rely on a central authority, judge, bank or company.
The rules that update the stored data, once launched, are set-in-stone – when they’re live on the network, no one can change them.
The trustless nature of Ethereum has paved the way for decentralized applications – new currencies, scarce digital items, asset registries and prediction markets. Ethereum is leading the web 3.0 movement, which will transform how we store value, play games and do business.