Details of Ethereum

Ethereum is the first cryptocurrency designed to be a platform for the development of “smart contracts” that run as programs on the blockchain. This has made it the foundation for thousands of other cryptocurrencies and led to a long but well-managed development process. In this article, we’ll discuss some of the details of the Ethereum cryptocurrency and its current limitations (and how it plans to address them).

 

Ethereum Details

In a nutshell, Ethereum is a “world computer” that runs on the blockchain. All that means is that Ethereum is designed to let people write programs that run on the blockchain instead of a specific computer. It lets Ethereum do a lot of things and is the reason that Ethereum is doing so well today.

If you want more details about how Ethereum works, this is where you can find them. In this section we’ll talk about the basics of the Ethereum Virtual Machine, the size and rate at which blocks are created, how Ethereum secures its blockchain, and how everything is paid for.
 

Ethereum Virtual Machine

Ethereum virtual machine

Ethereum is designed to be a platform that lets developers build applications that run on the blockchain inside the Ethereum environment. A crucial part of this is the Ethereum Virtual Machine (EVM).

In general, a virtual machine is a program that pretends to be a normal computer while running inside a computer. On a Windows virtual machine, you can run any program that would normally run on that version of Windows. This works because the virtual machine developer provides all of the same functionality to the Windows operating system through the virtual machine program that a normal computer would provide to Windows.

The Ethereum Virtual Machine works in a similar way. The Ethereum developers have created a virtual machine that runs on the blockchain rather than a specific computer. This virtual machine provides a set of instructions to application developers that they can use to create programs that run on the blockchain and code that lets machines hosting copies of the blockchain run each instruction and keep their copy of the blockchain up-to-date.

Since the Ethereum Virtual Machine is Turing-complete, it has all the functionality of a normal computer and Ethereum smart contracts (the code developers write) can do anything that a normal computer does but in a distributed way.

 

Gas Limit

Unlike the Bitcoin cryptocurrency, Ethereum doesn’t have a fixed block size. Instead, the number of transactions that are included in a block are limited by a “gas limit”. In Ethereum’s Virtual Machine, each possible operation that can be performed (like performing a transaction, adding two numbers, etc.) has a fixed minimum gas price (users can optionally offer more than the minimum). The size of a block is determined by the how many operations can be fit in before the gas limit is reached. It’s like budgeting for a company, you can pay a ton of college students for the same price as a few PhDs.

Ethereum doesn’t want to have delays in transactions but they also don’t want to have bloated block sizes. For this reason, the maximum gas limit is flexible and can be changed by a supermajority (67%) of the network. Typically, the gas limit is increased if the percentage of full recent blocks exceeds a given percentage and is decreased if the percentage is too low.

 

Proof of Work

Proof of work

Ethereum currently uses a consensus algorithm called Proof of Work to ensure the security of the blockchain. The main security concern of a cryptocurrency network is that an attacker could gain control over the creation of new blocks and/or could forge a realistic blockchain that could be accepted as the true blockchain when compared with the original.

To protect against an attacker gaining control of block creation, cryptocurrencies deliberately make it difficult for any user to create any given block or a large number of recent blocks. In Proof of Work, this is accomplished by taking advantage of the cost of computational resources. A Proof of Work blockchain includes a difficult cryptographic puzzle in each block and the first person to find a solution to it gets to create the block (and win the associated reward). To guarantee that they would get to create a block, an attacker needs enough computational to beat the entire rest of the network in the race, which essentially means as much as everyone else put together.

Proof of Work also protects against rewriting the blockchain after the fact. The solution to the cryptographic puzzle included in the block is based on the contents of the block, so an attacker can’t change a block and then reuse the existing solution. They need to solve the puzzle again (which takes as much work as the entire network put into solving it in the first place) and then get ahead of the real blockchain by finding “better” (more difficult to find) solutions to the block puzzles for every block after the modified one. Since this also requires more computational effort than the rest of the network put together, it’s also unlikely to happen. That is what makes Proof of Work secure.
 

