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).
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
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
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.
Limitations of EthereumEthereum 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.
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.
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.
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.
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.