Illini Blockchain
Published in

Illini Blockchain

Ethereum Under The Hood: A Decentralized Computer

A holistic explanation of how Ethereum works & why it’s significant. Made for beginners.

Introduction

In this post we will cover the blockchain technology “Ethereum.” Ethereum launched in 2015 and is the second largest cryptocurrency by market cap after Bitcoin. This market cap is an indication of how much people believe in Ethereum. But, what are they really believing in? What makes Ethereum so special?

In this post, we will cover: how Ethereum differs from Bitcoin, its fundamental characteristics, its smart contracts, and why it is so revolutionary. So, strap in and put on your thinking cap as we learn about how Ethereum has laid the foundation for our digital future.

SIDE NOTE: The initial version of Ethereum uses much of the same technology as Bitcoin. We explained the fundamentals of blockchain here. We will not cover overlapping information between the posts. Throughout the post, we will let you know if any key concepts have already been covered. This post also only covers Ethereum before “the merge”, aka Ethereum 2.0. We will be coming out with an ETH 2.0 post soon.

Calculator vs. Computer

Unlike Bitcoin, Ethereum was not created to be just digital money. Rather, its founders set out to build a global, decentralized computer. So, developers can build applications on top of Ethereum. It is hard to overstate how pivotal this is for blockchain innovation. To give some context, we can think of Bitcoin as a huge calculator. As transactions occur, it subtracts from the account that sent it and adds to the account that receives it. This is pretty much all that happens on the Bitcoin blockchain. Bitcoin is incredibly innovative for its ability to provide trust without the need for a central authority, not for its ability to calculate. More on that here. Ethereum, however, is like a huge computer. It provides the processing power and storage for applications to run on top of it. Think about just how much more advanced a computer is in comparison to a calculator. Extraordinarily more advanced is an understatement. Ethereum’s functionality is the same in comparison to Bitcoin. Ethereum extends the superpowers of a computer to blockchain.

The applications built on Ethereum are able to leverage the fundamental benefits of blockchains: namely decentralization, security, & openness. Everything from financial tools and video games to complex databases are already running on the Ethereum blockchain. Its future potential is only limited by developers’ imaginations. Exciting stuff, right?

So, how does it work? First, we need to figure out what a computer really is.

What Even Is A Computer?

Your typical laptop computer consists of three main components: hardware, an operating system (OS), and software/applications. When you think of a computer, it can be easy to jumble these all together in one word as a “computer”. However, this distinction is important. So, let’s clarify what makes them different and how they interact with each other.

Definitions

The hardware is the backend infrastructure that allows computers to function. It is like the backbone of any computer. Essentially, it does the behind-the-scenes work by processing and storing data.

The operating system (OS) is the interface between software & hardware. It translates between the hardware and software of the computer and ties everything together. Developers who build applications build on top of OS’s. Each computer usually comes with its own OS, but a new OS can be downloaded onto a new computer.

The software is the user facing side of a computer. When you think of “computer,” this is probably not what comes to mind. You may think about the software applications on top of your computer like Google Chrome, Microsoft Word, or Spotify. These applications are downloaded onto your computer & are not native to the computer itself. SIDE NOTE: the words “software” and “application” are often used interchangeably and pretty much mean the same thing.

To tie it all together, when you interact with an application, it sends instructions to your computer’s operating system. Your OS then translates the instructions to your computer’s hardware. Then, your hardware follows those instructions and does the task.

Now that we know how these components work, how do businesses use them today?

AWS & The Rise of Outsourcing Storage/Computing

As the internet has become more and more prevalent, businesses have become more and more tech-oriented. In the beginning of this transition, companies that wanted to convert their processes to computers also had to pay for the data storage and computer processing (aka the hardware). Tech-oriented companies had to spend a lot of company resources just to run their backend processes. This slowed down innovation and created a HUGE barrier to entry for smaller businesses. That was a pretty big problem.

With all big problems, come big opportunities. Many companies tried to solve this problem by outsourcing data storage and processing. In the end, a few tech giants, like AWS & Oracle, came out on top and ushered in the “cloud computing” era. Companies that wanted to leverage the benefits of technology no longer needed to allocate a ton of resources to the grunt work of running and maintaining the backend infrastructure that comes with technology. The “hardware” aspect of running many applications was no longer an issue. On top of that, these huge cloud infrastructure providers are compatible (through websites) with common operating systems like MacOS and Windows. So, they take care of two out of the three components of a computer: hardware & OS’s.