Block Rate

Ethereum is unlike many cryptocurrencies in that it deliberately has a varying target block rate. Most coins have a set target that they try to hit, like Bitcoin’s ten minutes, and variations around it are due to changes in the computational power of the network. As computers grow faster or the network grows, the average block rate decreases as solutions to the Proof of Work puzzle are found more quickly.

The slowly increasing block target time in Ethereum was built into the protocol in order to force Ethereum miners to implement an intended upgrade to Ethereum. Currently, Ethereum uses Proof of Work to secure the blockchain but Proof of Work burns a lot of energy for the sole purpose of securing the blockchain.

From the beginning, Ethereum has planned to transition to Proof of Stake at some point and the slowing increasing block time is designed to force miners to do so. As the time between blocks increases, the usability of the Ethereum network will decrease until the transition is inevitable because the platform becomes too slow to function.

Ethereum has slowed the block time increase a few times to provide extra time for development of the Proof of Stake infrastructure but this requires network consensus. It is unlikely that consensus will be reached once Proof of Stake is available, so the slow decay of the Proof of Work blockchain will continue until it peters out when all users move to the Proof of Stake version.
 

Processing Fees

Processing fees

Running the Ethereum network takes money. Many computers are running Ethereum nodes, which involves setting aside computational power and storage to maintain the state of the Ethereum Virtual Machine. Unsurprisingly, they want to be paid for these efforts and, like many other cryptocurrencies, Ethereum accomplishes this by levying fees on the users.

Since Ethereum is designed as a giant virtual machine, its blocks contain instructions to be run on each node’s copy of the virtual machine. Instructions require varying amounts of computational power to complete (it’s easier to add two numbers than take one to the power of the other) and Ethereum has priced the cost of each operation accordingly.

Running any operation on the Ethereum Virtual Machine takes a set minimum amount of “gas” (a fraction of an Ether). It’s like how many technicians charge you for a half hour or one-hour minimum time even if they’re there for five minutes. If your transaction is completed within the minimum time (for the technician) or with minimal computational effort (on Ethereum), then you’re done. Harder tasks that require more resources cost more gas based pricing charts released by the Ethereum team. If the network is congested, you can also pay an extra fee (essentially a bribe) to jump the line and be processed more quickly.

Regardless of the decisions you make, doing anything on the Ethereum network will cost some gas, which goes to the person who creates the block containing your transaction. This is a necessary part of the Ethereum protocol since it supports the network and makes the decentralized system possible.

Limitations of Ethereum

Ethereum pioneered the principle of smart contract-capable blockchains. By positioning itself as a platform for developers to use in building distributed applications on the blockchain, Ethereum has built itself into the second-largest cryptocurrency by market cap. However, in its current state, the Ethereum cryptocurrency has several limitations. In this section, we discuss the limitations of the Ethereum cryptocurrency and the current proposals for how developers intend to correct these issues in future upgrades.

Ethereum speed

Ethereum is a popular network and growing as new smart contracts are added every day. One of the limiting factors is Ethereum’s transaction speed. Ethereum blocks contain lists of operations that should be performed on each node hosting a copy of the Ethereum blockchain. Ethereum blocks have a built-in computational limit that equates to a maximum of about fifteen transactions per second. The Ethereum network has over thirty-two million accounts on it, meaning that each account can initiate a transaction roughly once every twenty-four days without overwhelming the network.

  • Off-Chain Transactions

One solution to Ethereum’s scalability issue is the use of off-chain transactions. The most obvious way to secure transactions on the blockchain is by placing them directly on it, but off-chain transactions add another layer of abstraction to increase capacity.

One method of using off-chain is the use of subchains. A subchain is simply another blockchain that is linked to the main chain using cryptography, typically by including a hash of each block of the subchain in a block of the main chain. The difference in size between an entire block and its hash creates large space savings on the main chain and the subchain is trusted because of its ties to the main chain. Using subchains, a blockchain can theoretically be scaled infinitely using a hierarchical structure where the lowest level subchain is secured through a series of parent chains terminating in the main chain.
 

