Episode 390

EIP-1559 – Tackling the Gas Fee Problem on Ethereum

Ethereum Improvement Proposal (EIP)-1559 is a proposal to make several tightly coupled additions to Ethereum’s transaction fee mechanism. Central to the design is a base fee, which plays the role of a reserve price and is meant to match supply and demand. Every transaction included in a block must pay that block’s base fee (per unit of gas), and this payment is burnt rather than transferred to the block’s miner. The base fee is adjusted after every block, with larger-than-target blocks increasing it and smaller-than-target blocks decreasing it.

Tim Roughgarden is a Professor of Computer Science and member of the Data Science Institute at Columbia University. Tim did an extensive game theoretical review of EIP-1559 and joined us to chat about what the proposal is trying to do and why, and how it is doing it.

Topics discussed in the episode

  • What Tim’s research focuses on and how he became involved with blockchain
  • What made him interested in the fees problem
  • The current fee system on Ethereum – the first price auction and base fee
  • EIP-1559 – the problem it solves and how it does it
  • Increasing and decreasing of block sizes
  • The threat of miners colluding to drive down base fees
  • Deep dive into how the proposal works
  • What are some alternatives to EIP-1559

Friederike: Tim, it’s super good to have you here. We’ve actually had this scheduled for a long time and EIP 1559 has been in the works for quite awhile. Tim you’re very much not our usual gas. You’re a computer science professor at Columbia. Tell us what your research focuses on.

Tim: Sure. Once again, thanks very much for having me. A pleasure to be able to speak to your audience about EIP 1559. I have two main areas of expertise, they sometimes overlap and sometimes don’t, so one of them is just algorithms. Many people know me from my courses and research in books on algorithms as is taught in a typical computer science curriculum.

And then the other one, which is the part which really relates to blockchains, is my whole career of 20 plus years, I’ve been very focused on interactions between computer science and economics. In particular, I’m really passionate about applications and computer science that require game theoretic or economic reasoning.

My training is totally in computer science. I’m just a total autodidact on the game theory and economics side, but it’s something I’ve been doing for a couple of decades now. I don’t think I have to tell anyone in your audience that blockchains are, for anyone with that interest, it’s just an incredibly exciting opportunity

Sunny: Were you involved with things like this before working on 1559 or was 1559 your first foray into researching blockchain from an academic standpoint?

Tim: That’s a good question. It’s been a slow build, I would say. I started dabbling in it maybe about five years ago. Right now I’m at Columbia, but before I was at Columbia, I was at Stanford in the computer science department for about 15 years or so. Literally I shared a wall with Dan Benet and we had we’re all part of the same theory group.

We wrote a paper together back in 2016, which appeared in financial crypto, which was about incentives in mining pools in Bitcoin mining pools. That was fun. I definitely started teaching more about Bitcoin specifically and some of my undergraduate courses. Cause again, it’s such a great illustration of the role of the game theory, complainant, computer science applications.

Around 2016, 2017, I was following along from a hobbyist perspective. Number one, because I had some other big projects. I wanted to finish books. I wanted to write papers. I wanted to write it. But number two is I was hedging my bets a little bit. What was clear is that doing top rate research on blockchain protocols would be a multi-year endeavor. There’s just so much to learn. I had very high standards. I started really wanting to do it right.

Given the cost that was clearly going to be needed to do good work on the area, I wanted to make sure that there’s going to be enough intellectual depth, that it would be something I could work on for several years and we find it really fascinating. I’d say maybe by the end of 2018 being in 2019, I became basically fully convinced. I was you know what? This is going to be at least five years of great work, probably more totally worth it to just dive in. I’d say the last year, maybe I’ve been focusing more and more of my energies on blockchain research.

Sunny: And so what brought you to this fees problem? Obviously there’s a lot of academics in this space, but I think people tend to think focused on developing new consensus protocols and things like that. But like there usually isn’t actually that much going on like thinking about fees. I was that the problem that attracted you,

Tim: Right? So a couple of things. I think it’s a great point that I mean, there’s a lot of really nice academic research around blockchain. Certainly one of the most vibrant ones has been consensus protocols formal properties and new designs, which makes total sense because I mean consensus protocols and distributed, that’s been a core part of computer science for a long time. There’s really a rich history there.

A couple of Turing awards have gone to researchers basically for consensus protocols. There’s a massive community where this is what they did anyways, and then along come blockchains and it’s this and it’s just, it’s a paradise. Because Satoshi comes up with a new consensus protocol, trying to analyze it, even just the shift of focus from the traditional permission setting of the permissionless setting, or there’s all these new questions you can ask.

It makes total sense that happened very quickly because it plugged in so neatly there was a community that really did not have to learn much new stuff to start doing really interesting research on the consensus side. I feel like there’s a pretty similar opportunity on what I would characterize broadly as the market design side. so transaction fee mechanisms, that’s one example of creating a market in this case would be the market for say EVM computation or just space on the blockchain.

Especially once you start once you start thinking about application level stuff it’s obvious, there’s just an enormous need for people who are all in on crypto, but also really know a fair amount about market design. I agree with you that the migration of academics to work really seriously on the blockchain has been slower than on the consensus protocol side. That said you’re going to see it speeding up in the next year or two,

Friederike: Obviously there are incredibly smart people in the Ethereum ecosystem, but it’s very informal and very meme driven. I don’t come from the computer science background, but I also have an academic background in physics. To me that was a major culture shock. Despite the fact that physicists are not known for being particularly attached to traditional business ideas. How was that for you too?

Tim: Honestly, it was really exciting. Cause I mean, it was one of the things that actually I took notice of very early on and maybe 2016 or so I just saw tons of super smart people turning aWEI from what could have been a ride into the sunset at Google or whatever other kind of cushy tech shop they had dropping everything and going into crypto. That’s been happening for many years and that’s usually a very strong signal that something interesting is happening.

I totally agree with the comment that there’s just like super high IQs for people who work in crypto also agree it was true. Many people don’t necessarily have a PhD per se, but I view that as kind of neither here nor there. I’ve got to tell you, being an academic, an ivory tower or whatever 2017, I started getting cold calls from people, building things saying we really need computer scientists who know about mechanism design.

Like you just said, I mean, it’s just not that common. You get a call from the outside world saying like we have incredible demand for your very specific expertise. That’s another thing I start getting those calls. I was like, this is not going to happen every day. It also became just clear. It was more of a moment in time for someone with my kind of skill set. Like I said, this can be a huge opportunity here for people interested in computer science and economics back and forth.

Another thing I’ll say is, I mean, what’s interesting is I mentioned briefly that I have online courses and those of over a million people have taken them that kind of run for eight or nine years. Through those courses, I interact, I’ve interacted with tons of, let’s say non traditional students. People who are not college students, people who maybe majored in history, but now we’re trying to convert to being a programmer and algorithms is this hard subject that they need to know. They don’t have to know how to do proofs by induction, but they kind of need to know how to pass their technical interviews.

That was like many years actually of communication with you sort of, as a professor like teaching undergraduate students is kind of a funny thing. It’s hard to keep yourself honest cause they’re a totally captive audience. Right? You’ve got all these 19 year olds they want to get is they don’t really they don’t really know what their outside offers are at that point. You can kind of get aWEI with a lot if you’re just teaching undergrads.

Talking to people that maybe have families and are really busy, but still really want to learn. I feel like I evolve tremendously as an educator through that process. There’s parts of doing kind of formal work in crypto that reminds me of that. The first thing is, I mean, I really do feel like even if people don’t have formal academic backgrounds, I feel like there’s a lot of relevant academic work is held in very high esteem.

I never get the sense, “Oh you’re a fancy professor. We don’t want to hear what you think.” I’ve never gotten that vibe at all. It’s more kind of like just excited. If I actually start working on problems that people care about, I just get very positive feedback about it. People just seem very excited and moreover because they’re so smart. I’m not going to have a tweet storm, which is fool-proof or something. But as far as what’s really important the really important takeaway messages have really been very little trouble.

I’d say communicating that to the team, people who are really interested. I’ve found it to be obviously, yeah, you still interact with academics and my PhD students and all that kind of stuff. But this adds a totally new dimension to me communicating about technical material and as a result, it’s yet one more community that I feel connected with and that I gain experience with how to best explain different technical concepts.