As a result, businesses can focus on the third component of computers: software applications. They can spend their time building a great software product and simply outsource all of the grunt work. Nowadays, there are fewer barriers to entry for a business to become tech-oriented. As a result, innovation across almost all industries occurs at a faster rate. In addition, people can try building something on their own while taking on minimal risk because they don’t have to commit a ton of money to hardware.

To summarize: right now we have cloud service providers (like AWS) that outsource hardware and are compatible with popular OS’s. Companies can focus on creating great software applications. So, what’s the problem??

Because so many companies rely on and have built on top of these platforms, these cloud service providers have a ton of centralized power — which can come with downfalls like corruption, bias, and a single point of failure. Not to mention, these downfalls get multiplied to ALL of the companies that are built on top of the platform. Definitely not ideal.

So, what does a decentralized version of this look like?

Enter Ethereum & dApps

Remember, a computer has three parts: the applications, the OS, and the hardware. Ethereum acts like a decentralized OS. Similar to Bitcoin, Ethereum allocates the computing work to miners on the network. Hence, the hardware of the network is decentralized.

So, what is the software that sends it directions? What is the application side of the computer?

dApps

Those computers get their instructions from decentralized applications (aka “dApps”). A dApp is exactly like a normal application, except it is decentralized (because it is built on a blockchain).

Just like a normal application, a dApp has front-end & back-end code.

Front-end code is what you and I see when we use any app. For example, when we click to queue a song on Spotify, we are interacting with front-end code.

Back-end code does the behind the scenes work. When we click to queue a song, Spotify’s back-end code searches for the song in their database, retrieves the song, and puts it in order to play next.

The front-end code of a dApp will look the same as that of a normal app. But, instead of logging in with a username and passwords, you will connect your crypto wallet. Other than that, the user experience will feel the same. Just as we can use Spotify without actually understanding how it works, we can use a dApp without actually understanding how it works.

A dApp functions like this:

Buuuut, how does it work?

This is where apps and dApps differ. Normal apps run their backend code on servers, like AWS. dApps run their backend code on blockchain networks, like Ethereum. The backend code of a dApp is also called a “smart contract.” So, what is a smart contract?

Smart Contracts

Concretely, a smart contract is just code on the blockchain.

Contracts & Vending Machines

To start off, a contract is a set of promises between two entities. Something like: if A does X, then B does Y. In a traditional contract, two parties sign a document. But, there aren’t really strict guarantees that either party will fulfill their promises. The actual purpose of signing the contract is to agree that each party will be subject to certain consequences enforced by the law if they do not fulfill their promises. Because of that, both parties can have a certain degree of confidence that the other will follow through on their promises. But, the promises can still be broken.

A smart contract is similar, but it automates the execution of the promises made in the contract. To illustrate how it works, let’s consider a vending machine. A vending machine is like a real-life smart contract. The vending machine makes the promise to us that if we put in some money, it’ll give us potato chips. What makes the vending machine “smart” is that it automates the whole *giving us potato chips* aspect.

A smart contract is a set of self-executing promises that execute when you provide the proper inputs. The vending machine executes its promise of packaged food when a person provides a proper input of money. A smart contract is similar to our vending machine, but instead of giving us a bag of chips, it executes a block of code.

With a vending machine, you can choose different items to buy. Similarly, a smart contract has multiple blocks of code (aka functions), and a user will choose which function to use.

This is awesome. Sadly, ain’t nothin’ free. When you use a vending machine, you pay for more than just the cost of soda. You also pay for the functioning of the vending machine. Similarly, with smart contracts you pay gas fees.

Gas Fees

What determines a gas fee?

The Total Gas Used is proportional to the computational resources it takes to execute the contract.

The Price of Gas is kind of like real gas prices. They fluctuate based on supply and demand. When there’s more traffic on the network, i.e. gas is in demand, the price increases (and vice versa). The fluctuating price can regulate network activity so it doesn’t get spammed.

That was a lot of info on smart contracts. To wrap it all up, here is a concise definition of smart contracts (courtesy of Nick Szabo) with our simplistic breakdown.