Capacity ​

Ethereum is popular with thousands of different smart contracts built into the blockchain. While this popularity shows that developers and users like the functionality that it provides, it does cause issues with the storage space and transaction speed of the Ethereum network. On multiple occasions, the Ethereum network has slowed to a crawl when a particularly popular Initial Coin Offering (ICO) or smart contract has generated a large number of transactions in a small period of time.

If the Ethereum network continues to grow in popularity, it’s possible that demand will eventually outpace the network’s ability to meet it. In its current form, the Ethereum network relies on each node in the network being able to complete all of the transactions contained in a block within its allocated time in order to maintain state, so the Ethereum network’s capacity is limited to that of its slowest node. It’s possible that future growth of the network will require modifications to the protocol to remove this bottleneck.
 

Efficiency

Ethereum Efficiency

The Ethereum network implements a massively parallelized “world computer” that runs on the blockchain; however, it is a hugely inefficient one. Most parallel processing computers are designed to run several different programs concurrently. In Ethereum, each Ethereum node runs the same code in parallel. This is intentional and the purpose is to keep the network in agreement on the current state of the “world computer” while remaining decentralized. Currently, Ethereum doesn’t even take advantage of the parallel processing capabilities of each node in its network. Each node runs each transaction included in a block sequentially, which means the Ethereum network runs as quickly as a single-threaded computer (and most modern computers run multiple threads). Other smart contract-capable cryptocurrencies are taking advantage of this by building parallelization into their initial designs to give them a competitive edge over Ethereum.
  • Sharding

One proposed modification to the Ethereum protocol to allow for parallel processing is called sharding. If sharding is implemented, each smart contract or transaction included in a block will make a promise that it will only affect a certain subsection of the entire state of the Ethereum Virtual Machine.

This allows Ethereum to perform parallel processing since the Ethereum protocol can look for smart contracts that have selected completely different parts of the Ethereum Virtual Machine’s state to interact with. The smart contracts or transactions can be run in parallel with each other without messing one another up. After the code has finished running, the node running it can update the reported section of the Ethereum Virtual Machine’s state with the result. Using sharding, the Ethereum Virtual Machine’s ability to be parallelized is limited only by the greediness and scale of the smart contracts and transactions running on it. If smart contracts only claim a small percentage of the internal state, many can be run in parallel, dramatically increasing the efficiency of the Ethereum protocol.

 

Computational Requirements

 Currently, Ethereum uses the Proof of Work protocol to secure its blockchain. This involves all of the Ethereum miners performing large numbers of calculations that have no use or purpose except protecting the blockchain against attack. Since the energy consumption of the Ethereum network is close to that of Iceland and still growing, the continued use of Proof of Work to secure the Ethereum blockchain is unsustainable.

 Luckily, the Ethereum developers never intended for it to remain a Proof of Work network forever. From the beginning, Ethereum has planned to gradually phase out Proof of Work in favor of a Proof of Stake protocol. In Proof of Stake, the creator of the next block is determined using a simple algorithm that takes into account the number of coins that a user has promised not to spend or “stake”. The greater a user’s stake, the higher the probability that they will be selected to mine the next block. This protects the network against attack by making it difficult and expensive for an attacker to collect enough coins to have a controlling stake rather than basing difficulty on the attacker’s ability to collect computational resources to win at Proof of Work.

 Ethereum’s plan is to gradually phase in Proof of Stake beginning by having every fiftieth block secured using Proof of Stake (with the rest using Proof of Work). This project, codenamed Casper, is still under development and it is uncertain if it will be released in the next update or the one following (for more details, see the section on Ethereum’s history and future roadmap). The switch to complete Proof of Stake is planned to be part of the fourth planned Ethereum upgrade, codenamed Serenity.