This is really more like “notes” and less like proper “analysis”. Please take it as such. At this point, I thought posting something was > posting nothing. I am doing other work and not intending to make some great analysis happen here for public consumption. The usual disclaimers; this post is not rigorous. It may have errors or misunderstandings, etc. It is mostly to give a flavour of gas auctions as they stand today.
I think there is a perception that since Flashbots “why would you have gas auctions?”. They are still a very popular activity with top bots often ranking highly on the etherscan gas guzzlers report.
Of course, The “Flashboys 2.0” paper (Daian et al) is the seminal work in this space.
Let’s dive in…
As @mikedemarais asks here..
My (entirely non-comprehensive!) comments in turn:
@0x9212ce55 covers why they don’t like Flashbots auctions in some detail.
Flashbots is an important and great part of the ecosystem. They are doing great and important work. Flashbots has already gone a huge way towards making the Ethereum ecosystem stronger and better. That said, there are still other means to transact on Ethereum today.
That lightly touches on “why gas auctions”.
“What” are gas auctions? Simply put, from the Flashboys 2.0 paper:
In Ethereum, the PGA game we observe consists of transactions issued with the same (account, nonce) pair, expressing a bid to a miner, where the miner is paid gas fees ... We call this interaction of issuing repeated bids a priority gas auction, or PGA.
Please see the original work for any clarification.
There are various ways you could look at gas info, I’ve just focussed on maxPriorityFeePerGas
with type 2 transactions. This post focuses on type 2 transactions. (One could also look at the maxFeePerGas
but I’ll not plot for now). These plots are all from 1 day of pending transaction and block data. I have looked at a lot more than 1d of transactions and 1d is representative.
It is worth mentioning that all is not necessarily what it appears as. Recall that this is all a distributed set of nodes with their local view of the distributed transaction data. The pending transaction data in “this node” is not the same as the data where the block was mined, or where your nodes may be located. A more comprehensive analysis and dataset needs to have a much better distributed node set, good clock sync, etc.
My recording node is certainly not optimally setup for the peer-to-peer network. For the top competitors, theirs surely are. You can see that participants must have different views/ ordering/ etc that make their actions rational, but may appear odd in these plots.
After junk filtering, here are the top 5 bot addresses by pending transaction count in my recording node.
For each of these 5 bots, we find times when they update the same EOA/nonce many times in the transaction pool. Then we see who else is cycling at the same time. Note that for the plots in these analyses, we do not looking at the transaction content to see what competing for specifically.
Example 1: Normal/Simple
Here is what a normal, simple competition looks like. Start by “focussing on contract [0x000...2D4] and the top EOA (by EOA/nonce update) for that contract in this period [0x5EB..c82]. This episode lasts ~3.8 seconds. The target contract wins in block 14333596 after 19 updates. The second most involved bot updated 16x.
A similar simple example a few minutes ~90 blocks earlier with the same competitors. These are reasonably low-tip conclusions in both simple examples.
Example 2: Odd auction pauses
An odd but recurring pause pattern seems to happen, for reasons unknown. I might guess this occurs when the overall fee is relatively high (>1k in this plot, up to 3k).
These two contracts are clearly cycling with one another, so perhaps this is simply dominated by one bots behaviour and the other follows, so the “pattern” is really due to one bot. Unsure.
Example 3: One party continues well after block completion time
In my node, it looks like one party continues to bid after the other party has won/ block is done. Recall that we all have different localised views in our nodes and who knows what the other parties saw. It is reasonable to conclude the ‘blue dots bids’ were rational to them, on data which was delayed relative to the miner. (Or, perhaps, I misunderstand something.)
Relatedly this one looks like the block was completed, but both competitors kept sending transaction with higher bids. Same story as above, who knows what each party saw in their nodes.
Example 4: Other winners
Here are some examples where, for the given target contract/ EOA, other EOAs (which I’ve poorly named “alt nonce” in the legend) from the same contract owner act and win transactions in the same block.
You can also see winners from other bots during the same block.They are almost surely going after different opportunities in several of those cases. Recall that I’ve not done content inspection for these plots (i.e.; are they both bidding for swap ABC:XYZ).
IMO these were interesting because they show how active these bots can be when considering multiple opportunities/ EOAs in the same pre-block period.
A busy example, clearly going after multiple opportunities that should land in the same block.
Another busy example
This plot is ‘too busy’ but shows 1 bot dominating several independent transactions/ opportunities. Again, these are surely several different swaps/ transactions each with their own competition and conclusion
Here is a plot showing the (log) distribution of the top bots ‘tip’ rates. This plot is dominated by higher transaction count bots, but you can get the sense for the distributions.
There were several other plots but none were that great, so I chose just this 1 mediocre plot to share.
When a transaction is pending with multiple transactions per EOA/nonce, they will show you this:
Which will link to each shown below. Note the consecutive “max” and “max priority” values.
Pending #1
Pending #2
Pending #3
You can see the increasing values as the auctions happen (although typically it is very fast and code is much easier to see). Etherscan is cool.
There are plenty more interesting things one could continue to do:
That, however, is the end of this post-tangent. I hope that this at least provides some light entertainment, chart-porn and a glimpse into the current state of gas auctions on Ethereum. I sense this could have merely been a tweet-thread, but alas - the post is typed…
Any thoughts, complaints, clear errors or misunderstandings, please ping me @totlsota on twitter.