The more BTC is used, the higher the transaction fees

Introduction

Bitcoin is the first peer-to-peer cryptocurency and was released in 2009. Bitcoin allows pseudoanonymous users to send and receive transactions. Transactions are confirmed by distributed participants with imperfect information called miners who may join and leave the network at will. Miners are paid transaction fees by users for their efforts. Miners collect transactions into structured blocks. The Bitcoin protocol includes a limit on the size of blocks that was added in 2010 to prevent spam attacks. The ideal size of the block size limit was hotly debated in 2016 and 2017 as the average size of blocks relentlessly approached the block size limit. With block space limited, users had to pay increasingly large transaction fees to incentive miners to prioritize their transaction over all others. 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 limit”) 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 the more BTC is used the higher transaction fees will be.

There are really three key time frames here. Bitcoin from 2009 until the fork, BTC after the fork, and BCH after the fork. Figure 1 is a graph of the Mean Transaction Fees in US Dollars plotted against the number of daily Active Addresses. Both measures are taken from the on-chain data. The number of Active Addresses is a proxy for the number of unique users. BCH clearly has no relationship between the number of people using the network on a given day and the transaction fees on the same day (green points). Bitcoin and BTC have a relationship between the number of active users and the fees they pay. However, the broader market conditions are different between these two time frames. Bitcoin from 2009-2017 was an unconstrained network in a growing market. The USD exchange rate was first established then increased rapidly. Block size was increasing as more users joined the network and participated in economic activity. Only toward the end of that window did Bitcoin begin to feel the block size limit.

BTC from 2017-2023 is a constrained network in a mature market. The transaction throughput is limited by the limited 1MB block size. This in turn naturally limits the number of active addresses. Transaction fees (the cost to get a transaction in a block) regularly spike as more users than the network can handle would like to transact on the chain at the same time.

BCH from 2017-2023 is an unconstrained network in a mature market. Block sizes are around 1% of the hard limit of 32MB and still significantly lower than the 8MB soft limits set by many miners. The number of users and corresponding transaction fees are around or below those of Bitcoin in its early years.

Figure 1

Both transaction fees (Figure 2) and the number of active addresses (Figure 3) have strong general trends that span multiple orders of magnitude. Both have generally increased from 2011 until the fork. After the fork both are relatively flat, likely due to the constrained block size. On these graphs the gray line is the raw data, the colored lines are windowed averages where the windows range from 2 days (purple) to 90 days (red), and the dashed gray vertical line is the date of the fork.

Figure 2

Figure 3

Results

Prior to the fork, Bitcoin transaction fees and active users did not have a strong leading or lagging relationship (Figure 4). On the cross-correlation graph below between the Mean Transaction Fee noise and the Active Addresses noise the peaks for correlation at various window sizes (2-180 days, purple to red respectively) are marked with gray points outlined in the color of the window size. The peaks at larger window sizes are at a lag of -1, indicating that Mean Transaction Fees lead the number of Active Addresses by one day. The peak at smaller window sizes are at a lag of +387 but are not a strong prominent peak.

Figure 4

For post-fork BTC, the number of daily active addresses leads the transaction fees by 7-14 days (gray points with colored outlines) depending on the window size of the general trend, again from 2-180 days, purple to red respectively (Figure 5). This means that spikes in the transaction fees are forecasted by spikes in the number of users. As the number of users grows close to the limit, transaction fees spike. This behavior is not observed in post-fork BCH data and is thus not a result of the maturing, broader cryptocurrency market. The BCH network is not constrained by the block size and the cost to use the network (transaction fees) is not dependent upon the number of people trying to use the network.

There is also an interesting, strong, weekly periodicity in the cross-correlation at all window sizes.

Figure 5

Discussion