Friederike: Let’s talk about fees on Ethereum, which WEI here to talk about. Maybe before we dive into 1559, let’s talk about the status quo and kind of explain how the fee system currently works. As an economic computer scientist, you describe fees only Ethereum currently as a first price auction. Can you explain to us what that is?

Tim: Very briefly to go back one step and let’s all remember why is there a transaction fee mechanism at all? Why even bother having that component in Ethereum? And the reason is because with Ethereum, you really have the problem that demand exceeds supply. By supply here, I mean the amount of Ethereum virtual machine computation. On average one block every 13 seconds or so in one block there’s a fixed amount of gas. I think it just got raised to 15 million gas being kind of a proxy for the amount of computational and storage costs.

That means it’s a finite resource. There is 15 million gas, every 13 seconds or so on Ethereum and nothing more. That’s the supply. Then the demand is just people who would like to see their transaction gets executed on the Ethereum blockchain at a price of zero, the demand for space on the Ethereum blockchain would be WEI more than just 15 million gas where the transactions per 13 seconds. That’s the first thing is you can’t include everybody.

You’d have to include some people and exclude some others. Then the question is, who do you want to include? Who do you want to exclude? And one very natural approach would be, well, let’s try to include the transactions that generate the most value for the person sending the transaction. That’s exactly what transaction fees accomplish. If you have a very valuable transaction you want to get across the Ethereum blockchain, you can signal that it’s a very valuable transaction to you by offering to pay non non-trivially large transaction fee.

When you have transaction fees, it naturally screens, it separates the population of transactions into the valuable ones, those willing to pay a non-trivial fee and the not so valuable ones, the ones that are willing to pay that. That’s why you need transaction fees. One thing is a very important point actually, which is that probably at some point we’ll start talking about transaction fee revenue and where does it go and how do we feel about it?

You know, and I just want to point out that really that transaction fee revenue was generated primarily as a side effect of other things that you really want. What you really want is you want the blockchain to be efficiently utilized, meaning the blocks are full and they’re full with the most valuable transactions that are out there. The only WEI you can accomplish that, the only WEI to actually separate the wheat from the chaff is to charge prices, which then generates revenue.

It’s really just a necessary evil if you are trying to have an efficient allocation of the Ethereum blockchain. Okay. That’s why you need a transaction fee mechanism and Ethereum’s current transaction fee mechanism is basically copied from what Nakamoto used in Bitcoin. It’s really, I mean, it’s a very natural starting point and it’s called a first price auction or alternatively, a pay as bid auction. The WEI it works is just when you submit a transaction to the Ethereum network, you, or your wallet on your behalf submits with that transaction bid.

An offer to pay a certain transaction fee, which is denoted in Gwaii per unit of gas, then it’s really up to miners. Miners are monitoring the mempool. They see all these different transactions. This transaction has a bit attached to it. A gas price it’s willing to pay. Miners can pack the block, however they want. It’s natural to expect miners to pack the block full with the transactions that are offering to pay the highest gas prices.

That’s the first price auction as a creator of a transaction, you are yourself responsible for coming up with this offer. You have to decide how much you’re willing to pay. Then if you’re included in a block that is in fact what you will pay. In fact, you will pay that directly to the miner of that block. That’s the,

Friederike: As a user, what’s my best course of action. How do I determine what gas price I would like to pay?

Tim: Under the status quo, you mean? That’s, it’s a tough question, to be honest. I think probably a lot of the audience when they interact with the Ethereum blockchain, they don’t necessarily actually pick the transaction fee. That will be set automatically by your wallet. I’m sure many of your audience has experience with say the MetaMask wallet, where it basically suggests what gas price you should offer.

If you’ve ever clicked on, I forget if it’s called advanced or whatever, but you can expand it and it gives you three options. It says, if you’re willing to wait a long time, here’s this lower gas price that we recommend. Here’s an average one. Then if you really want it included immediately, here’s a higher gas price that we recommend. If you think about it must be that the developers who designed MetaMask had to tackle that exact same problem that you’re now asking, what actually should you bid?

They presumably have some algorithm that gives its best guess, and then offers it to you and something which was known way before blockchain. First price auctions obviously have been around before blockchains and in the old applications on the new applications, it turns out to be a very difficult problem. I mean, in a perfect world, you could telepathically know exactly what everybody else was bidding and then bid just high enough so that you would get included in the block.

That’s what you wish you could do. If you knew what everybody else was bidding, then it wouldn’t be a hard problem. You just did the minimum amount necessary for inclusion. The challenge of course, is that you do not know what the newest arriving transactions are going to have for their bids. You have to guess that, and that of course is going to depend on demand and demand is fluctuating often quite rapidly in Ethereum.

I’m sure many members of your audience will have had the experience where you use MetaMask recommended gas price. Then all of a sudden your transaction hangs for like 45 minutes. That’s because it was using the past to try to predict the future. You were unlucky enough to submit your transaction exactly. In a period where the gas price shot through the roof. You’re using this kind of gas price that would have been fine five minutes ago, but it’s not fine now.

That’s the challenge. You wish you knew what other people were bidding. You could just barely outbid them. That requires guessing what people are going to be bidding and the next block. That’s all you can do is make an educated guess, and you’re going to be wrong some portion of the time.

Friederike: That’s how much users spend. Too much. Basically if you look at how much gas users actually spend and what would it suffice to get them included by how much do they overspend in percentage terms, do you know?

Tim: That’s a good question. I’ve never seen it. I’ve only seen anecdotal discussion of that. I have to say it’s a little hard to know. I mean, so you can go to Etherscan and check out blocks. There’s no question. You see a wide spread in the gas prices that people pay. Now, there’s various reasons for that. It can be hard to know what’s going on.

You will see transactions that have a gas price of zero. That may be because the miner created that transaction itself, and didn’t bother with the transaction fee. It could be there is some other kind of off-chain agreement off-chain WEI that the miner was getting paid. Then you will see transactions with extremely high gas prices. Often that’s because they are vying to get included in the block.

That would be, for example, first in the block, give someone’s executing a front lending attack or something like that. You look at you look at etherscan, you see the distribution of gas prices and can do a heuristic, lets filter the ones that are 0. Let’s filter the ones where it seems like the miner has some off-chain arrangement, the miner let’s filter any stuff, which is crazy high.

Then let’s look at what remains and let’s agree that’s our gas, if the normal users are in this block. Even there, you definitely see, you see big spreads. They’re not tightly concentrated. Is it a factor of two or four between the min and the max? I don’t remember, but in any block that you see there’s surprisingly little concentration in the gas prices that even the middle part of the distribution are using. I love your question. I’d love to see someone make a serious empirical attempt to get a number on that percentage.

Sunny: One piece also is that like the gas price is used. There’s almost like two auctions going on in parallel. There’s one, which is just to be included in a block. Then my transaction will be executed. Then the other is about the ordering within a block, right, where it’s like some people are playing a game oftentimes if don’t really care, I just care about my transaction happening, but there’s other people who are playing a game where they’re I want to be the first on this block for XYZ reason. Has there been any attempts to separate out these to study these two markets independently of each other?

Tim: Yeah, that’s a great question. I agree. That’s also my mental model for the blocks. It’s almost like there’s this kind of write-up, it’s like 15 million gaps where the transactions and some portion of that, which is not zero, but also not 15 million is engaging in so-called priority gas auctions basically trying to really over, not overpay, but pay a lot to signal that they not don’t just want to be included, but they want some particular position.

There definitely are. There have been attempts to measure. For example what fraction of the overall fees come from the group of very high paying positions, dependent transactions versus just kind of normal transactions. I don’t again, you have to make lots of assumptions to come up with a number, but the bottom line is it’s well bounded aWEI from both zero and a hundred percent.

There’s a significant fraction of fees coming from one of these priority gas auctions, there’s a significant fraction of fees, or at least a significant fraction of the gas in the block, let’s say is not paying fees are just paying for inclusion or not playing for positions. Honestly sometimes I get questions like what are good open questions for mechanism designers in the blockchain space.

