EIP-1559: Fee market change for ETH 1.0 chain

Interesting reads, thanks.

I suspect that this form of attack (or shall I say abuse, intentional or not) provides a counter-example to the thesis that this proposal is incentive-compatible for users. Tim Roughgarden has a proof for its user incentive-compatibility in page 27 of his article, however his proof is local to a single block, so it doesn’t consider the possibility of a user maximizing their utility by not submitting the transaction and waiting until the next block if they can determine that the base fee is decreasing due to blocks being under-full.

Ironically the strictly delayed price impact that makes this attack particularly profitable (even in a relatively stable market close to the steady state) seems to be intended to make the pricing mechanism incentive-compatible for miners (there’s plenty of commentary about this in Tim’s article as well), so this seems like a case of inadvertently giving users a tool for price manipulation while trying to prevent miners from doing the same.

That means that there is a theoretical benefit from the delay but I think that it also comes at a cost of economic efficiency. Suppose that the market is initially near equilibrium with a base fee close to its optimal market-clearing price (call it p0) when the network is perturbed with a double-full block added to the blockchain at time t0, causing a temporary price impact lasting between t1 and tn, at which point the base fee drops back to within some arbitrary threshold dp of the previous equilibrium price: In such a scenario a total of ~12.5M gas capacity of the blocks between t1 and tn will have been auctioned off at p0, displacing ~12.5M gas worth of users with higher marginal utility of the order of p0+dp – An example of economic inefficiency.

I don’t think that’s inconsistent with @vbuterin’s argument justifying the economic efficiency of this pricing mechanism in his article. His argument seems to be mostly concerned with this mechanism being efficient on the average (e.g. the average cost paid by users approximating the average social cost born by the operators of the network). However a pricing mechanism may seem to be efficient on the average while remaining highly inefficient locally if you focus on any specific case, e.g. if the price paid by different users is largely disconnected from their share of responsibility in the social cost of running the network, or if the revenue obtained from users is disproportionately distributed to speculators (through the base fee burn) instead of to the individuals actually bearing the cost of running the network.

I understand that the initial intuition behind this delay was that the current block producer cannot manipulate the base fee. However, this brings me to another suggestion. Why should we design the system in such a way that miners detest the base fee and then make other design decisions in order to protect this base fee from their manipulation?

1 Like

NEW UPDATE on EIP-3416 (Median Gas Premium):

Simplified so we can add these changes after/with EIP-1559, so we can include the needs fields, so can be included in the following fork. Technically, even if we are not fans of the wallet changes, our EIP can be added on top of EIP-1559 as the two improvements: Premium Pricing and Base Fee calculation.

1 Like
maxInclusionFeePerGas
maxFeePerGas

are u256 ?

Yes, 256-bit unsigned integers. There is a practical limit at the current total supply of ETH / 21000 (the current cheapest transaction), but that number is complicated/non-trivial to calculate so there is no consensus level hard cap.

If miners feel less profitable, they will switch to other coins. Without enough miners, ETH is dangerous. That’s the biggest risk.

2 Likes

One image…

can we rename gasTarget to gasLimit and reevaluate all formulas in the eip paper with gasLimit instead of gasTarget.
then we need to specify what are the values of
gasLimit (gasTarget) and baseFee of the first eip1559 block.

There is a pull request out to make the value in the block header be gasLimit. It sounds like almost everyone is in agreement with it, though we need to figure out how to deal with miners who have set --gas-limit to 15,000,000 as we don’t want the block size to cut in half shortly after the fork (which is what this change will do if we don’t do something about the CLI parameter).

gasLimit of the first block will be 2 * gasLimit of the parent block.

This is already defined: the parent_block of the fork block is assumed to have a base_fee of 1,000,000,000, and the first 1559 block will then have a base fee calculated off of this.

It is worth noting that I believe at the moment every client implements this incorrectly. :confounded:

Hi everyone. What if we use the basefee as a means to incentivize the miners to future hard fork activity?

Fee volatility is due to the fee bidding war. And it seems the progressively growing basefee would do the job well.

The focus is on where the basefee goes. Burning it seemed like a good way to keep the incentives of multiple parties since ‘nobody’ gets it.

But what if these basefee could accrue in a ‘bank’ and this amount is used for the miners(and validators) for the future protocol upgrades? The basefee accrued could be evenly distributed to the miners once the hard fork is done as the general ethereum community intended.

This could work as an incentive to align and organize the overall miners whenever there is a hard fork.

If there is any MEV opportunity available, it’s gonna happen anyway. So 1559 doesn’t fix this. Only slows it down.