But, it doesn’t stop there. Smart contracts are immutable and interoperable. In addition to decentralization, these characteristics make dApps VERY appealing in comparison to normal apps. Let’s figure out what they mean.

Immutable

Smart contracts live on the Ethereum network and cannot be changed once they are deployed onto the network. A smart contract is ONLY controlled by its code, NOT an individual or company. This is good because users know that a smart contract won’t ever change on them. As long as their inputs meet the requirements to use the smart contract, the contract will be executed (and the promises will be fulfilled). This also means that developers have to design their contracts VERY carefully.

Because smart contracts are immutable, they are inherently more reliable.

Interoperable

Interoperable applications can easily interact and communicate with each other. This fundamentally changes the way developers approach building new dApps. Let’s say you are a developer and want to build on Ethereum. Ethereum’s interoperability allows you to use the applications already on the network and build off them. So, there’s no point in trying to solve the same problem that another application has already solved.

Compared to the real world, this a huge change to how software works and can lead to A TON of innovation! Today, each application may or may not be able to ‘talk’ to other applications based on if their company allows it or if it’s unavailable. This leads to lots of work having to be done again and again…like similar features on different platforms *cough* stories on Instagram and Snapchat *cough* *cough*.

Through interoperability, people can seamlessly build and interact with other code on the Ethereum blockchain, allowing the ecosystem to grow rapidly. Projects can be directed towards constantly innovating rather than spending time building the same things as other teams.

Smart Contract Recap

Smart contracts are programs that are the backbone behind dApps. Anyone can write and deploy a smart contract to a public blockchain (in this case the Ethereum blockchain), enabling all kinds of innovation. Buzzy acronyms like NFTs, DeFi, & DAOs — which represent news ways to own anything, better financial systems for all, and new ways for people to coordinate and collaborate, respectively — are all powered by smart contracts.

Smart contracts:

  1. Can automate contracts & processes.
  2. Will not change in between uses.
  3. Can interact with each other and lead to lots of innovation.

…all in a decentralized manner through blockchain! This makes sure that the smart contracts run honestly and the rules in a contract are upheld.

Pretty cool stuff, eh? We now know how a computer works, how the Ethereum network replicates a computer, and what makes dApps awesome. But, we never explained how Ethereum really works. Let’s talk about it.

Maintaining State & Executing Code

Shared Computer

We can treat Ethereum as a “shared computer” that operates on a network of computers. This really means two things:

  1. The network of computers can come to an agreement on arbitrary data. For example, data on reading or writing to a simple text file on your laptop.
  2. The network of computers can run arbitrary code. They can simulate the basic code execution of applications/programs like a computer. On your personal computer it might be something like running Google Chrome, Spotify, or even just your file explorer. On Ethereum, it’s typically not such large and complex programs, but snippets of code.

At its core, Ethereum keeps track of two things: state, and code.

Accounts

Accounts are pretty much what make up the “state” of the Ethereum blockchain.

There are two types of accounts: externally owned accounts and contract accounts. An externally owned account is an account owned by a person. A contract account is an account associated with a smart contract.

Each account is made up of four pieces of data:

  1. Nonce: the total number of confirmed transactions made from this account.
  2. Balance: the amount of ether held by this account.
  3. StorageRoot: where a smart contract stores data.
  4. CodeHash: where the code that runs a smart contract is stored.

Externally owned accounts & contract accounts are made up of the same four types of data. However, an externally owned account’s storageRoot and codeHash are empty. Whereas, a contract account uses all four data types.

When we talk about the “state” of the Ethereum blockchain, we’re really talking about the data associated with these accounts. A “transaction” is not just sending ETH from one account to another, it’s also sending ETH and inputs to run a smart contract’s code. In this way, a transaction is really just any change to the blockchain’s state. When smart contracts run, they can change the state of the blockchain, i.e. other accounts’ balances, and the contract’s own data in its StorageRoot.

SIDE NOTE: Right now, Ethereum uses the proof of work consensus mechanism to embed trust into the network. More on that here.

By now you’ve heard about all the components that make Ethereum great. But what kind of impact will these improvements have on the future and why should anyone care?

Why Ethereum Is Significant

Bitcoin Walked So Ethereum Could Run

