What is Ethereum?
You’ve probably heard of Ethereum as one of the biggest cryptocurrencies on the market right now. You may have heard about “smart contracts” and Solidity and are wondering what these are and what they have to do with Ethereum. Here, we’ll describe the basics of an Ethereum smart contract and how it relates to the Ethereum “world computer”. After the “what” of Ethereum, we’ll get into the “why”: why Ethereum’s founder, Vitalik Buterin, thought that Ethereum was necessary after Bitcoin. Finally, we’ll talk about what Ethereum is now and where it’s probably going in the future.
In order to get a feel for the good and bad aspects of the Ethereum platform (and compare it to other competitors like Bitcoin and Cardano), you need to understand how it works at a high level.
You may feel a bit overwhelmed by all of the different terms you’ve heard connected to Ethereum: smart contracts, Solidity, “world computer”, etc. However, when you get down to it most of these are just different terms for things you’re already familiar with from daily life with a computer. In the first half of this section, we’ll talk about what a smart contract is, what it has to do with Solidity, and how Ethereum works at a high level. The rest of the section will explain why Ethereum is commonly called a “world computer” and why it’s such a slow “computer” despite the fact that it includes so many nodes working in parallel to make it work.
Ethereum “Smart Contracts”
Smart contracts are a central part of the Ethereum ecosystem. If you’ve heard of Ethereum, you’ve probably heard of them too. But what are they? How do they work? Why are they so important?
Ethereum is designed to expand the functionality of the blockchain by allowing developers to do much more than they previously could. Initially, cryptocurrency was limited to financial applications (sending and receiving money). Ethereum’s smart contracts are programs that run on the blockchain and can do anything that a normal computer can do.
Ethereum is a smart contract platform and the Ethereum Virtual Machine is at its core. In a nutshell, the Ethereum Virtual Machine is a computer that runs on the blockchain rather than on the hardware sitting on your desk. The concept of a virtual machine is nothing new, there have been virtual machines for a while that let you run a second computer as a program on your actual computer. What’s different about the Ethereum Virtual Machine is that it runs in a distributed, decentralized manner on the blockchain rather than on a single machine.
Ethereum’s Virtual Machine is a “Turing complete” computer, meaning that it can do anything a normal computer can do. Developers can use Ethereum’s programming language, Solidity, to write smart contracts. These smart contracts can do anything that a normal computer program can do, even create new cryptocurrencies that run on top of the Ethereum blockchain. For more information on cryptocurrencies inside the Ethereum environment, check out
The Ethereum “World Computer”
You may have heard of Ethereum referred to as a “world computer”. But what does that mean? We’ve already discussed how Ethereum is designed to act like a computer that allows developers to write programs that run on the blockchain. But what does it mean for a program to run on the blockchain? This is where the Ethereum network and the “world computer” come in.
As a cryptocurrency, one of the foundational principles of Ethereum is decentralization. Rather than having one copy of the “history ledger” under the control of a single organization, the blockchain distributes copies to the entire network, decreasing the influence that any one member holds over the network and increasing the resiliency of the network as a whole. Each node that participates in the Ethereum blockchain runs a copy of the Ethereum Virtual Machine, a program developed by the Ethereum developers that runs the smart contract code developed by Solidity developers (like Windows runs Windows programs). The fact that all of these independent nodes run the same code together is the reason why the Ethereum Network is called a “world computer”.
Anyone with an Ethereum account can run a smart contract on the Ethereum platform. All you have to do is find the address of the smart contract that you want to run and send it a message and some money in the form of Ethereum’s coin, Ether. When a smart contract executes, the executing code is added to a block on the blockchain. This allows the nodes on the Ethereum network to know what code to execute. These nodes run the code using the Ethereum Virtual Machine and the result is added to the blockchain, whether its sending money to someone via a transaction or something more complicated (for some applications of smart contracts, check out this section ).
The Ethereum Network is a massively parallel machine (there are many Ethereum nodes running code) but its parallel nature does not make it any faster than a normal computer since all of the nodes run the same code at the same time. The parallel processing in Ethereum makes it possible for all nodes to stay in sync despite their decentralized nature, but the cost of a large amount of redundancy. Currently, Ethereum’s Virtual Machine is “single-threaded” (each smart contract is run one after another rather than multiple in parallel) but plans are in the works for changing this to take better advantage of the resources available to the Ethereum network (check out the Sharding section below for an explanation).
Purpose of EthereumEthereum isn’t the first cryptocurrency, in fact it doesn’t even make the top ten in terms of age. Despite this, Ethereum is ranked second behind Bitcoin in terms of market cap, so they obviously did something right. In the previous section, we talked about Ethereum’s smart contracts and the Ethereum “world computer” but not about why Ethereum was created. In this section, we’ll talk about the purpose Ethereum is designed to fill: the limitations of existing cryptocurrencies at the time and why its creators believed that a smart contract platform was the next logical step in the evolution of blockchain technology.
Limitations of Bitcoin
Bitcoin was developed by Satoshi Nakamoto and was the first cryptocurrency. As part of Bitcoin’s development, Satoshi created the concept of the blockchain, which is the technological basis for all cryptocurrencies that exist today. While cryptocurrencies may use the blockchain in very different ways and provide different types of functionality, all of them are built around the blockchain, which provides a means for storing information in a distributed fashion without requiring users to trust one another.
Bitcoin’s sole purpose was to be an alternative to the existing financial system. Previously, all currencies were centralized and under the control of a single organization or group (governments, banks, etc.). Satoshi Nakamoto wanted to change this and, to do so, created Bitcoin and the blockchain. While Bitcoin has some ability for scripting (programming), it was focused on financial goals like specifying the conditions under which a transaction would be completed.
Vitalik Buterin, the creator of Ethereum, was a Bitcoin supporter but felt that Bitcoin was not using the full potential of the blockchain. Buterin believed that the distributed, trustless network created by Bitcoin could be used for far more than simple financial transactions. Since the development of Bitcoin is run based on users’ proposals that are voted on by the network, Buterin proposed that Bitcoin be expanded to include a more powerful scripting language that made it easier for developers to create more complicated programs that ran on the blockchain. His proposal was rejected, leading him to create Ethereum.
A Smart Contract Platform
Ethereum is designed to provide developers and users with a level of functionality and flexibility that the Bitcoin platform lacks. Rather than built a cryptocurrency with a certain purpose (like Bitcoin’s financial transactions), Vitalik Buterin and his team have designed a ecosystem that allows developers to do anything that can be done on a normal computer.
Bitcoin’s was intentionally designed not to be Turing-complete, meaning that it lacked some of the functionality of a normal computer (Script can’t do loops). The Ethereum Virtual Machine running on the Ethereum blockchain is a Turing-complete system, meaning that any program that can be written for a normal computer could also be written in Solidity (Ethereum’s programming language) for the Ethereum Virtual Machine. This makes programs or “smart contracts” on the Ethereum platform extremely powerful.
To give an idea of the power of the Ethereum platform, consider a simple cryptocurrency. It needs to be able to do three things:
- Allow people to send value to and from one another
- Perform checks that the all transactions are valid (no-one is spending money that they don’t have)
- Store all of this information on the blockchain.
Any code that can accomplish all of these three tasks is worthy of being called a functional cryptocurrency.
While none of this is very complicated, it does take some effort and a fair amount of code to write it from scratch. Naivecoin, a cryptocurrency designed to be as simple as possible, brags about being less than 1500 lines of code.
A simple cryptocurrency built on top of the Ethereum platform takes about 15 lines of Solidity code. This massive reduction in complexity allows Ethereum smart contract developers to focus on the aspects of their cryptocurrencies that differentiate them from the rest of those available. Ethereum smart contracts are capable of doing much more that implementing simple cryptocurrencies. For examples of some of the cool things being built using Ethereum tokens, see some applications of smart contracts .
Development on Ethereum began in January 2014 and due to the complexity of the platform, it is still very much a work in progress. From the beginning, Ethereum was designed to have four development phases (Frontier, Homestead, Metropolis, and Serenity) and at the time of writing has only completed half of the third phase (Metropolis was broken into the subphases Byzantium and Constantinople due to size). Just because Ethereum is incomplete doesn’t mean that it is not already a powerful cryptocurrency.
Ethereum is the first smart contract platform and has inspired several competitors but it remains the dominant platform in the market, ranking number two among all cryptocurrencies behind Bitcoin. Ethereum currently hosts tens of thousands of smart contracts that range from simple games letting people bet on rounds of rock-paper-scissors, to cryptocurrencies hosted entirely on the Ethereum platform, to contracts that bridge Ethereum to other blockchains that provide specialized services to Ethereum users.
The Future of Ethereum
Ethereum is a work in progress. As described in the previous section, Ethereum has four planned phases of development and is currently only done with two and a half phases. This doesn’t even take into account any additional phases and modifications that are planned and developed in the future.
Here, we’ll give a brief description of some of the planned development for the Ethereum protocol and blockchain intended to make it scalable and sustainable as it grows. For more details on Ethereum’s history and future development plans, check out the guide .
In the Ethereum Basics section, we talked about how Ethereum was a massively parallel computer but that the parallelization was for synchronization not for speed of execution. In fact, the current version of Ethereum runs all smart contracts sequentially, meaning that the Ethereum network can theoretically only run as quickly as its slowest node can manage (in practice, nodes that couldn’t keep up would just fall away until the network sped up to the point where going any faster would weaken the network).
A planned part of the Ethereum development to allow for parallelization is called sharding. This change will force smart contracts to state in advance which parts of the Ethereum Virtual Machine’s state it will be modifying. By finding smart contracts that will not mess each other up by using the same resources and running them at the same time, Ethereum can begin implementing parallelization and increase the speed and capacity of the network.
In cryptocurrency and other blockchain technology, one of the major bottlenecks is the blockchain itself. If everything has to be stored on the blockchain in blocks that are created at regular intervals, the blockchain has a maximum capacity that can’t be exceeded. Due to the design of Ethereum, this capacity is roughly fifteen transactions per second, which isn’t very many when you take into account the number of smart contracts active on the Ethereum platform.
Solutions to this exist in the option for off-chain or subchain transactions. Essentially, these are just other blockchains or other protocols that are eventually secured by the main Ethereum blockchain. The development and inclusion of protocols for off-chain transactions will likely be incorporated into Ethereum in the future to boost capacity.
Casper, Serenity and Proof of Stake