--- tags: 1559 --- # The State of 1559 - Update 001 ๐Ÿ”ฅ ## TL;DR ๐Ÿ‘€ * EIP-1559 is a significant change to Ethereum's fee market. It will will make transaction fees more predictable, handle spikes in demand more efficiently and create a positive feedback loop between network usage and network value; * Progress on EIP-1559 _is_ happening: client implementations, simulations, a game-theoretical analysis and community outreach are all in progress; * The next implementers' call is scheduled for October 8th, where a "mainnet readiness checklist" will be discussed. ## Background ๐Ÿ“œ Because this is the first of these updates, it is worth giving some background on EIP-1559. If you are familiar with the EIP, feel free to skip ahead ๐Ÿ˜. [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559) was put forward by Vitalik in 2019 and has been championed by many people since. It aims to make the Ethereum fee market more efficient. In short, it "stretches" blocks to twice their current size but aims to keep them half full. This means the network always has extra capacity to process surges in blockspace demand [0]. EIP-1559 achieves this by tracking the minimum gas fee, the `BASE FEE`, a transaction must pay to be included in the block. When a block is more than 50% full, the `BASE FEE` goes up, and when a block is less than 50% full, it goes down. When there is a surge in demand, blocks will, for a short time, have twice as much capacity, until the `BASE FEE` has risen high enough that it isn't worth it for users to pay such high transaction fees [1]. At that point, the `BASE FEE` will go down again, back to its previous level, and the network will have processed all those transactions twice as quick as it currently does ๐ŸŽ‰ We also hardcode the `BASE FEE` in the block header which makes it easier for users sending transactions to estimate how much they should pay for gas. But, you may think, won't miners have an incentive to keep the `BASE FEE` as high as possible to pocket high transaction fees from everyone? To avoid that, we burn that part of the transaction fee ๐Ÿ”ฅ. This means miners are indifferent to whether the `BASE FEE` is high or low. To incentivize them to process transactions rather than mine empty blocks, an optional second component of the fee, called `TIP` is also introduced. Finally, burning the `BASE FEE` creates a positive feedback loop between network usage and network value. As more people want to use the network, the `BASE FEE` goes up, which means a larger amount of ether gets burnt in each block. This indirectly impacts network value by reducing the available supply of ether. [2] There are many more nuances to the EIP, but they are out of scope for this update. Good places to dig in are [Vitalik's recent FAQ ](https://notes.ethereum.org/Wjr1SnW-QaST7phX9C5wkg?view), the [EIP's EthMagicians ๐Ÿง™๐Ÿปโ€โ™‚๏ธ thread](https://ethereum-magicians.org/t/eip-1559-fee-market-change-for-eth-1-0-chain/2783), and the [notes & recordings from the past implementers' calls](https://github.com/ethereum/pm/blob/master/Fee%20Market%20Meetings/README.md). ## Current State ๐Ÿ›  ### A bit of context.. As mentioned above, EIP-1559 was first introduced in 2019. One of the first deliverables for the EIP was [an implementation study](https://docs.google.com/document/d/1yqvvfrQ_He0fN1SsUcvZNBdyhv__d8-1QPyteCbNT6Q/edit) produced one year ago. The study highlighted all the changes that were required in the go-ethereum codebase to support the EIP. Shortly thereafter, the Vulcanize.io team began an implementation on the client. The EIP got brought up on AllCoreDevs several times over the next few months, with the most substantive discussion happening on the last call of the year, [ACD#77](https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%2077.md#eip-1559). **The main issue highlighted during this conversation was the risk of EIP-1559 creating more leeway for actors wanting to DoS the network. Because blocks could stretch up to 3x their current size (now 2x), any denial of service attack could be thrice (now twice) as effective.** Early this year, this Protocol team at ConsenSys agreed to help move the EIP forward by providing another implementation in Hyperledger Besu, assisting with project management and helping to test whether there was a chance the network could handle these extra large blocks. Since then, there have been four major streams of work happening on the EIP: implementations, simulations, formal analysis and community outreach. ### Implementation Today, both [Besu](https://github.com/hyperledger/besu/labels/EIP-1559) and [Geth](https://github.com/vulcanize/go-ethereum-EIP1559/tree/eip1559_rebase) have implementations for EIP-1559. Having two implementations has helped uncover several under-specified areas in the EIP, bugs in each of the individual implementations and will hopefully soon demonstrate that EIP-1559 _can_ work in a simple environment [3]. As we iron out implementation details, we will be ready to gradually test more complex scenarios, such as proof of work networks, adding more clients and processing large blocks to better understand the impact on the individual nodes and network. ### Simulations In parallel to the implementation work, the Ethereum Foundation's [Robust Incentives Group](https://github.com/ethereum/rig/tree/master/eip1559) has been working on agent based simulations. The goal of these is to analyze how EIP-1559 would respond under a range of different usage patterns, such as the network operating normally, a large spike of usage, users submitting their transactions strategically based on historical `BASE FEE` values, etc. The learnings from these simulations can help modify the specification of the EIP proactively, and hopefully help us avoid learning any bad lessons when EIP-1559 goes live on actual networks ๐Ÿ™ƒ You can find the latest of these simulations [here](https://github.com/barnabemonnot/abm1559). ### Formal Analysis While the implementation and simulations provide good empirical data on EIP-1559, they do not help from a theoretical perspective. In short, we want to ensure that EIP-1559's design is game theoretically sound and, ideally, optimal. To help with this work, Tim Roughgarden, [one of the world's leading mechanism design researchers](https://en.wikipedia.org/wiki/Tim_Roughgarden), is being contracted to evaluate the fee market mechanism proposed by EIP-1559 and compare it to Ethereum's current fee market, as well as other proposals such as ["escalator fees"](https://eips.ethereum.org/EIPS/eip-2593). The goal of the research is to either prove that EIP-1559 will work as intended, or propose changes to the mechanism to make it more robust. ### Community Outreach EIP-1559 is one of the largest improvements that has been proposed to Ethereum and changes several fundamental parts of the protocol (transaction, blocks, etc.). To get a pulse on the community's sentiment towards it, the Ethereum Cat Herders have begun reaching out to various projects in the community to understand their thoughts on EIP-1559, how we can roll it out in a way that is most convenient for them, and whether they have any major objections to it. The Cat Herders created [a questionnaire](https://forms.gle/1EyKYCKW6UjkC6Af8) for anyone who wants to share their input and are having several 1:1 conversations with projects whom EIP-1559 will affect. Once they will have consulted a large enough number of projects across the various categories (dapps, wallets, exchanges, infra, miners, etc.), they will publish a report to share the community's feedback with implementers, reserachers and other core developers. ## Next Steps โœ… Phew, that was a lot! We wanted to give plenty of context in this first update, but expect future ones to be briefer and more focused on incremental progress or new initiatives. Here are a few things you should keep an eye out for in the coming weeks: * Our next implementers' call, scheduled for October 8th; * A checklist of "mainnet readiness" for the EIP, based on conversations with the various stakeholders [4]; * The results of the community outreach study; * More progress on the Besu & Geth implementations, as well as potentially more client teams starting work on their implementation. Expect updates on the above in our next post ๐Ÿ‘‹๐Ÿป --- *Thanks to Danny Ryan & James Hancock for reviewing drafts of this update.* --- ### Footnotes [0] Like, for example, when a popular DEX announces it airdrops a governance token to its tens of thousands of users ๐Ÿ˜… [1] The maximum the `BASE FEE` can increase or decrease when a block is full or empty is 12.5%. per block, meaning it takes roughly 5 minutes of full/empty blocks for gas prices to go up/down by a factor of 10, 10 minutes for a factor of 100, 15 for 1000x, etc. [2] Obviously, many other factors affect the network value, and ETH has historically been very volatile. There is no guarantee that EIP-1559 would bring network value higher than it is today. The network value is a function of supply and demand, and EIP-1559 only affects the former. [3] The current "testnet" used for the Geth & Besu implementation only has an handful of nodes, runs the Clique consensus algorithm and uses a simple tool to send spikes of transactions to the network. [4] Because dates are hard to do right in Ethereum, we feel it will be most useful to document everything we'd like to see related to 1559 before we deploy it on testnets and mainnet as a way to keep track of progress.