I think this is actually a great one, suppose you want and just take a clean slate approach from scratch. I’m not sure originally the creators of Bitcoin or Ethereum necessarily envisioned these priority gas auctions, maybe they did. I’m not sure. But then again, now we know that they’re going to happen in the general smart contracts platform and get asked the question, knowing that, would we go back and actually somehow design a different transaction fee mechanism, cause right now it’s very restrictive.

All the only vocabulary you have to communicate your preferences to an Ethereum transaction. If your mechanism is the one number one bit, okay. Obviously off chain you could try to communicate with a miner and say more stuff, but you could imagine that in the, on chain transaction fee mechanism, you allow transactions to have a richer vocabulary. Just like a very trivial thing would be maybe you have an optional second bid, which is specifically for the first lot of the block, for example. That whole space is really completely unexplored, at least from an academic perspective. That’s something I’d love to see research on it.

Friederike: That’s the status quo. Let’s talk about EIP 1559. What’s the proposal, where are we headed in? What does the proposal entail?

Tim: We should probably take this in pieces. EIP 1559 proposes multiple tightly coupled changes to Ethereum’s current transactional mechanism to first price auctions. One question would be, what is it trying to accomplish? Another question is how does it accomplish that? Let me start with the first question. My understanding is that the origins of EIP 1559 is to solve exactly the problem we were just discussing, but it’s hard to figure out how to bid and in first price auctions.

Even the very smart people working at MetaMask haven’t fully solved the problem. Really you’d like to have bidding for space on Ethereum being as easy as just like buying something on Amazon. When you go to Amazon, you pull up a product page like for a book, maybe the book costs 40 bucks, what’s the cognitive burden on you. It’s really just a binary decision. Is this book worth $40 to me or not?

Either WEI it’s okay. You get to make up your mind either WEI, and you’re not going to regret your decision either it’s worth $4 or it’s not an excuse, you buy it or you go and you love it for obviously not everyone’s going to get their transactions into the Ethereum blockchain, but you would love it to be as transparent as possible.

You would love it if your transaction shows up and Ethereum promises you next block, if you’re willing to pay a gas price of 90 WEI, you’re going to get in. If not, you’re not going to get in. It’s totally up to you just pick either WEI, but you’ll get in if you bid 90. Which is not true now. MetaMask tells you to bid and you may or may not get in. You don’t know, depends on fluctuations in demand and who knows what else?

So that my understanding is the origin story of EIP 1559. You would like to change the mechanism and change the bidding mechanics. It’s just obvious in some sense, what gas price you should include with your transaction. That’s what I think of as the original motivation. Interestingly, to accomplish this goal, you have to make several tightly coupled changes and there are actually some side benefits of the other changes that you make in the service of that goal.

At this point some of those side benefits have really even eclipsed in the community’s mind, the importance of the original goal of easy fee estimation. Now a lot of people are excited about EIP 1559 because they think that it improves the tokenomics of the Ethereum network specifically. As we talk through how it works, we’ll see that some portion of the fees are actually burned. They don’t actually go to the miner of the block that includes those transactions.

That fees are literally just removed from the circulating supply of Ethereum. Who likes that? Well, anyone who’s a holder of Ethereum likes that, cause that’s like the protocol doing a buyback. In the spirit of stock buyback. By decreasing the supply, in principle, at least that increases the value of all of the remaining supply. Ethereum holders see this as potentially very impactful on the price of Ethereum and also just generally connecting the value of Ethereum network to the value that’s flowing through the Ethereum network.

That’s the, what is it trying to do? Right. Now that we can move on to how to do it? Okay. I would say there are three main ideas. Okay. Three parts to it. Part number one, is this going to be what an Ethereum is called a base fee in each block. Okay. In auction theory, you would call it a reserve price. Okay. The base fee is like a price floor. It’s the minimum gas price, which anyone’s going to be able to get aWEI with to be included into this block.

Maybe it’s 90 WEI. Then according to 1559, if you bid less than 90, you were literally ineligible to be included in this block. You’re just filtered in effect from consideration that’s the base fee. This is meant to be that posted price you see on Amazon. That’s the goal. A couple of questions now, so some transactions will pay the base fee some won’t. One question is just, how is this computed? Cause we’ll get to that in a second.

I guess the top order bit with how the base fee is computed. What’s totally crucial is that the base fee is a deterministic function of the history of the blockchain. Okay. All of the predecessor blocks on the longest chain, okay. That this block is extending and in particular, the base fee of a block is completely independent about all of the contents of that block.

The miner of that block cannot influence the block space fee. The transactions included in that block do not affect that block space fee. Okay. That’s the harder bit, that’s super important. It’s a history dependent, present, independent based fee or reserve price. We can talk more about specifically how it’s computed if we want in a little bit. Okay. Then there’s a question of what happens to the revenues generated by that base fee.

These are exactly the revenues that get burned. Okay. Any transaction that agrees to pay the base fee of say 90 grade per unit of gas, all of that Ether will just disappear. Okay. Will be burned now why did we do that? Did we do that? Because we liked feed burning. Actually even if you don’t care about fee burning, it turns out the game theory really demands that these fees are burned or at least the game theory demands that these fees do not go back to the miner of that block.

Perhaps it could be redirected elsewhere, but they cannot go to the miner of that block. Why not? Okay. The issue is that if you just tried to have this base fee disallowed that we’re not willing to pay 90, but then everybody paying 90 or more was included. All of that got transferred to the miner. The problem is through an off-chain agreements, the miner and the creators of these transactions could totally evade the base fee. Right? Say I’m a transaction. I only want to pay 60 but I don’t want to pay 90.

Okay. I could just have an agreement with a miner off chain that says I’ll pay 90 on chain so that I’m eligible for inclusion, but then you need to refund me 30 off-chain so that my net payment is 60. As a result, through this off-chain evasion, you do not succeed in preventing the low value transactions from getting onto the chain. That’s really where the fee burning arises. Inevitability given the design decision to have this basically,

Sunny: Is there another reason as well, which is that we don’t want an incentive for miners to drive up the base fee as well. If the fees go back to the miner of that block, it’s free for a miner to spam transactions in order to drive up the base fee. By burning the fees, it puts a cost on a miner to actually try to drive up the base fees that is one of the main considerations as well, or is that just a side thing?

Tim: Yeah. Good question. I do that as a side benefit in the sense we can have a long, longer discussion later about how miners could collude and manipulate this protocol but the short answer is manipulating the base fee. Miners colluding to set the base fee where they want it to be, that in effect is something you could already do now. Okay. Before 1559, if Ethereum miners wanted to, they could say, never again will anybody accept the transaction with a gas price less than 61. Okay. Never. They all swear to it.

That’s roughly the same as manipulating the base fee. That it’s basically, so you’re right that it does further disincentivize that particular manipulation, but I don’t know that I’d be so worried about that manipulation. I really viewed the first reason as fixing the game theory around the base fee. That’s part one. That’s a key idea. Number one, base fee, it’s a deterministic function of everything that’s happened in the past.

It’s independent of anything that has to do with this block itself. All right. Now the second part, the second key idea is to help answer the question well, where does this base fee basically come from? Right? It doesn’t just fall from the sky. We have to compute it. How do we compute it? How do we use history to say how to choose it? 

The high level idea is very natural. It’s basically just local search and effects. If it appears that the current base fee is too low, you adjust it upward and vice versa, but if the base fee is too high, you adjust downward. What does it mean that it appears that the base fee is too high or too low? Well, suppose the current base fee was like 150 WEI and there wasn’t even 15 million gas where the transaction is willing to pay 150 WEI. Right? So the miner looks around in the mem pool. It’s Whoa, there’s all these transactions that are ineligible.

Here are the transactions that are eligible for inclusion because their gas prices 150 or more, but it’s only like 10 million gas where the transactions, but that’s all I got to work with. I guess I’ll just publish this block, which is only two thirds full, well, that would be a signal that the base fee is too high. Right? You’re actually not filling up your block. That’s bad. We want the blocks to be full. You want to use all of the available real estate. That’s what I mean by an on chain signal that the base fee is too hot. The block is under full, but now let’s think about the symmetric situation.

Imagine actually the block that you see on-chain is full, it’s 15 million gas where the transactions, how do you differentiate between the situation in which you got the base fee? That there was exactly 15 million where the transaction is willing to pay it versus the scenario where it’s way too low. In addition to the 15 million gas of transactions you happen to see on chain, there was another 25 million gas transactions that were not included on chain that would have wanted to have been included on chain at the current base fee.