How I see is 1559 isn’t mean to punish anyone or hurt anyone’s opportunity to, let’s say, profit. If the basefee, which is meant not to be used as a cause of deviation, does the job well for keeping the fee volatility within a predictable range, this could have more utility if it had other uses.

The protocol can mint coins freely, so if we need to incentivize some particular behavior in the future we can just mint to achieve that. It is generally better to keep each mechanism design separate and not co-dependent when possible.

Thanks for bringing this up, I think it should get a lot more attention in light of the many efforts in the community to lower the barriers to entry for users.

Hi everybody,
Sorry, I didn’t read the 373pages of comments before posting, but I thought this is important for u to discuss(apologies if someone already mentioned it before)

1-I know u r familiar with Tim Roughgarden report, but here’s another paper with Simulation studies (one of the 4 authors is from the Ethereum org)

From a fast reading of the paper, they emphasize:
A)-The impact of the pool eviction policy ( which I believe contradicts with their 1st assumption that a non chosen TX is considered just a new arrival for next block; what about analysis which will wait, which will increase Fee cap, which will donate secretly to miners & that’s a black market I don’t know if u discussed the prob of its existence even in bitcointalk which is pure POW I found someone asking about the donation details)

B)-The uniform distribution of fee caps in a given interval, so u know better than me if this is possible or users will tend to imitate each other to get a better chance by “going with the flow & doing what everybody do”???


“The previous convergence results critically depend on the provided thresholds. If the step-
size exceeds these bounds, then the base fee adjustment rule may lead to chaotic updates.
As mentioned above, these bounds depend on the number of arrivals, λ, and in the range of
valuations, w. If λ increases or w decreases, i.e., if the system becomes more congested or if the
valuations become more concentrated around a specific value, then the thresholds go down and
a given step-size may not be enough to guarantee convergence. In fact, as we will show, for any
step-size, there exists a (reasonably large) λ and a (reasonably small) w so that the dynamics
become chaotic.”
.

For more remarks, and also Tim Roughgarden replies to what is said about Deflation, check

Summary of EIP-1559, base fee dynamics, what to look for when EIP-1559 launches, and interesting question & answer session by @timbeiko @barnabe @MicahZoltu

I am reading EIP-1559 and come here to argue the point which was dismissed as absurd:

It’s absurd to suggest that the cost incurred by the network from accepting one more transaction into a block actually is 10x more when the cost per gas is 10 nanoeth compared to when the cost per gas is 1 nanoeth; in both cases, it’s a difference between 8 million gas and 8.02 million gas.

The price does not represent the cost incurred by the network. So this argument is irrelevant in the EIP discussion.

no one significantly gains from the fact that there is no “slack” mechanism that allows one block to be bigger and the next block to be smaller to meet block-by-block differences in demand

Miners gain.

The above two points do not contribute to the argument and they are invalid, so I recommend they be removed.


The EIP text uses prescriptive and descriptive language. Please incorporate RFC 2119 and use uppercase keywords everywhere as required therein. See EIP-721 as an example of using RFC 2119.

Specifically, a sentence like “Miners should still prefer higher tip transactions over those with a lower tip, purely from a selfish mining perspective” is ambiguous in a specifications document. Please consider to uppercase SHOULD and define as above.


I recommend removing the words “Ethereum’s long term monetary policy” from the EIP. Maybe use “Ethereum’s long term token quantity policy” or something else.

The Yellow Paper does not recognize Ether as “money” nor do statements made hitherto by the Ethereum Foundation. (There are mentions of “money” that is “on” Ethereum [Mainnet], and that is a different thing.)

Because “money” has a specific meaning, that specific meaning has relevance for regulations in many jurisdictions, and because of estoppel, please remove that incorrect/unnecessary part from the EIP.

I believe that is the point of the quoted text, to make it clear that at least some portion of the gas price doesn’t have to do with operational costs, but instead with competition for limited space. This could perhaps be reworded to be more clear about the point it is making though.

I think this point is worth keeping, but I agree it could use a rewording for clarity. I believe the point the quoted text is trying to make is that the Ethereum ecosystem and its users do not benefit from a lack of block elasticity. Miners (service providers) do benefit from inefficiency here, but our goal is to build the best system for our users, not our service providers.

I don’t think that RFC-2119 SHOULD is appropriate here. The quoted section is from the Security Considerations and it is not citing a recommendation, but instead is using the word should colloquially as a way of saying “we expect miners are rational, and the rational thing to do is prefer a higher premium”. (side note: we should fix the word “tip” in there, as it has been renamed to “premium”).

