Bitcoin Block Size Limit Impacts Transaction Fees
/Introduction
Bitcoin is the first peer-to-peer cryptocurency released in 2009. Bitcoin allows anonymous participants to send transactions. Transactions are confirmed by anonymous participants called miners. Miners are paid transaction fees for their efforts. Miners collect transactions into structured blocks. The Bitcoin protocol includes a limit on the size of blocks to prevent spam attacks. The ideal size of the block size was hotly debated in 2016 and 2017 as the average size of blocks relentlessly approached the block size limit. Debate reached a fever pitch in mid 2017 and resulted in a blockchain fork and two versions of the chain, BTC (Bitcoin SegWit) which kept the 1MB block size limit but changed the accounting used to calculate that size (resulting in blocks having a “weight”) and BCH (Bitcoin Cash) which simply raised the block size limit to 8 MB. We now have 6 years worth of data with which to explore differences and tradeoffs between these two paths. I hypothesize that as BTC is used, block sizes will perpetually be around the block size limit and as a result fees will remain perpetually high which will impair its ability to be used as a peer-to-peer electronic currency.
The USD/BTC exchange rate has dramatically risen six orders of magnitude (Figure 1) since the currencies began being exchanged. After the Bitcoin fork, BCH fell about one order of magnitude. In the years leading up to the fork, Bitcoin’s block size steadily increased until it ran into the hard limit (Figure 2). After the fork, BTC block sizes increased slightly as SegWit adjusted how block sizes are measured. If all transactions in a BTC block are SegWit transactions then the block will be 2.3 MB, a modest increase. BCH blocks are generally smaller than BTC blocks but are able to be much larger than BTC blocks without causing a corresponding spike in transaction fees.
Results
Transaction fees dramatically rose from 5 cents during 2013-2016 to $1 during the Bitcoin blockchain fork on August 1, 2017 (Figure 3). Fees on BCH quickly fell to 1 cent and settled at 0.1 cents in 1.5 years while fees on BTC continued to rise, spiking to $30 before continuing to dramatically oscillate between 10 cents and $30. Fees on BCH have remained around or below 0.1 cents. While fees on BTC occasionally remain below $1 they rise above for days to months at a time. Regardless of any temporary spikes in fees, the long-term approaches taken by each fork are clearly evident. BTC fees remain high while BCH fees remain low.
On Bitcoin and BTC chains there is a strong relationship between the median transaction fees and the block size, particularly when blocks are nearly full (Figure 4). Spikes in BTC fees are strongly related to how large blocks are relative to the block size limit. Post fork, BTC blocks have remained >50% full while BCH blocks vary between 0.5-10% full.
High transaction fees generally seem to also have a secondary influence on the value of transactions (Figure 5). If transaction fees rise too high then small transactions are rendered infeasible. Users will either wait for fees to decrease or use a competing value transfer network (USD, Venmo, etc.). These data are confounded by nonfinancial applications of blockchains, e.g. NFTs or ordinals, which require on-chain transactions to establish ownership of digital assets but whose transaction value is is unrelated to the digital asset. Even still, generally BTC transactions are ~$100 while blocks are nearly full while BCH transactions are unrelated to block size. BCH transactions are between 0.5 cents and $10, comparable to Bitcion transactions prior to the fork.
Analyzing the fees is challenges because the USD exchange rate of BTC has changes so dramatically over the years (Figure 1). Aside from hashing, the real costs associated with mining relate to the amount of data they have to process and store, not the number of transactions they process. Transactions are not all the same amount of data. Thus, transaction fees are not priced per transaction but instead per byte. The minimum transaction fee is really 1 sat/byte and transactions are typically around 250 bytes. So, when comparing transactions on BTC where the exchange rate is $30,000 USD and BCH where the exchange rate is $250 USD, the minimum average total transaction fee on BTC is around 7.5 cents while on BCH it is 0.0625 cents. Though most people still understand transaction fees in terms of USD (as neither BTC nor BCH are units of account), a fair comparison of the capabilities of the underlying protocols would compel us to compare the transaction fees on a sats/byte level. Transaction fees have steadily decreased since the creation of Bitcoin (Figure 6). BCH fees remain below BTC fees by about 2-3x while BTC fees have dramatic increases during times of high chain usage.
While transaction fees measured in sats/byte are more similar between BCH and BTC than fees measured in USD fees, they still spike when blocks fill up (Figure 7). When blocks are continually full for weeks Bitcoin users may either wait for fees to fall or they may try to outbid all other users. This limits the usefulness of BTC as a currency.
Discussion
The success of cryptocurrencies as peer-to-peer electronic currencies is an important topic. Here I have begun looking at the relationship between the block size limit and transaction fees using real world data from both the BTC and BCH blockchains over the past 6 years. Transaction fees in USD (the current unit of account) are consistently three orders of magnitude smaller on BCH than BTC. There is a strong, clear relationship between blocks approaching the block size limit and fees increasing. This has the secondary effect of only making larger value transactions viable. Though some of the higher fees are due to the large price difference between the forked chains, fees priced in native tokens are still higher on BTC than BCH and still spike when block approach the size limit. This reflects the philosophy of the two communities, BCH is committed to keeping fees low while BTC is committed to ossifying the protocol at the expense of usability. As hypothesized, perpetually full BTC blocks result in perpetually high BTC fees that periodically spike which results in only high value transactions being viable and thus limits BTC’s usefulness as a peer-to-peer electronic currency.
Method
Data were downloaded on October 27, 2023 from CoinMetrics.io. Data are daily averages for each metric. Data were processed and plotted in python 3.11.5 using Anaconda, Spyder, Matplotlib, Numpy, and Pandas.
CoinMetric’s database does not include transaction fees measured as satoshi/byte. Instead I’ve taken the the daily total fees in native tokens ("FeeTotNtv”) and divided by the daily total size of blocks mined in bytes (“BlkSizeMeanByte” * ”BlkCnt” * 1,000,000).
Block Size (Percent Full) was calculated. Block sizes (“BlkSizeMeanByte”) prior to the Fork were divided by 1,000,000 as the maximum block size limit was 1MB. After the fork, BTC’s maximum block size is instead measured as a block weight (“BlkWghtMean”) which is divided by 4,000,000 (the maximum block weight). BCH block sizes after the fork ("BlkSizeMeanByte”) were divided by 8,000,000 as most miners have a soft 8MB block size limit.