The first of those scenarios, you don’t want to change the base fee at all. It’s exactly right. The right amount of people are willing to pay it. The second of those scenarios, the base fee is too low. Demand is super high and you want to raise the base fee. This is what inevitably leads us to the second key idea in the design, which is variable size blocks. This is another really quite significant change from how things work right now.

The way Ethereum works right now is there’s a cap on how big blocks can be. I think it was just raised to 15 million gas per block, then any block with more than that is simply invalid. It doesn’t count. In under EIP 1559, the Ethereum protocol is going to be granted additional flexibility on how to allocate its blocks. It is still going to have to conform to an average block size of 15 million gas.

That’s kind of what people are comfortable, the network handling. In particular like if block sizes get too big then you have forces towards centralization. Cause you need more and more resources to run a note. If the blocks get super big. People are only comfortable with an average block size of say 15 million gas. However, under EIP 1559, Ethereum will be allowed to temporarily violate the target of 15 million gas up to a cap of 2X the target. Up to a cap of 30 million gas.

We’re going to be seeing blocks with variable sizes, possibly as big as 30 million, possibly as small as zero, but the protocol will make it so that the average block size is going to be tuned to 15 million gas per block. How does this solve the problem we had earlier? The problem we had earlier was how do we know whether the base fee is just rights or whether it’s too low? Well, now we just look at how big the previous block was. Remember a miner has the capability of going up to 30 million gas.

Assuming there are enough eligible transactions to pack it with, eligible means that the transaction has a gas price, at least as large as the current base fee. Intuitively, we expect a miner to pack a block as full as possible with eligible transactions. We’ll see in a second that they do get some revenue from the transactions, even despite the fever. We’re thinking of miners, they’re going to look at the mem pool. They’re going to say, which transactions am I allowed to include?

They’re just gonna include them all. Or if that’s more than 30 million, if that’s more than the max, they’ll have to make some decisions. But if it’s under the max, right, the miner does not care about this target of 15. The miner is just, I’ve got 30 million to work with. The protocol allows it. If I can pack that with fee paying transactions, I’m going to do it.

If you see a block, which is really big, which is more than the 15 million target, possibly as big as 30, but anywhere more than 15, then your base fee is too low. It’s time to adjust the base fee upward. Remember you’re shooting for a steady state of 15 million gas per block. Whenever you see more than that, the base is too low. You need to raise it. Then like in the previous example, if you ever see a block that’s below the target of 15 million the base fee is too high and you adjust it upward.

Then there’s a specific formula by which that adjustment is made. I don’t think those details are super important for our conversation today, but that’s the key point. Blocks is that there’s a target size for blocks. We’re allowed to violate it by up to 2X. Why is that allowed? Well, now it gives you an on-chain signal of both directions, both of whether the base fee is too high before, but also whether the base fee is too low.

Then for the next block, you just gradually adjusted accordingly to try to get the block size back to the target of 15 million. Just like before, basically the base, we can vary between zero and in effect infinite.

Friederike: Right. Okay. Basically it will be the same for every transaction included in that block, but it won’t be like a posted price thing because on Amazon, when I buy a book for $40, I know that I get it. Whereas if I actually just pay the base fee, it’s possible that would be that the demand has just gone up. Basically there would be many more transactions and mine won’t get included.

Tim: The bad case is when the base fee is crazy low compared to the demand imagine the base fee was zero, you’re not going to be guaranteed inclusion because anybody would be happy to get in at zero. How can you guarantee that it’s you? So that’s a bad case, but as the point is, as long as the base fee isn’t excessively low, meaning as long as it’s roughly correct. In the sense that remember the target is 15 million gas, but really as long as the base fee is high enough that at most 30 million gas is eligible, then actually there’s room for everybody.

As long as you’re willing to pay the base fee, and as long as the total number of the total gas of transaction is willing to pay the base fee is 30 million or less, you’re golden, there’s room for you. There’s room for every eligible transaction. That’s exactly the power of the base fee. It automatically removed from contention, a whole bunch of transactions, the ones not willing to pay the base fee. If the only remaining contestants all fit in the block, then there’s no hard decisions to be made by the miners just include them all.

Friederike: What are the incentives for the miner to actually include me? Because, I mean, they could potentially benefit a lot from censoring me. Under the current system, that’s pretty expensive because they would forego my transaction fee. Whereas if they don’t get any money from me, why would they include me at all?

Tim: This is a perfect lead-in to talk about the third and final key idea in the 1559 proposal. Again, just to review the key idea, number one at base fee, which is independent of the current block history dependent, had the number two variable size blocks, so that you had an on-chain signal of whether the base fee is too high or too low so that you can adjust it for the next block. The last two questions you mentioned are exactly the questions you should be asking, which necessitate the third idea.

First of all, why wouldn’t miners just publish empty blocks, say collect the block reward. Cause that’s all there is for them to collect anyways. Then secondly, what if you do have a situation where the demand just spiked like crazy and the current base fee is too low and more than 30 million worth of transactions, I’m willing to pay it.

You still need to specify how the protocol works in that hopefully edge case scenario. It’s the same answer to both of them. Okay. The third idea is to have what’s known in 1559 is tips and tips are really, basically just a first price auction laid on top of the base fee. Okay. Each transaction will specify how much above and beyond the base fee it’s willing to pay for inclusion and liking the status quo, first price auctions.

That part can be excess above the base fee known as the tip that actually will be transferred to the miner of that block. Okay. Really a user is going to be paying some amounts and part of that amount will go to the base fee. Part of that amount called the tip will go to the miner. How does this solve our problems? First of all, now you can make sure miners have a non-trivial incentive to include your transaction by setting the tip.

There’s the regime where there’s competition for the current block, and regime where there’s not. If there’s not competition for the current block, meaning the base fee isn’t too crazy, low is at least high enough that there’s at most 30 million gas, that’s willing to pay the base fee. In that regime, which is the happy regime, and hopefully the common regime, then the tip you need to pay should be minimal.

It’s just the minimal amount to make it worth the miners to include your transaction rather than leaving that part of the block empty. The analogy I like to use it’s kind of like imagine in New York city, so you can imagine I go out on the street and I want to put some money on the sidewalk. That guarantees that someone picks it up in the next 60 seconds. If I put that on a penny might not happen, but honestly, even if I just put down a $1 bill, that’s going to get picked up in the next 60 seconds. Even though it’s not really that much money.

That’s in the regime where the base fee is at least approximately. That’s how I think of the process. You’re just putting a dollar on the sidewalk, the miner’s lag, well, it’s not much money, but I may as well pick it up. Why not? And so we’ll see what the norms around what the tips should be when there’s no competition but right now, I would expect it to be really small in the one or two WEI range. Kind of like gas prices from years ago.

Then in the other regime, we’re actually you are on this edge case, the demand is suddenly spiked. The base fee hasn’t caught up yet. It’s way too low, then you’re at least 1559 devolves gracefully into the current status quo transaction fee mechanism. It basically devolved. Again, if the base fee was literally zero, it would literally then be a first price auction. Okay. The hope is that 99% of the time, there’s no need for any users to engage in the auction. Either they’re willing to pay the base fee or they’re not.

If they’re willing to pay the base fee, they leave a small tip, but one or two WEI, and they’re good, 1% of the time, you’re going to be back on the usual first price auction kind of scenario, but still, if you’re a user who doesn’t want to touch a price auction with a 10 foot pole, ideally you should just be able to wait small number of blocks, five blocks or whatever the base fee will have caught up to the new peak in demand.

If you’re willing to pay that high base fee, you won’t be competing with other transactions, you’d just pay the base fee and you’ll get in there.

Friederike: This is a bit of a tangent, but there is a marginal cost to a miner for including a transaction.

Tim: Yeah. I would say it’s a good question. I would say at least a little bit, at least Epsilon for some small Epsilon. Indeed if you submit a tr if you submit a transaction with zero fee, and this was true, I mean, even back when there was room for everybody typically you wouldn’t necessarily be included, at least not for a long time. If you set the fee to be zero., there’s a couple of things, but one opportunity cost comes from uncle risk. For those of you that are this Ethereum consensus protocol in some detail. It’s the longest chain protocol. You have forks. If you mine a block that doesn’t wind up on the main chain, it’s a bummer.