Here I have first looked at the static relationship between the number of users on the Bitcoin, BTC, and BCH networks and the fees those users pay (Figure 1). This static viewpoint spans 15 years of daily data and shows that Bitcoin and BTC have a strong relationship between the number of users using the network and the fees those users pay. In contrast, the BCH network does not show such a relationship. This result is to be expected as the Bitcoin network underwent natural growth from 2009-2017 where more users downloaded wallets and made transactions. At the same time, the Bitcoin/fiat exchange rate increased greatly. Transaction Fees paid by users were not a main concern for many years. From 2017-2023 the BTC network has been constrained by the block size limit which limits the number of transactions the network can process and thus the number of users that can use the network. This in turn drives up transaction fees that users must pay as they are forced to bid against each other and the richest users buy the privilege to have their transactions processed. In contrast, the BCH block size is kept well above the current size of blocks so users enjoy much lower transaction fees even when many users want to simultaneously use the network.

From this static view of the data it is unclear how the number of active addresses and transaction fees are related, so I next isolated the noise in each signal to understand their temporal relationship. It is important to look at the noise in the signals as both general trends strongly increase over the time frame. If the two signals were uncorrelated then it would be expected that the noise in one has no correlation with the noise in the other. If however there is a temporal relationship between the two signals then a spike in activity in one would lead to a spike in activity on the other signal. The third option is that there is a third, hidden variable that causes a spike in activity in both variables but at different times. This option is not refuted by the data presented and analyzed here, but would require a more complicated explanation of the system. Using noise to establish causation was inspired by this paper, Climenhaga, Nevin, Lane DesAutels, and Grant Ramsey. "Causal inference from noise." Noûs 55, no. 1 (2021): 152-170, but I did not use their method.

The windowed average was used as the general trend of the data. The window size was varied from 2-180 days to capture a range of noise or deviations. The windowed averages were subtracted from the raw data to get the noise data. Finally, this noise data was normalized to the general trend at each day to avoid biasing the analysis to larger values. These normalized noise signals were cross-correlated. Neither, pre-fork Bitcoin nor BCH have a temporal relationship between the number of users and the fees they pay (Figure 4). BTC however does show a strong temporal component as the number of users leads the transactions they pay by 7-14 days (Figure 5). This strong evidence shows that the more BTC is used the higher the transaction fees that users are forced to use.

One flaw unique to BTC is that the more people use the network the more costly it becomes. BTC has limited their block size to an arbitrary 1 MB which limits the throughput of the network. Why not have a 300 kB block size? Or a 2 MB block size? Only a limited number of transactions can be processed and only a limited number of users can use the network. The behavior of the BTC network whereby an increase in the number of users leads to an increase in the fees the users must pay is antithetical to a well functioning currency or market. The strength of networks (currencies, marketplaces, social networks, countries, etc.) is proportional to their size and connectedness. This fact has been true throughout human history. Designing a network that becomes more expensive and less useful as more people use it undermines the foundation of the network.

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.

Both the Transaction Fees and the Number of Active Addresses have strong general trends that span many orders of magnitude (Figures 6 & 7). Further the general trends are not well approximated by simple functions which is to be expected by such a complex system. Thus I’ve used windowed averages to approximate the general trend. The window sizes ranged from 2-90 days. At each time point, the general trend of that particular window size was subtracted from the raw data. This difference was then divided by the general trend to get the noise as a percentage of the general trend (Figurs 8 & 9). This is important as the data span many orders of magnitude. Finally, the isolated noise signals from both the Mean Transaction Fees and the number of Active Addresses were cross correlated. The two noise signals were autocorrelated to look for any signs of autocorrelation which would interfere with the interpretation of the cross correlation. No signs of autocorrelation were found in either signal (Figures 10 & 11).

The windowed averages for Transaction Fees, Fk(t), and Active Addresses, A_k(t), were calculated with the equations below and indexed by the window size, k. The raw signals of the transaciton fees and active addresses were f(t) and a(t), respectively.

FIgure 6

Figure 7

The noise in the transaction fees, N_{F_k}(t), and active addresses, N_{Ak}(t), were calculated with the equations below and were indexed by the window size, k.

Figure 8

Figure 9

Finally, the two noise signals were cross-correlated with the equation below.

Figure 10

Figure 11