Like we said earlier, Bitcoin brought the world the idea of a decentralized currency. Bitcoin is a trusted digital currency that can be passed from one person to another without the need for a central authority. This is awesome…but limited.

Ethereum brings the world the idea of a decentralized computer. Through smart contracts, Ethereum becomes a blockchain PLATFORM. It is a platform that applications can be built on without the need for a central authority. Ethereum’s future potential is only limited by developers’ imaginations.

As you can see in their functionality, the underlying purpose of Ethereum is different from Bitcoin. BTC was created as an alternative to national currencies and thus aspires to be a medium of exchange and store of value. ETH’s primary purpose is not to establish itself as an alternative monetary system, but rather to facilitate the operation of the Ethereum smart contract and decentralized application (dApp) platform.

In essence, Ethereum takes Bitcoin’s property of “digitized trust” and applies it to computing and information. It means you can replace and automate a lot of situations where you’d typically have to put your trust in a third party to follow through on promises. These processes can be cheaper, faster, and more reliable because you are using code rather than people to execute a process. This opens up a Pandora's box of opportunities.

DeFi

There are a lot of innovative projects from a variety of industries being built on Ethereum. The finance industry is particularly ripe for innovation. Ethereum has ushered in a new era of finance… “Decentralized Finance”, aka DeFi. Traditional finance allows people to lend, invest, and exchange their money. This is awesome. However, you have to use (and trust) a lot of institutions (aka middle men) to do this stuff. These middle men take a cut for their services. Not to mention, sometimes they mess up *cough* 2008 financial crisis *cough* *cough*. When middle men mess up, the people who trust them pay the price.

Most financial functions can be automated away by a smart contract. As a result, you can:

  1. Make more money
  2. Ensure more trust.

How? Because:

  1. You no longer rely on a bunch of money-hungry middle men, you rely on self-executing code.
  2. Ethereum smart contract code cannot be changed by anyone once it gets deployed. So, you can guarantee that your contract will not change.

*Don’t worry, we will be writing blog posts on DeFi & Web 3 soon.

Web 3 Era

Ethereum is bigger than just its current applications like DeFi. Ethereum contributes to a new era of the internet, the web3 era.

Right now, we use centralized platforms for most internet activities — specifically Google, Apple, Facebook, & Amazon. We rely on them for everything from searching things up to getting news. In other words, we are putting a lot of trust in them. As a result, these companies have A LOT of power. If their incentives do not align with their user’s incentives (i.e. Facebook optimizing for engagement rather than quality information), the users pay the price.

With a decentralized platform, we can align incentives and create a user-empowered internet, aka web3. This era fundamentally changes the rules that applications play by when they interact with computers. It will change (and improve) how everyday people use the web. That sounds too good to be true. What’s the catch???

The Catch

Scalability & Sustainability

With Ethereum’s current network design, it can process 15 transactions per second (TPS). To give some context, Bitcoin can handle around 7 TPS and the VISA network can handle around 1,700 TPS. Right now, the demand of making transactions far outweighs network capabilities. As a result, Ethereum’s transaction costs are ridiculously high.

Ethereum cannot spearhead the future of the web…unless improvements are made. Enter *drumroll please* Ethereum 2.0! Ethereum 2.0 improves its scalability, sustainability, and security of Ethereum through a variety of changes. Because it is so important, we are creating an entirely new blog post to explain it. So, unfortunately you’re going to have to wait. But, understanding Ethereum 1.0 is essential to understanding the potential of blockchain technologies.

TL;DR: Ethereum’s structure is the doorway into a new era of computer systems, an era of decentralized computer systems.

Written by: Luke Clancy, Danny Koch, Alec Chen, & Zayyan Faizal

Thanks to all the guinea pigs who we call friends when they aren’t reading our rough drafts ;)

Resources We Used

  1. Understanding Ethereum — This was the first resource we read as our first resource. It uses a lot of digestible analogies to give you a high-level understanding of how Ethereum works and why it’s valuable.
  2. How does Ethereum work, anyway? — This Medium post is long, technically-focused, & holistic. It is a great resource to understand how the tech behind Ethereum really works. The writer does a great job at concisely explaining Ethereum’s tech. Because Ethereum is so complicated, a holistic explainer will also be difficult to understand at first.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Illini Blockchain Team

Illini Blockchain Team

Explaining blockchain and its future, one post at a time.