You solve this hard proof of work you’re expecting to get this block reward, but oops, you’re not on the longest chain. Unlike Bitcoin, Ethereum at least gives you a consolation prize. Okay. If you get uncled, so if you have a block, but someone else found a block roughly the same time as you and the other miners extended their block, rather than yours, you still get some fraction of the block reward. I think it can be as high as even three quarters or seven eighths or something like that. You can still get a very significant reward if you get an uncle, but still you lose something.

You are going to lose an eighth of an ETH or a quarter of an ETH, which is not nothing. That’s the first thing. Then secondly, the bigger, the block you publish the longer, the propagation delay of transmitting to other miners. The bigger, the chance that someone else will beat you out and you wind up getting uncled. There is some it’s small, but there’s still a non-zero risk. Every transaction is a little bit higher probability that you’re going to wind up getting uncled and lose some of that block reward. If nothing else that puts a lower bound greater than zero on what miners should be paid for transaction inclusion,

Friederike: Have you looked at how cyclical, the demand for block space is? If you look at commuters, typically there are rush hours and then traffic would be slower, prices on trains would be higher and so on. I don’t, I remember when I was a kid, you had to call relatives and five cities and certain after 8:00 PM or something, because then telephone lines were cheaper. Have you looked at how big that effect is for Ethereum, which is in a global thing.

Tim: Yeah. That’s a great question. In fact, I’m literally working with someone on exactly this question. My collaborator, a guy whose name she lo, and so he scraped a bunch of data from the Ethereum blockchain, and we’re trying to kind of come up with a reasonable model of demand. Again, it’s, I mean, there’s a lot of things that are difficult about the problem that we already touched on.

When it’s sensor data, you don’t see the willingness to pay for people who were excluded. you’ve got these weird off-chain agreements that give you some very low gas prices. You’ve got these PGA’s, which give you some very high gas prices. Some are hard, a little bit hard to cut through the noise, but that’s exactly what we’re doing.

Tim: We’re trying to come up with a reasonable traffic simulator or transaction simulator grounded in historical Ethereum data. Both for us to play with and also for other people to play with. Literally right in the thick of that project. I have not seen, again, you can only run anecdotal discussions and like recall.

There’s interesting blog posts that Vitalik wrote several years ago where he was analyzing the elasticity around block space. In other words, as you increase the block size, how rapidly would you expect the market clearing price to go down? That involves some futuristic uses of historical Ethereum data. There’s a couple other examples like that, but I really think there should be a serious empirical study.

Friederike: Interesting. Elasticity would have been the next question I would have asked. How elastic do you think the demand is? If you look at different types of transactions, if I just say I have a super high value transaction, I have a million dollars that I want to get to sunny, and then obviously it would be difficult to price me out, but say I’m an dapp trader. Then you can put a very precise dollar value that this transaction would be, gas to be on the transaction. Have you looked at this one?

Tim: We have, it’s quite noisy. I’m speaking here about nothing published on these close to being published and it was very early days. I don’t want, I don’t want anything I say here to be taken too literally, or it’s to be quoted as truth because this is just kind of very preliminary explorations. It’s very noisy and we’ve found actually lets the city a little bit higher than what the talent did several years ago, which we think is our conjecture is that just because gas prices are higher.

If gas prices are super low you don’t necessarily care much if they double. Whereas the current gas prices, people really do care if they double, but that’s again, there’s a lot more work to do before we F we feel confident in those conclusions.

Sunny: even though our target block gas limit is 15 million, we have to make sure the network is capable of running 30 million gas blocks for a reasonably extended period of time. I, in a way doesn’t that imply that the network’s true potential capacity is 30 million gas per block. But then, when the system’s in equilibrium, we basically are only spending 15 million gas and isn’t this like pricing out half the people cause we just artificially reduce the supply of block space to like half.

Maybe if we, yeah here’s this min fee base fee that we’re all getting in and we’re filling this up at 15 million and this is a nice equilibrium, but there’s all these other people who’d be willing to pay maybe like $10 less. There is technically capacity that the network could handle them, but we’re just not letting them in now.

Tim: Yeah, no, that’s a good question. The motivation in the thinking is that someone can take a step back and just ask what criteria we should use to decide on. Let’s take the current version, where there’s just a single block size, and you could say what are the criteria by which we should set the current block size and clearly bigger is better in some respects.

You accommodate more transactions, you’re going to have lower prices. There’s certainly reasons you’d want bigger block sizes. What’s pushing in the other direction. It’s basically two things. One is just kind of technical capabilities just say have the peer to peer network that’s being used. This a certain amount of, because there’s this block rate of 13 seconds.

Nodes have to be able to keep up. They need to be processing faster than every 13 seconds and including the communication that’s required. Then also people in the Ethereum community are very concerned about forces towards centralization. There’s a concern that the block size was so big that you needed a really serious machine to keep up with the block rate, that would be insufficiently open.

That’s something different communities could disagree on and I think we even see different decisions being made by different blockchains in that regard, but in Ethereum it’s part of the culture that you anybody should be able to run a node with pretty minimal investment.

Those are the things that are pushing back on the block size from above. If you think about those forces, you kind of realize that’s really governed more by the average rate of data creation as opposed to the peak rate. It’s definitely true that if you had a machine that couldn’t handle a 30 minute 30 million block in 13 seconds, if it needed like 20 seconds for that, it would fall behind.

Then again, it’ll catch up. Cause again, any 30 million block is going to be compensated for, by some less than 15 million blocks later. Again, I mean the base fee adjustment is going to ensure that if you look at a window of 10 minutes or something, the amount of the amount of data that was generated th that some of the block sizes over a 10 minute period is going to be almost exactly the same as 15 million times the number of blocks.

Friederike: That’s true if you’re just syncing the network. But then if you’re trying to run a mining node or something, that’s clearly not okay. Cause then if you’re like mining or you’re doing something super mission critical. You want to be at the tip of the chain as much as possible,

Tim: But it wouldn’t be the end of the world. Maybe think less of miners and more about just people running notes. I think there’s this openness aspect. It’s probably both, but I think in particular someone who wants to be altruistic and just kind of help out Ethereum by running a node, you obviously want the barriers of doing that to be as low as possible.

People argue about what the block size should be? The old arguments were about the maximum block size, the new argument’s going to be about the target block size. You can also argue about the 2X multiplier for that matter, but I’d say the way to think about EIP 1559 is just set the target block size as high as you can get away with.

Meaning subject to the bandwidth at the network that you’re using and subject to the centralization risk you’re willing to tolerate. Then whatever that is, EIP 1559 just layers on this extra flexibility where you can borrow block space from the near future to bring it into the present, if there’s an urgent need for it. That’s how I think of it.

So go ahead and max out the target block size as high as you can get aWEI with, and then further exploit the fact that if you think about it really what’s constraining, the choice of the target block size is really all stuff about average throughput, not maximum throughput. Then use that as the variable as the on chain signal for whether the demand is high or low,

Sunny: Where do we land on this 2X number? From my understanding, it seems that the reason we need a max limit above the target limit is because without that, there’s no ability to detect when demand is higher. Why can’t we say let’s aim for like 90% full blocks and by full, I mean, as opposed to like the max block size and every time the block production, the block fill is like greater than 90%. That’s when we start to increase the fee. Why does it have to be 2x?

Tim: Yeah, I wouldn’t say it has to be. I discuss this in the report, it’s a 58 page report, somehow parts of it slipped from memory a little bit, because you can also definitely say, why not go above two? Right. The benefit of going above two would be you have even more flexibility and sorta temporarily increasing block size to absorb short-term demand spikes.

Sunny: Personally, I tend to see the max block limit as the more important limit from a protocol perspective in the sense that we fundamentally can’t let the gas block limit get to like a hundred million. Otherwise now even mining nodes won’t be able to keep up. I feel like that is kind of why, in my opinion, has to be hard coded, this is our no-go limit. We fundamentally can’t put this higher, and then the target limit it, we can choose what percentage of that max limit do we want the target to be?

