How Does Ethereum Work?

Michele D'Aliessi
7 min readFeb 11, 2018

--

The logic and mechanics behind Ethereum explained in simple words.

Ethereum is a platform on which anyone can build unstoppable¹, decentralised applications. If you have never heard of Ethereum or if you don’t know what it can be used for, I would strongly recommend to read “What is Ethereum?” before digging deeper and exploring how it works in this article.

The purpose of this article is to explain how Ethereum works by providing a general and non-technical overview of its logic and inner mechanics. Please keep in mind that what is described below is a simplified version of what actually happens, but it should be technical enough to give you a general understanding of how it works. Should you have any questions please write them as comments or private notes, it would help me refine this article over time and make it much clearer for future readers.

We can see Ethereum as a stack of few layers built on top of each other. The first, basic layer that makes everything else possible is a large network of computers that process transactions and keep a shared database updated over time (the Ethereum blockchain). The second, is the software layer that allows developers to run programs called smart contracts on the Ethereum blockchain, using a programming language called Solidity. The third layer is made of applications that offer different services (from governance to identity management) to Ethereum users. The remarkable feature of this platform is that by leveraging the Ethereum hardware and software layers these applications are decentralised, lack a central point of failure and are somehow “unstoppable”. You just can’t switch them off.

Let’s explore each of these layers in detail.

Fig. 1 - The different layers of the Ethereum platform

1. Ethereum hardware layer: blockchain

Most of what you see on the web, including this article, is hosted by a server in a data center somewhere on the planet. When you open your browser and browse the web, your computer (client) connects to such servers and downloads the content that you’re looking for. This client-server infrastructure was intended for an internet with few centralised repositories (servers) that would distribute content to many users (clients). However, today’s internet connects many clients to other clients as we are all both creators and users of content (Web 2.0). Computers can connect together in a large network, and pass content to each other all the way from the computer that generated it to the computer that requested it. This large group of computers passing content to each other is known as a “peer-to-peer network.

Ethereum hardware layer is a peer-to-peer network of computers that compute transactions and keep them in order in a shared ledger. This allows them to build a distributed database that can keep record of all the information that is shared in the network: all the transactions that take place. Each computer in the network is called “node”, it validates incoming transactions and organises them into blocks that are then broadcasted to the whole Ethereum network. Here you can see the Ethereum network of computers processing transactions in real time (be patient, the website will take some time to load).

Fig. 2 - Ethereum hardware layer: blockchain

Transactions can contain both value and information. The value is expressed in “Ether”, the digital currency of Ethereum platform. And the information is code that can pass data and trigger actions. This is relevant for the software layer of Ethereum, for the hardware layer let’s just keep in mind that is made of hundreds of computers spread across the planet that are connected to one-another via the internet.

Anyone can offer his/her own computer to process the transactions of the network simply by running some code on his/her laptop. There is a scheme of incentives that promotes the growth of Ethereum network, in fact those who run the nodes get rewarded in “Ether” - that is a valuable asset as it can be used to make use of the applications running on the platform.

This should be enough to give you a general understanding of Ethereum hardware layer. If you would like to learn the details of how these computers coordinate the work and process transactions you will need to learn the mechanics of blockchain technology: this article is a good start (it uses Bitcoin blockchain as example to explain the technology, but most of the content is valid for Ethereum as well²).

2. Ethereum software layer: Solidity

The flexibility of Ethereum platform is what made it popular among the early Bitcoin and blockchain enthusiasts. In fact, while Bitcoin has been designed as a currency to transact value between different actors, Ethereum has been developed to extend the use of Bitcoin underling technology and build a broader, general purpose blockchain.

Ethereum software layer has been built to allow the transaction of value in any shape or form, being it a currency, a house, an identity, the rights to use or reproduce a song or any other asset you can think of.

Ethereum extended Bitcoin beyond its currency nature.

To do so, a whole new programming language has been created, it’s called “Solidity”. For those of you that are software developers, it’s quite similar to JavaScript. Using Solidity programmers can build simple programs called “smart contracts” that can implement basic transactions logic.

In example, a Smart Contract can implement the following logic: if both Mark and Bob send five Ether to Jack, then automatically send two Ether from Jack to Alice.

Ethereum also allows anyone to create new digital currencies (or more specifically “tokens”) that can be exchanged by all Ethereum users. This enables a broad range of applications: from digitalising the reward points at your favorite coffee shop, to creating whole new economies in specific markets.

In the picture below you can get a glimpse of what Solidity code looks like, this basic smart contract generates a new token and enables its transfer to other users.

Fig. 3 - Ethereum software layer: Solidity and Smart Contracts

All Ethereum code is open source and available online on Github.com. In fact, anyone can download (and use) the code of the picture above for free to develop a new application. The open source nature of Ethereum allows anyone who wants to contribute to write new code and share it online, developing new features or strengthening the overall platform by fixing bugs. This also means that Ethereum platform is somehow self-evolving, as the community is constantly adding new code, very much like Wikipedia has editors adding new articles and editing the existing ones.

Anyone can learn to program in Solidity, there are many free resources online, like the Ethereum official website or this gamified lessons with zombies.

To summarise, Ethereum software layer enables software developers to design smart contracts that enable programmable transfer of value. All smart contracts code is public, so anyone can check what these programs actually execute.

3. Ethereum application layer: dApps

The combination of the hardware and software layers described above enable Ethereum to work as a global, decentralised super-computer on which third party applications can be executed.

Even if many early adopters leveraged the “token emission” function of Ethereum to fundraise capital to launch new projects (Initial Coin Offerings) the applications of Ethereum extend way beyond the financial sector. There are more than 900 applications built on Ethereum, about 30% of them are live while the other 70% are still under development.

Fig. 4 - Ethereum application layer: dApps

Due to the open and transparent nature of Ethereum, many developers around the world came together and built a strong and large community that is currently working to extend the functionalities and applications of this platform.

Building public, decentralised applications has several benefits that outperform private, centralised applications, in particular:

  • Transparency. Anyone can read the code and make sure the application does what it promises. All transactions are also public and can be tracked.
  • Resilience. It’s hard, or virtually impossible, to stop those applications once running on Ethereum.
  • Better code. Since the code is public and any hacker can read it, bugs need to be fixed quickly and effectively, resulting in higher quality and more reliable code.

New projects are getting started every day and several applications running on the platform are focused on improving the world we live in, just like this project by WWF.

It looks like Ethereum could play a big role in shifting our current centralised Internet towards a more transparent, privacy-oriented and equal future.

Useful links

  • Learn more about Ethereum project - link
  • See the network of computers running Ethereum in real time - link
  • How to get your own Ethereum wallet - 10$ free on Coinbase
  • How to keep your Ether safe - link
  • How to install and run your own Ethereum node - link (pro)
  • Learn more about how blockchain technology works - link

If you found this article useful please hit the “Clap” button👏 on the left as many times as you feel like or donate some Ether (ETH) to my address below: 0x7cf57FE1310f832B16bE1f38c2710bDfD2f820D5

Notes:

  1. Unstoppable because in order to prevent those application to run you would need to take down the whole Ethereum network that is made of hundreds of computers spread around the world. So let’s say they are virtually unstoppable, or just very hard to stop.
  2. Ethereum and Bitcoin blockchains had several differences already at concept stage, and their evolution is bringing them in different directions as they aim at different goals. You can learn more about those differences here.

--

--