Technical Walkthrough of EIP-1559

Technical Walkthrough of EIP-1559

9 Minuten
1 year ago

What even is EIP-1559? Take a dive into the technicalities of the Ethereum fee market mechanism upgrade — and how it will affect Ethereum's supply.

Technical Walkthrough of EIP-1559


What Is EIP-1559?

Ethereum Improvement Proposal (EIP) 1559 was launched in August 2021 as part of the London hard fork, which aimed to improve the Ethereum fee mechanism. In the six months since it launched, over 1.85 million Ether were burned. As of July 5, 2022, over 2.5 million ETH — worth some $2.73B currently — have been burned.

To understand EIP-1559, we must first understand the reason for it to exist in the first place. Let’s first analyze some basic design components of Ethereum, starting with the transaction fee.

Join us in showcasing the cryptocurrency revolution, one newsletter at a time. Subscribe now to get daily news and market updates right to your inbox, along with our millions of other subscribers (that’s right, millions love us!) — what are you waiting for?

Why Does Ethereum Need EIP-1559?

Why is there a transaction fee at all? Why even bother having that component in Ethereum?

Ethereum has a relatively good problem: demand exceeds supply. The supply of Ethereum is the amount of EVM (Ethereum Virtual Machine) computation that is available per block. There is, on average, 1 block produced every 13 seconds.
Thanks to EIP-1559, each block uses a variable amount of gas in the range of 1 single gas unit to 30 million gas units — the Ethereum computer itself is programmed to consider half of this number range, 15 million gas units, the target gas usage per block.

The actual size of the block will end up depending on the network demand — we will explore the consequences of a block consuming either greater or less than the 15 million gas unit target further below.

What Is Gas Used For in the Ethereum Network?

Gas is a proxy unit for how much computation and storage costs on the Ethereum network. That means we’re dealing with a finite resource — 15 million gas on Ethereum every ~13 seconds; this is the supply of the blockchain. Users wanting to use up those gas resources to process their transactions, per block, is the equivalent demand.

Ok, but you haven’t mentioned anything regarding the transaction fee!

The transaction fee is a direct meter-mechanism that addresses the supply-demand problem mentioned above: demand exceeding supply. Fees like this exist across most infrastructures: a concert venue must set an entry fee in order to meter a finite resource — seats and space, to its equivalent demand, people wanting to buy a seat to see the concert.

If there was no transaction fee at all, the demand for space on the Ethereum blockchain would be way more than just 15 million gas worth of transactions per 13 seconds.

Just like with a concert venue, you can’t give purely open access — everyone would overcrowd the venue wanting a seat! Transaction fees, however much nobody likes paying them, are a feature — not a bug!

How Do Transactions Get Included in the Ethereum Blockchain?

So, in Ethereum blocks, you can’t include everyone’s transactions willy-nilly — you must include some and exclude others for the network to be efficient. So what transactions do we include or exclude?

One natural approach is to include the transactions whose inclusions are the most valuable. This is exactly what transaction fees accomplish — if you have a very valuable transaction that you want to get mined on the Ethereum blockchain, you can signal that it’s a very valuable transaction by offering to pay a non-trivially large fee.
This is why you need transaction fees: they separate the populace of transactions into valuable ones: those willing to pay a non-trivial fee and not-so-valuable ones: those not willing to pay non-trivial fee.
Transaction fee revenue, where the fees themselves end up going, is a secondary side effect of some of the primary features you really want out of fees: to have each block be as efficiently utilized as possible.
Using block space efficiently means the network produces blocks that are as full as possible (as close to 15,000,000 gas units used!) with the transactions that are the most valuable filling that block space up. The only way to achieve this efficiency then is to charge transaction fees, which generate revenue. They are the necessary evil to an efficient blockchain.

What Was Ethereum’s Transaction Fee Mechanism Prior to EIP-1559?

Ethereum’s transaction fee mechanism was a copy-paste of that of Bitcoin: a first-price auction.
The way a first-price auction works is when you submit a transaction to the network, you submit a bid along with it: an offer to pay the transaction fee. Then it’s up to the miners. Miners are monitoring the mempool, they see all the transactions that come in along with their attached bids.
It is expected that miners will simply pack blocks as full as possible with the highest-bid transactions. Why? Because miners, pre-EIP-1559, get the entirety of the transaction fees in a block.

In a first-price auction, you are responsible for coming up with a bid to get mined and once your transaction gets mined, that bid is paid directly to the miner.

What Does EIP-1559 Bring to the Ethereum Network?

Most people were mainly excited about EIP-1559 because of its novel upgrade to the Ethereum tokenomic design: a portion of the transaction fees are now burned. Who likes that? Well, anyone who is a holder of ETH!
It’s kind of like the protocol doing a buyback: by decreasing the total supply of ETH, in theory, that increases the value of all of the remaining supply, assuming no changes to the demand.
But EIP-1559 is much much more than just burning fees to theoretically make the value of ETH rise. The fee burning-mechanism is a secondary side effect of the intended primary features of EIP-1559.
There are three key implementations behind the design of EIP-1559: a base fee per block, variable block size and miner “tips.”

Key Features of EIP-1559

1. Implementation of a Base Fee

There is now a base fee in each Ethereum block. The base fee is the minimum gas price that someone must pay in order to be included in a single block. So if the base fee of a block is 90 gwei and you bid less than that, according to EIP-1559, you are ineligible to be included in that block — you do not meet the minimum fee requirement to be considered.