Tim: I’m going to refer the audience to section 866 of my report. I could just read it here, but that feels kind of boring. As you say, there needs to be some cap. Obviously infinite sized block everything, everything would halt, but I don’t know. Both are important. Both what is the target box size and what is the, and in fact, I mean, I know some of the teams did stress testing where they really took a test net copied over all of the state from main net and then simulated 2x blocks for some period of time.

I mean, so definitely people were concerned about this, but the tests all went well. I mean, one of the things, I mean, one side point, I mean, anecdotal evidence that burst should be is that I talk about the block rate being once every 13 seconds, but it’s really a plus on process by the nature of the proof of work mining. You will actually sometimes have one block very soon after another one.

You will sometimes have say a few minutes where you produce twice as many blocks as you would have expected that’s going to happen once a week or something like that. It doesn’t really seem to be a big deal. That was another thing that gave people comfort that at least 2x one could handle. I could imagine going more. I do think things like the cost of running a node, et cetera. I think those are good for setting the target block size and then especially ratios bigger than Two I could imagine.

I think that’s worth keeping in mind. That might be a nice aspiration point because again if the ratio is bigger than two, that means it’s even more rare that you’re going to be in this situation where you have that just a base fee that’s way too low. It’s even more of the time you’re going to have room for everybody. No, one’s going to have to worry about the first price auction. That’s what’s nice about the ratio being bigger than two is the extra flexibility you have to accommodate a sudden demand spike.

Sunny: I guess I was more interested in the opposite. I wanted it to be maybe only like 1.25, because that way it’s like at equilibrium, we’re still running at the majority 80% of our max limit.

Tim: But wouldn’t that assume that the variability in demand is very low.

Sunny: Well, that variability would just have to be pushed across multiple blocks. That’s the same thing that happens now. I guess one thing is when we see spikes in demand on Ethereum it’s more than a 2x spike in demand. Usually the spikes and demands are in the magnitude in the MIBI it’s auction at the end this demand on block space just went up like 10 X or something. No matter what I think during demand spikes where we’re usually going to have to spread that demand over multiple blocks anyways.

Tim: Yeah. Just looking back at my report now. One thing that comes up as kind of a subtle point, but if you use less than 2x, 1.5 or something like that, I don’t think it’s the end of the world, but it interacts a little bit badly with the game theory around cartels of miners, trying to manipulate the base fee in the sense that what there’s certain attacks, which would require 51% collusion to pull off with the 2x ratio, but would require only 34% of the hash rate with a ratio of 1.5. I mean, you have to make a decision. That’s one thing that’s nice about the 2x is just convenient as the update rule is then very symmetric.

The specific update rule is after a double full block, after 30 million blocks, you increase the base fee by 12.5% after an empty block, you decrease the base fee by 12.5%. If you don’t if you have asymmetric deviations around the target. With 2x, you can be either 15 above the targeting would be 15 below the target. You can just have this completely symmetric kind of adjustment function. If you only go, if you can go down to zero, but you can only go up to say 22.5, you can only go 50% over.

Then you have to make a decision. It’s kind of am I going to increase? I should have said in the current proposal, you literally interpolate between the two. If you have like a 25 million block, you would just linear and interpolate between the zero and 12.5%. These pro-rata up to the block size. If you made an asymmetric, you’d have to decide, okay. If I see 1.5 full blocks, which is as full as they can get in this scenario, do I again, increase the base fee by 12.5% or do I just increase it by 6.25%?

If you only increase it by 6.25%, maybe that’s now all of a sudden, too slow. Other hand, if you do increase it by 12.5%. Now, all of a sudden the cartel of miners that control more than a third of the hash rate, they can now manipulate the base fee downward by publishing empty blocks. They, as long as they can make one out of three blocks empty, that’s going to be enough downward pressure to get the base fee to drift downward. Whereas if you have the symmetric case for the 2x ratio, you’d actually need to, the cartel would need to get really 50% of the blocks to keep the base fee from rising up through to the non colluding miners.

I don’t know, I don’t think this is deal breaker stuff. I agree with you. I mean, there’s not this, I find that the partitioning of it you have the target and then you have the multiplier actually find that partitioning of things very helpful, because I do think so much of the decision-making is just around kind of the average block size, but I definitely agree the multiplier you could imagine iterating with, as in a post 1559 world, you could imagine that being a parameter that gets revisited every hard fork. For example,

Friederike: That’s one aspect that gets talked about too little. I’m wondering whether you feel this is a side issue as well. Basically a couple of years ago, I remember there was this upheaval in the ETH community when people realized that in principle, you could actually abstract Ethereum away. Basically in principle, you could pay a miner any way you choose to get them to include you in the block. Right? So basically in principle, you can PayPal them, the fees, you could kind of set up an agreement that they have to include X number of transactions from you per day, and you can pay them indirectly via MEV, which we actually see happening a lot right now. We see a lot of zero gas transactions being included. This with 1559 completely changes. Basically in principle, the miner could make up the base fee for the user. I could maybe still transmit as a zero fee transaction, but someone has to pay in Ether because that ETH is going to be burned. How much of that was intentional and how much was this narrative of making the fee market more predictable and the usability for the user better?

Tim: Yeah. I mean, in some sense, this is really just, you should just ask Vitalik this question directly, but my guess from what he was writing about these ideas as early as 2014. From reading his early writings on it, and also just some discussions with him, my guess is that the origin story is I said, where really the goal was easy fee estimation fee burning came out as a side product, the game theory dictated fee burning.

That took on a life of its own. I mean, one thing that’s interesting is a little bit of aside, but I mean, so for people who are fans of the fee burning aspects. A very natural question would be why not just what’s the, let’s just throw out all this base fee stuff. Like people will do MetaMask is fine. let people deal with it. Well, let’s burn half the fees set and keep everything as it is right now, but let’s burn half the fees and let the miner keep the other half. But the problem is that totally doesn’t work.

Because of off-chain agreements, the miner and the users can basically, all the money that’s supposed to go to the protocol, they can succeed off-chain instead of keeping it for themselves. How would that work? Basically, all the users would just submit zero bids on chain, they’d submit whatever bids they want to the miner off chain, and then the payments would all occur off chain. There would be no burn.

What’s kind of amazing is, I do think these are the two biggest things about easier fee estimation and fee burning. What’s kind of amazing is how really you can’t have one without the other. Choose both or choose neither. They’re really inextricably linked and different members of the community some care more about the UX, the user experience issues, others care more about the tokenomics, and that’s fine, but really I think that’s, I mean, this is part of, why it’s a scary change for a lot of people, cause it’s really changing the economic model of Ethereum in a major way.

I think this is one of the reasons that despite the fear that people naturally have about making a change of this magnitude, they were really two totally orthogonal reasons for people to get really passionate about it. I think that’s really broadened the base of support, but to really agree.  Just because we’re in a bull market or whatever, but I mean, I do feel like I hear more about the fee burning slash tokenomics aspect in the last month or two, than I hear people talking about the UX user experience improvements.

Friederike: And I mean, the fees have become much more dependable ever since MEV gas has the majority stake of other clients. Basically we haven’t seen the crazy spikes that we’ve had in the past year or so

Tim: Things have been calmer. Yeah. It’d be interesting to know how, I mean, the block size also went up that probably helps them, but yeah, presumably flash bots, et cetera, is a major part of it.

Friederike: Well, let’s talk about collusion. One of my favorite topics. Yeah. In principle, the miners could collude to drive down on the base fees right to zero and have the majority of the value go to the inclusion fees or the tip fees instead. Basically if miners mine a block over 12.5 million gas, the base fee would just continuously drop all the way down to zero. For that, you’d only need like 50% of the miners.

Tim: Right. Collusion. It’s tricky to speak very formally about this, but I can tell you the approach I took on the report. Basically what I argue in the report is that, trying to collude in these kinds of ways, the forces working against miners are as strong post EIP 1559 as they are now. It’s not to say it’s impossible, but I think the fact that miners collude only in very limited ways now suggests that they will continue to collude in only very limited ways afterwards.

Let me just talk a little bit about the status quo. This is important to understand, so point number one. First of all, you might say could miners even collude at all? Maybe it’s just hopelessly decentralized and it’s just not feasible. If you look at kind of like how the block size changes get made, it appears that at least the major players in the Ethereum mining community are able to coordinate to some degree. By figuring out when the block sizes should increase.