PR to fix tip wording: Renames `tip` to `gas premium` in non-normative content. by MicahZoltu · Pull Request #3657 · ethereum/EIPs · GitHub

PR to fix money wording: Remove request for regulators to shut down Ethereum by fulldecent · Pull Request #3658 · ethereum/EIPs · GitHub

@editor-Ajian is correct to point out that the basefee is essentially a tax on transactions. But the tax can improve welfare if it is a Pigouvian tax designed to correct for negative externalities of larger blocks. Also, one may argue that miners’ supply of block space is perfectly inelastic as long as they are compensate d for uncle risk, and that the risk is linear in gas used in the block. Hence, even if the level of the tax is higher than what is necessary to correct the externalities, it can transfer MEV from miners to the protocol (i.e. ETH holders) without causing much distortion or hurting the users of the protocol.

The fundamental issue with EIP-1559 is not that it introduces a tax, it is who the tax is levied on. Under the current format, the users who use the protocol after it has been congested pay higher basefees. As pointed out by @STAGHA, this is akin to making night drivers pay a higher toll because the road was congested during the day. This mistargeted taxation is unfair, causes congestion, and intensifies gas auctions. It fails to address the negative externality that a Pigouvian tax is supposed to internalize. In fact, I am a bit surprised that this was pointed out more than two years ago but has not led to a wider discussion.

When a block is congested, users of that block should be the ones paying the fee. Let me reproduce below my post on ethresear.ch that describes the problems of EIP-1559 in more detail and suggests a preliminary model for an optimal fee design.

The Problem

EIP-1559 will introduce a protocol fee on Ethereum transactions and allow the block size to be dynamically adjusted in response to congestion. Charging a protocol fee when the chain is congested is an efficient way to shift MEV from miners to ETH holders without hurting the users. Also, a flexible block size makes the allocation of block space more efficient. However, under the current fee structure, the wrong people can end up paying for congestion.

Suppose there are two blocks, and we target an average block size of one transaction per block. There are two users, Alice and Bob. Normally, Alice sends one transaction in Block 1, and Bob sends one transaction in Block 2.

Now, suppose Alice receives a shock and wants to send two transactions in Block 1. EIP-1559 allows her to do so; as long as she pays enough to compensate for the increased uncle risk, the miner will include both of her transactions in Block 1. This is great for Alice. However, because Block 1 was larger than the target size, the base fee is increased in Block 2. This means that Bob either has to pay the higher base fee or wait a block to send his transaction. Bob ends up paying for the congestion that Alice caused.

In general, when users congest a block, it is users of the subsequent blocks that pay for the congestion. This is undesirable for a couple of reasons.

1. It is unfair.
It is not fair that Bob should pay to allow Alice to send an extra transaction.

2. It increases congestion.
Because Alice does not care whether Bob pays more, she will congest her block whenever she has the slightest need to do so. In economics jargon, congesting a block exerts a negative externality on the users of future blocks. Because users do not pay for congesting their block, they will congest it too much relative to what is socially optimal.

3. It intensifies gas auctions.
Let us change our example and assume that Alice and Bob are competing to include their transactions in Block 1, which is expected to be congested. If Bob loses, he will not only have his transaction delayed, he will also pay a higher base fee in Block 2. So outbidding Alice becomes even more important. The same will hold for Alice, and as a result, the gas auction will become more intense. Users will pay larger tips to miners to avoid paying higher base fees to the protocol.

A Solution

I propose that when a block is congested, the users of that same block pay for the congestion. We can implement this by charging the miner a fee based on how much gas is used in his block. For example, a miner who uses $x$ gas in his block might be required to pay $f(x)=kx^2$ gwei where $k>0$ is some constant. The marginal cost of including one additional gas is $2kx$ gwei, so the miner will include all transactions that pay him at least $2kx+\epsilon$ gwei per gas until he reaches the block limit, where $\epsilon$ is compensation for uncle risk.

We can think of $2kx$ as a Pigouvian tax on block space. When the demand for block space is high, $x$ will be large (block size will be large), $kx^2$ will be large (the protocol fee will be large), and $2kx$ will be high (users will have to pay more to be included). Hence block space will adjust to demand, and we can calibrate the fee function $f(x)$ to target the average block size that we want.

Technical Asides
It should not matter in theory whether we charge the miner or the users. But charging the miner may be easier to implement.

To choose $f(x)$, we could use a supply and demand model of block space where the social cost of centralization risk is an increasing function of the average block size. We would solve for $f(x)$ that makes the agents internalize the social cost, while ensuring that users do not bear too much of the tax burden.

1 Like