How is a block’s base fee computed?

The base fee is completely independent of the contents of a block; the fee is not affected by any of a block’s transactions. It is a history-dependent, present-independent fee.
How is the history of the blockchain used to calculate the next block’s base fee? Quite simple: the protocol algorithmically sets the base fee of the next block based on how “full” the last mined block was. Ethereum wants max utilization of blocks. If it appears the base fee was too low, it must be adjusted upward and if it appears too high, it must be adjusted down.

At this point, can you guess what gas unit number is used as the measuring point? This is where the second key idea of EIP-1559 directly ties into the first: variable size blocks.

2. Implementation of a Variable Block Size

Before EIP-1559, Ethereum blocks had a maximum size of 15 million gas worth of transactions. After the upgrade, blocks have a variable size of 1 gas unit to 30 million gas units worth of transactions. Hopefully it starts to make sense why Ethereum considers 15 million gas the “optimal” case — 15 million is the midpoint of the block size range; this is tied directly to the algorithmic calculation of the base fee.

If a block is below 15 million — thus not using the optimal amount of resources — this means the base fee is too high. On the flip side, if a block is above 15 million gas (up to 30 million max), according to EIP-1559, this means the base fee is too low.

The variable size of the Ethereum block is an important mechanism in allowing the protocol to calculate the base fee of each block in an algorithmic and on-chain manner.

What does it mean if the base fee is too high or too low?

There are three situations to consider: the base fee is too high, just right or too low. The “just right” point is when a block has exactly 15 million gas worth of transactions. Think of Ethereum’s optimal target of gas usage per block to be 15 million.

Too high: Suppose the current base fee on the network is 200 gwei, but at that given time, there weren’t even 15 million gas worth of transactions willing to pay 200 gwei in the mempool. There are surely tons of transactions in the mempool, but just not enough willing to pay 200 gwei to collectively add to the 15 million gas unit target. Remember: any transaction in the mempool under the current base fee will NOT be considered for the current block.

So the miners work with what they can: they fill the current block with as many transactions that were posted that are eligible to be mined (those with ≥200 gwei base fee). Say they managed to fill the block up to 10 million gas worth of transactions and they mine the block; this isn’t optimal as in any blockchain — you want to use the most block space possible per block!

The last block being 5 million gas units short of the 15 million mark is your on-chain signal that the base fee is too high! Your meter is charging too high and this is leading to your supply of resources being under-utilized.

Just right: Imagine the block that just got mined is exactly “full”: it uses 15 million gas worth of transactions. A full block is optimal. The base fee is exactly right, you have exactly the right amount of people willing to pay to be included in a block. Nothing changes.
Too low: Due to the variable block size of Ethereum, if over 15 million gas worth of transactions gets included in a block — that is your on-chain signal that the base fee is too low. Your meter is charging too low and this is leading to your supply of resources being over-utilized!

Pretty cool right? The base fee is directly related to the variable block size mechanism implementation.

So what happens to the revenues of the base fee then? Does it go to the miners?

No, these revenues get burned! If a transaction is submitted with a 100 gwei base fee, that 100 gwei will be burned when that transaction gets mined.

Before EIP-1559, the entire fee of a transaction went directly to the miner of the block. Now, the base fee component of a transaction fee is burned from the protocol.

So how do miners make money? This leads us into the third and final key design mechanism behind EIP-1559: the miner tip.

3. Implementation of a Miner Tip

An interesting aspect of EIP-1559 is that there is still technically a first-price auction system in place.

To bring back the concert venue analogy, the base fee will assure us that every fee-payer is assured a seat to see the band. But what if some people are willing to pay more to see the band up-close? Some people will surely pay a premium for seats closer to the band. The base fee, again, is the minimum to get into the venue. The miner tip would be considered this premium seat charge.

On top of the base fee, a priority fee system exists so that users are able to specify a payment fee that goes directly to the miner. The miner tip is for the purpose of incentivizing miners to include a transaction as fast as possible.
The miner tips are activated mainly to account for times of high demand on the network. If a block is constantly filling 30 million gas, then this means there is a lot of demand for block space and thus the first-price auction system is activated: users begin to incentivize miners to include their transactions as quickly as possible so they include higher fee amounts directly in the miner tip. Otherwise, usually a miner tip of 1–3 gwei per transaction is appropriate. You can use Etherscan’s gas tracker to find out the latest base and priority fee.
So there you have it, the three key design mechanisms implemented in EIP-1559 that put together make up for incredible network game theory that Ethereum has now enjoyed since the London hard fork.
This article contains links to third-party websites or other content for information purposes only (“Third-Party Sites”). The Third-Party Sites are not under the control of CoinMarketCap, and CoinMarketCap is not responsible for the content of any Third-Party Site, including without limitation any link contained in a Third-Party Site, or any changes or updates to a Third-Party Site. CoinMarketCap is providing these links to you only as a convenience, and the inclusion of any link does not imply endorsement, approval or recommendation by CoinMarketCap of the site or any association with its operators. This article is intended to be used and must be used for informational purposes only. It is important to do your own research and analysis before making any material decisions related to any of the products or services described. This article is not intended as, and shall not be construed as, financial advice. The views and opinions expressed in this article are the author’s [company’s] own and do not necessarily reflect those of CoinMarketCap.
0 people liked this article