That’s interesting. Right? So it seems like when they want to, they can roughly coordinate to have something, to make a persistent change to how things work. The question then is why don’t they use that ability to coordinate, which they apparently have to do other things and, who knows, but my speculation is that, okay they’re managing the block size and they’re managing of the block size in a way that’s quite plausibly really helpful for the Ethereum community.

Like they’ve never changed the block size in a way where it was obvious it was just in their interest and against the interest of other Ethereum stakeholders. Now w when miners increase the block size, they can be doing it for a few different reasons. One reason would be just because they want to make more fees. This again is going to depend on the plasticity that we discussed. But you could imagine that maybe if it’s pretty inelastic. Then when you increase the block size, you’re just gonna be making more transaction revenues.

That’d be a self-interested reason why miners might want to increase the block size. On the other hand, if you thought it was more elastic, as they know, we’re trying to do everyone a favor, we’re willing to work a little harder and all of you will get lower gas prices. It’s in the benefit of the community. I’m not sure how you would assess which of these is dominant. But the point is it’s a type of collusion, which is very powerful. Cause it seems to be for the long-term health of the Ethereum network.

Friederike: Long-term health of the Ethereum network with EIP Two looming at the horizon for the mind, basically the miners will be excluded anyways. Basically their loss is kind of bounded. Is this a good time to put them with their backs to the wall?

Tim: Yeah, no, that’s a fair point. I have to say, when I wrote this report, it was before people started talking about moving up the merge. At the time I was writing this report, it seemed like there would be a more non-trivial window where you’d have both proof of work and EIP 1559. Now it’s looking like that window. It might be shorter. This is the conclusion that I come to, in the report. I basically say the difficulty of persistent collusion by miners is the same.

They may be newly motivated to actually overcome the barriers that are there. You could imagine that, I mean, you can imagine a kind of almost like a kamikaze exit right. Where they, like you said, it’s we have very little to lose. We have three months to get whatever we can get. You could imagine them trying to just have a fork which doesn’t have EIP 1559 and trying to get people to use that again. I think that won’t be easy.

Cause as soon as you have a stable coin saying Oh, it’s no, it’s only the assets on the 1559 fork that our act that actually kind of are backed by our assets. As soon as some major stable coin picks a fork I just don’t see any, I don’t see how you could have a significant alternative fork that almost has serious use. I don’t know. I mean, it’ll definitely be interesting to see how it plays out.

Yeah. I mean, that’s all I can say is, I don’t think there’s no new attack vector, I would say really around collusion that 1559 introduces, however it may make attack vectors, which were previously reviewed, regarded as not worth it. They may be regarded as worth it, because it’s just, as you say, you’re only compounding your interest over a very short window at that point. That’ll be interesting to see. One thing that I think is clear is that I feel like the Ethereum community is pretty mobilized to minimize whatever the chaos is going to be.

I think there’s a lot of awareness that this could happen. I think my sense is leaders in the community have contingency plans. In some sense, I’m not deeply worried that there’s going to be a month where it’s unclear which fork you should be using. I think this is an implausible scenario.

Sunny: Are there not collusion attacks though? That can be done too. I guess part of what you’re suggesting is that there’s certain social norms and taboos in place to prevent collusion. But I feel like what we’ve seen from many of the miners in the last couple of months is that they don’t see that acting against 1559 as a taboo to them. They are ready to put in the work to try to prevent it. Aren’t there like ways that even within the 1559 paradigm miners can collude to basically undo the effects of 1559, at least the ones that they care about, which is the fee burning?

Tim: Right. That’s so good. I guess I was talking more about extra protocol collusion, which I kind of view as the more serious that’s more of the doomsday scenario, I would say. For, in protocol collusion. Thanks for bringing me back to that. I mean, so here’s an important point, which is that right now. There’s a form of collusion that miners could do that it’s conceptually not hard for them to do. Depending on what the demand looks like, there will be periods of time where it would be in the miner’s interest to artificially decrease the block size.

Instead of using 15 million use 10 million so that they can squeeze higher prices out of the transactions that are willing to be that are willing to pay for just being in the smaller block. Revenue is price times, quantity. As you decrease quantity, the price goes up. There will be situations where Q goes down, P goes up and the product, the revenue actually goes up. That’s so that is something miners could do right now.

This is the example where they get together. They say, no one is ever going to accept a transaction with gas price less than 60 WEI. They could totally do that. They would probably make more transaction fee revenue if they did that, in a way that was informed intelligently by design. They don’t, as far as I know, and I don’t really want to speculate why they don’t. I mean, you can imagine it’s just too hard to pull off logistically.

You could imagine that they’re worried that they would, it would, people would notice and that from the Ethereum community, you can imagine that they’re, they don’t want to hurt Ethereum. Cause that’s what their business relies on. to me, that’s all kind of… the facts on the ground are they don’t try to artificially impose this limited supply to revenues. For whatever reasons they don’t do that.

Given that they don’t do that. I mean, there are these shenanigans you can do to the base fee after 1559, but none of them are any easier to pull off than the one I just talked about that you could do now. Okay. About imposing a smaller block size. They’re just kind of variations of that same idea. Now maybe you’re keeping the block size down, not so much to boost the immediate revenue P times Q, but more to like get the burn to go down, but it’s really the same thing.

You are basically asking miners to make a short-term sacrifice. In the short term, as a miner, you have to give up tip revenue or fee revenue that you’d otherwise get by packing a block full. You’re being asked to sacrifice your own fee revenue for the good of the collective of miners. That’s what the game theory looks like. It’s basically game theory, you would call this multiplayer prisoner’s dilemma game.

If you have a repeated prisoner’s dilemma game, one thing that’s interesting to think about is whether the participants can sustain cooperation over time and anecdotally, it appears that miners have not been able to, or not been willing to sustain that kind of cooperation over time for the obvious economic manipulations you can do now.

I don’t really see a reason why they would start doing that after 1559, except again, it’s possible that they would, it would just change the equation. If they just felt under attack, well, it’s going to be a real pain. It’s going to be very harmful to Ethereum to do this stuff. But all of a sudden we don’t care anymore. Now we’re going to do it.

Sunny: One is like the social norms have changed. But the other is also that like artificially decreasing the block limit today and Ethereum, it has this negative effect on the network, but I feel there’s like collusion attacks in 1559 that don’t actually have a tangible impact on the network. The one that I’m thinking about specifically, and tell me if this attack even makes sense.

I just thought of it just a minute ago while you were speaking about what if miners go ahead and like we spend one day just like trying to push the base fee as low as possible. Right? All we do then, miners agree to alternate blocks between being 30 million gas and zero gas. Every other block is empty and the, every other block is maximally filled.

Now we ended up still keeping our average 15 million target rate. We but we kept the base fee low. We’re preventing the base fee from going higher. This didn’t impact the network because 1559 is supposed to work at equilibrium, we’re still making, on average, 15 million gas blocks. In this version, you’re also making 50 million gas blocks, but now the majority of revenue is going to miners instead of being burned. I feel miners might not see this as a negative because it doesn’t seem to be having a negative impact on the network. They might not be so dissuaded from doing it.

Tim: You’re going to get different opinions between miners and holders on this point. I mean at this point the tables have turned and maybe at one point some miners felt that the transaction fees were rightfully theirs. I think now with 1559 actually really happening in just a matter of months, and everybody’s so excited about it and who knows if that has something to do with the price spike or not recently, but it’s no doubt a lot of Ethereum holders now feel actually like those, the base fee revenues is rightfully theirs. I don’t really see, it’s hard for me to envision any attack along those lines that would not be neutrally viewed by the majority of the Ethereum community.

Friederike: There’s also talk of not burning the fee, but actually redistributing the fees to other miners. I mean, from a game theoretic perspective, it’s important that the fee not go to the miner. He has the dictatorial say on which transactions go in it and in which order, but in principle, the transaction fee could go to miners of different blocks, or whatever, this was abandoned at some point. Why was it?

