menu
search

Blogs & Articles: Halving Fee Chaos đź”— 13 days ago

Jimmy Song on Medium

The Bitcoin halving is an anticipated event, one of those Bitcoin holidays that happen every once in a while. Along with Soft Fork Activation and various financial instrument introduction days, it’s one of those not-quite-predictable days that occur every few years which give Bitcoiners reason to pay attention and mainstream media to speculate.

This year’s halving was much anticipated, as halvings usually are, but we had a bit of an incident that requires some further explanation. The block subsidy decreased from 6.25 BTC to 3.125 BTC on block 840,000 as expected, but what wasn’t expected was the 37.626 BTC in fees that came along with it. To give some context, that’s easily the highest ratio of fees to block subsidy that Bitcoin has ever had. One transaction paid nearly 8 BTC in fees by itself.

More Fees

It wasn’t just block 840,000 that had high fees, over the next 5 blocks, we had fees of 4.486, 6.99, 16.068, 24.008 and 29.821 BTC respectively. The fees are the highest it’s ever been. This situation in Bitcoin is unprecedented.

Up to this point in Bitcoin’s history a block whose fees were higher than block subsidy were pretty rare. There were a few in the 50 and 25 BTC eras, but these were mistakes by the user (usually forgetting to put in a change address) and almost all of the fee came from a single error transaction. In the 12.5 BTC subsidy era, there were a few transactions toward the end of 2017 when the cumulative fees exceeded the 12.5 subsidy. In the just-ended 6.25 BTC subsidy era, there were many blocks during the ordinals craze which exceeded the 6.25 BTC subsidy.

Still, these were relatively rare, and most blocks even in the most recently completed era mostly didn’t exceeded 1.5 BTC. Yet in this new era of 3.125 BTC subsidy, every single block as of this writing (block 840018) has had fees exceed the subsidy, some by many multiples. So what happened? Why was the halving block getting so much in fees?

Runes

The reason has to do with a new protocol called Runes. It’s yet another colored coins protocol on top of Bitcoin that Casey Rodarmor designed back in September of 2023. The main idea is to allow coin issuance on Bitcoin that uses the UTXO set natively.

Now to back up a bit, colored coins have been around for a long time. The main idea is that you can “color” certain Bitcoin transaction outputs as meaning something in addition to the Bitcoin amount in the output. It could be another “asset” and issued as a token. The first implementation of such a protocol happened 11 years ago in 2013 and there have been many attempts since, including MasterCoin (renamed Omni), CounterParty, and more recently, RGB, Taro Assets and BRC-20.

As Rodarmor states in his blog, his motivation for making another protocol is to bring some of the asset issuing from other chains to Bitcoin. To make the launch of this protocol more interesting, Rodarmor decided to start the issuance on block 840,000, leading to the chaos we saw.

Simplification vs Game Theory

Casey Rodarmor is also the creator of ordinals, and he took one of the concepts, which was to name assets using the capital latin alphabet on Runes. This is a normal fine choice, but what happens when there’s a conflict? If two assets have the same name, how do we distinguish between them?

To simplify things, the protocol just looks up what assets exist already and if the name conflicts with something that exists, then the new asset isn’t issued. This indeed simplifies the client and gives a global unique name to each asset. Unfortunately, it also makes for some terrible incentives.

Sniping Asset Issuance

The first incentive problem is that if the transaction issuing the asset is sent out to the Bitcoin mempool, then as that transaction is gossiped to nodes around the network, other observers can snipe the name by getting the transaction in earlier.

Now “earlier” in Bitcoin is a strict concept. Blocks are ordered and transactions within a block are ordered. Whichever comes first gets the symbol and the asset issuance. But if you want to squat on a good symbol name, you can just look for mempool transactions that are attempting to create a new asset and create your own with a bigger fee. That’s the essence of sniping.

What’s really terrible about a situation like this is that both transactions will likely go into the block, but only the first will successfully issue the asset. The second will not issue the asset but still pay the fee.

Miners generally order transactions by fee rate, so a higher fee likely means that they’ll get to issue the asset. I say likely, because there’s a second incentive problem here I’ll discuss later. But game-theoretically, both participants are incentivized to increase fees continually to one-up each other. The dynamic is similar to the One Dollar Auction, where participants end up making rational choices, but end up with an irrational result (like paying $1.50 for $1). Every loser pays lots in fees for nothing.

Second order Game Theory

Now given this first-order incentive playing out, it’s not a surprise that a lot of issuers purposefully put in a very high fee initially to discourage anyone from trying to snipe the symbol. After all, if your sniping attempt fails, then you lose out on the fees you tried to snipe with. There’s also a significant uptick in the usage of RBF for this reason, so that you have the option to one-up the sniper and the sniper to do the same to the issuer.

Note that RBF isn’t useful here to get out of paying the fee, as a replacement transaction has to pay more than the previous transaction in fees. Either way, the miner ends up with the fees.

Now back to the miner’s role. The miner can, if it so desires, give preference to the lower fee transaction by including it earlier in the block. Indeed, the incentive is to give miners off-band fees if possible to order transactions in such a way as to win by not revealing how much you’ve paid. Miners in this protocol have a lot of leverage.

Conclusion

Runes have resulted in some really high fees, though it’s hard to know if the design was intentional or unintentional. What we do know is that Runes have been hyped up for the last few months and have been anticipated for a while, and certainly being one of the first assets issued under the protocol has some marketing value for the eventual goal of getting them listed on an exchange.

Sadly, in addition to the normal scamming of altcoins being completely centralized, there is a deeper cost in terms of block space congestion, where fees of 1000 sats/vbyte are currently not enough to get into certain blocks. The Runes asset issuance has overridden almost every other use case at the moment.

That said, the current rate of Runes issuance is completely unsustainable. Just in the first 18 blocks, there’s been over $20M in fees spent, most of that in Runes issuance. At this rate, Runes issuers would be spending $150M a day or $1B a week. I honestly can’t see them doing this for much longer than a month or two. In the meantime, it must be great to be a miner finding these blocks.

Update:

Apparently, there’s a minting process that was added to the Runes protocol, so you have to first commit to the symbol using a hash and then reveal some number of blocks later. I was going off of the initial blog post, but a few people have pointed me to the update of the protocol because they saw this same problem. Thus, the one dollar auction dynamic does not happen, though there’s plenty of altcoins being launched. There’s already over 1000 new altcoins either minted or in the process of being minted on it.

More from this author

11th April 2024 06:45

6th April 2024 07:11

29th March 2024 11:01

22nd March 2024 01:39

30th December 2021 06:07

28th October 2021 05:31

15th July 2021 04:11

29th March 2021 01:01

26th December 2020 06:27

3rd July 2020 03:20

Feel free to send a tip using tippin.me

Or alternatively you can send a few sats directly:

btc logo BTC ln logo BTC (Lightning)

btc tip qr

33ELQ1ye29gB6YVQY6zRLFVCNYkJez9jMh

lightning tip qr

lnurl1dp68gurn8ghj7cm0d9hxxmmjdejhytnfduhkcmn4wfkz7urp0yhn2vryv5ukvdm995ckydph956rvv3h94sk2dny95mkgv34xdsnvvrpv4jxz6whyrn