Tim: Yeah, that’s a good question. I wonder that myself and there’s been a little bit of, that’s just something I highlighted in my report. I call it the pay it forward, or L smooth mechanism I specifically was proposing paying the basically revenues forward to miners of future blocks when you said exactly correct. All the game theory tells you to do is give it anywhere other than to the miner of the block. It could be a past miners future miners, whatever.

It’s a good question. From an implementation perspective, burning is the simplest, and I can’t imagine initially that was the proposal. I don’t know. Just because let’s start, this and like let’s acknowledge or these more complicated things we could do if we bought it, presumably somewhere along the lines were sold on this a new tokenomics that the fee burning version would introduce.

I think probably I said, I mean, there’s just a lot of community enthusiasm about the tokenomics change. At this point I can see why it’s not getting a lot of this point. Part of it is, it’s just another thing is you can interpolate between these two mechanisms. This is, again, something that could be revisited if necessary in future hard forks. You could say, Oh, actually let’s go ahead and pay some of the base revenues forward and burn 75%, again, long as none of it goes to the current miner.

What’s amazing about this. people talk in vague terms about like Ethereum holders and miners and you can stakeholders and trade-offs between them. Actually in this family of designs, there’s actually this extremely explicit knob, which you can turn to decide exactly how much you want to favor the holders and how much you want to favor the miners. Which is just what fraction of the base of your revenues get burned that favors the holders and what fraction gets paid forward that favors the miners.

I just view it as up to the community to decide what is the right value for that parameter? I think it’s something that is worth revisiting periodically in the future. Even assuming that the burned version is what gets incorporated right now.

Sunny: What are some alternatives to EIP 1559? EIP 1559, probably one of the most popular like algorithmic fee policy systems. But I know there’s other ones as well. I know the GORUCK team had one called the escalator algorithm that I think was turned into another EIP. Then I know the goon from the avalanche team. He has a paper, which I think you referenced in your paper as well. Have you looked into some of these alternative systems and how do they compare to like 1559? And what are some of the trade-offs between them

Tim: I have looked into the two that you mentioned. There’s certainly other ones that I have not really thought about, but to your question, the escalator algorithm, so just to explain what this is imagine you submit a transaction and it hangs, and then you do replace by fee or use MetaMask to speed it up or whatever. Then imagine you keep doing that until finally it gets included. You can imagine an actual person doing that. Their algorithm is really just taking that strategy and implementing it programmatically in protocol.

It can be amended with 1559 or just by itself. Let me describe how you do it by itself. Currently all you specify is a gas price, a single gas price, and then if you want to modify it, you have to kind of resubmit the transaction, et cetera. The escalator algorithm that you would submit more parameters and the suite of parameters would specify a whole schedule for how your transaction would bid in the coming blocks.

You would say something I want to get in somewhere in these 20 blocks I’m willing to pay as much as 50 for the first block and I’m willing to pay up to 100 kind of eventually, and then it just, and then hard-coded and escalator, is it linearly interpolate between the beginning point and the end point. That’s reasonable. There’s a general question, which is if you’re going to have a system which needs bidding sophistication first price auctions, how much of that sophistication should be in protocol versus out of protocol.

Basically the escalator album is moving some of what had been complexity from users and then again, making it programmatic. One tricky thing about doing that is it’s hard to know that from the user perspective. I mean, it’s not clear that this makes it easy for you to reason about what gas prices you should submit. Cause like in a first price auction, I have to reason about what other people are bidding.

With escalator, maybe I want to reason about not just what other people are bidding, but how rapidly their bids are going to be increasing in the near future. Which somehow that’s an even greater cognitive burden on me. It can go either way, I’d say, and then the way you would layer it on top of 1559 is you would use escalator just for the tips. The base fee would still be exactly as it is now, but you could say, Oh, rather than having users submit a tip that actually submitted a tips schedule.

If 1559 does what it’s supposed to do, tips will almost always be irrelevant. The escalators shouldn’t really be necessary. I think it’s in general, it’s a reasonable idea ask the protocol to do some of the strategizing on behalf of the users. But if you care about the easy fee estimation, I mean, one should notice it doesn’t help, or it certainly doesn’t help as much as 1559 does. Without 1559, you’re still fundamentally in a first price auction. The fact that you’ve given me a bigger vocabulary to articulate a bidding strategy, fine, but it’s still a first price auction.

Now the other one by Emin Gun Sirer, along with David Easley, and I think Maureen O’Hara and Soumya Basu is the first author. Yeah. They had an interesting proposal also, which includes a variance of the pay it forward idea. There’s a bunch of aspects to their proposal, but the most relevant for me now is that they were proposing fees for a given block would be split between the miner and future miners. There was some parameter K, and basically if you mine a block, you’re going to get a one over K fraction of your fees.

Then you’ve got to one over K fraction of each of the previous K miners one blocks. It came one over K fraction of your blocks fees will be paid forward to the next K miners one miners. The issue which this doesn’t discuss, I do think is a significant issue is again, this off-chain agreements offer an attack vector. I’m a miner, right, why would I want to give up 1/k fraction of my revenues. I’m happy to collect whatever I got from the past. Right?

I’ll put that in my pocket no matter what, but let’s just focus on who showed up at my block right now. I’m going to ask them to submit bids of zero on chain and submit the real bids off chain and just pay me directly. Then To deprive the next, came on as when miners have this transaction fee revenue that they deserve. There’s definitely a bunch of ideas in there that I but I do think that’s a flaw and maybe it can be fixed, but I haven’t seen a proposed fix at this point.

Off-chain agreements really pokes a hole in a lot of designs. I studied a lot of traditional auction design and mechanism design. That’s one of the reasons you cannot just look up in an auction theory book. It will not prescribe solutions in a blockchain setting because of all this idiosyncrasies.

Traditionally you think of the person that there’s some trusted third party running the mechanism. Or you think that the seller and buyers are competing, not like colluding with each other to mess up the mechanism. It’s just a totally different set of constraints, which is what’s scientifically super interesting because it’s just like these very basic problems have not been, have not been solved before.

Sunny: One thing I was thinking about when you mentioned the escalator algorithm, some like a UX thing I was thinking about earlier was can I just say, so let’s say the currently the base fee is at 50 WEI and I want to go ahead and submit a thing at 50 WEI, but then at the very next block it happens that it’s like Oh, shoot, the base fee just went up to 55 WEI or something, but maybe that’s okay for me. Is it possible for me to just say, you know what, I’ll accept any base fee that’s in the next 10 blocks. Cause the protocol kind of guarantees me. The base fee is not going to spike to like a thousand WEI in the next couple of blocks. Can I just say, Hey, I don’t want to put in a numerical value. I just want to say, I want to pay whatever the protocol based fee is.

Tim: Yeah. Good question. I’m glad you asked it. Cause there’s something I should have explained more clearly about how 1559 works actually. I talked about how you pay a base fee and then you pay a tip. Base fee is, burned the tip goes to the miner, but I didn’t actually talk about what the user submits with their transaction. It’s actually a little more complicated than now. Now you just submit the gas price, but under 1559 you submit two parameters.

There’s the tip which we discussed, that’s the payment to the miner. But then you also submit what’s called a fee cap, which is really just like the maximum amount you’re willing to pay. That’s what’s nice about it, so in your scenario you would just set a fee cap extremely large, and then you wouldn’t worry about it.

This is now starting to feel a little bit like a second price auction or so proposed price mechanism, which what’s nice is like even if you were willing to pay a lot and you can go ahead and tell the protocol, you’re willing to pay a lot, but again, programmatically in the mechanism, you will only pay what you need to pay, namely the base fee. Plus the tip.

If you set the tip really big, you’re going to pay a lot, no matter what the tip, you will always be packed, but a big fee cap will only hurt you when the base fee is really big kind of slippage bounds on Uniswap or something like that. Yeah, roughly.

Sponsors

  • Exodus

    Download the app today at exodus.com/epicenter and iOS users can buy up to $500 in Bitcoin for just $1 for a limited time.
  • ParaSwap

    ParaSwap aggregates all major DEXs and makes sure you beat the market price at every single swap and with the lowest slippage - paraswap.io/epicenter
  • Solana

    The Solana ecosystem is growing at a rapid pace and it’s a great place to build your project or get involved with the community. Go to solana.com/epicenter to learn more.

0:00:00 | -:--:--

Subcribe to the podcast

New episodes every Tuesday