Rusty Russell's Coding Blog | Stealing From Smart People

Dec/15

22

Bitcoin: Mixed Signs of A Fee Market

Six months ago in a previous post I showed that 45% of transactions have an output of less that $1, and estimated that they would get squeezed out first as blocks filled.  It’s time to review that prediction, and also to see several things:

  1. Are fees rising?
  2. Are fees detached from magic (default) numbers of satoshi?
  3. Are low value transactions getting squeezed out?
  4. Are transactions starting to shrink in response to fee pressure?

Here are some scenarios: low-value transactions might be vanishing even if nothing else changes, because people’s expectations (“free global microtransactions!” are changing).  Fees might be rising but still on magic numbers, because miners and nodes increased their relayfee due to spam attacks (most commonly, the rate was increased from 1000 satoshi per kb to 5000 satoshi per kb).  Finally, we’d eventually expect wallets which produce large transactions (eg. using uncompressed signatures) to lose popularity, and wallets to get smarter about transaction generation (particularly once Segregated Witness makes it fairly easy).

Fees For The Last 2 Years

The full 4 year graph is very noisy, so I only plotted the mean txfee/kb for each day for the last two years, in Satoshi and USD (thanks to the Coindesk BPI data for the conversion):

 

Conclusion: Too noisy to be conclusive: they seem to be rising recently, but some of that reflects the exchange rate changes.

Are Fees on Magic Boundaries?

Wallets should be estimating fees: in a real fee market they’d need to.

Dumb wallets pay a fixed fee per kb: eg. the bitcoin-core wallet pays 1,000 (now 5,000) satoshi per kb by default; even if the transaction is 300 bytes, it will pay 5,000 satoshi.  Some wallets use (slightly more sensible) scaling-by-size, so they’d pay 1,500 satoshi.  So if a transaction fee ends in “000”, or the scaled transaction fee does (+/- 2) we can categorize them as “fixed fee”.  We assume others are using a variable fee (about 0.6% will be erroneously marked as fixed):

This graph is a bit dense, so we thin it by grouping into weeks:

 

Conclusion: Wallets are starting to adapt to fee pressure, though the majority are still using a fixed fee.

Low Value Transactions For Last 4 Years

We categorize 4 distinct types of transactions: ones which have an output below 25c, ones which have an output between 25c and $1, ones which have an output between $1 and $5, and ones which have no output below $5, and graph the trends for each for the last four years:

Conclusion: 25c transactions are flat (ignoring those spam attack spikes).  < $1 and <$5 are growing, but most growth is coming from transactions >= $5.

Transaction Size For Last 4 Years

Here are the transaction sizes for the last 4 years:

Conclusion: There seems to be a slight decline in transaction sizes, but it’s not clear the cause, and it might be just noise.

Conclusion

There are signs of a nascent fee market, but it’s still very early. I’d expect something conclusive in the next 6 months.

The majority of fees should be variable, and they’re not: wallets remain poor, but users will migrate as blocks fill and more transactions get stuck.

A fee rate of over 10c per kb (2.5c per median transaction) hasn’t suppressed 25c transactions: perhaps it’s not high enough yet, or perhaps wallets aren’t making the relative fees clear enough (eg. my Trezor gives fees in BTC, as well as  only offering fixed fee rates).

The slight dip in mean transaction sizes and lack of growth in 25c transactions to may point to early market pressure, however.

Six months ago I showed that 45% of transactions were less than a dollar.  In the last six months that has declined to 38%.  I previously estimated that we would want larger blocks within two years, and need them within three.  That still seems a reasonable estimate.

Data

I used bitcoin-iterate and a really crappy Makefile to generate CSVs with the data.  You can see the result on github or go straight to downloading the Gnumeric spreadsheet with the graphs.

Disclaimer: I Work For Blockstream

On lightning.  Not on drawing pretty graphs.  But I wanted to see the data…

 

RSS Feed

16 Comments for Bitcoin: Mixed Signs of A Fee Market

Bitbybit | December 22, 2015 at 6:08 pm

Sad to see the BS devs decimating micro transactions with their mandatory 500% fee increase. Bitcoin is a tool for ALL PEOPLE not just VCs and banks. Thanks for destroying something that used to be awesome.

Author comment by rusty | December 22, 2015 at 7:01 pm

I am so sorry. Some Bitcoin enthusiast told you transactions were free, right? Satoshi’s transition to fees was never going to be fun, but over-promising like that simply leads to this kind of bitterness :(

Chris Wheeler | December 22, 2015 at 11:16 pm

> Satoshi’s transition to fees was never going to be fun

Wasn’t this meant to happen as block reward deminished close to zero – i.e. in 50+ years?

The 1MB block limit wasn’t in place when that was written in the whitepapaer.

From the whitepaper

> Once a predetermined number of coins have entered
circulation, the incentive can transition entirely to transaction fees and be completely inflation
free.

To me, this implies the transition happens at the same time as the inflation (block reward) is removed, not 100 years before.

p.s. “This graph is a bit dense, so we thin it by grouping into weeks:” – The second graph is linked to the same image as the first.

Author comment by rusty | December 23, 2015 at 5:56 am

> Wasn’t this meant to happen as block reward deminished close to zero – i.e. in 50+ years?

> To me, this implies the transition happens at the same time as the inflation (block reward) is removed, not 100 years before.

Yes, the paper seems to imply a sudden reward stop, rather than an exponential decay (which was what was implemented). This might imply a fee jump every halving, but we haven’t seen that: we’re used up over 70% of the bitcoins subsidy and fees add only 1.3% to the block reward.

Neither extreme is realistic: fees won’t make much difference for miners by the next halving. But miners won’t wait until the reward hits 1 satoshi before asking for fees, either.

Fixed the graph, thanks!

aj | December 23, 2015 at 12:33 am

I suspect you might get more useful graphs if you tried median fee (or median fee/kB) than average fee. Ditto for other percentiles (90% of txs paid more/less than ..).

bitcoin-iterate seems really slow to me? Seems to read the entire 50GB blockchain twice before even starting to do any output? And doesn’t work against testnet3?

Author comment by rusty | December 23, 2015 at 5:42 am

bitcoin-iterate is really slow if you ask for fees. It iterates once to get the block headers, then again to do any analysis. I have 12GB of RAM and it took 24 hours to run (but I realized half-way through that I’d compiled without optimization). And some caching would definitely help.

I’ll have to test testnet3…

aj | December 23, 2015 at 1:52 am

I think you might be over-estimating the number of <25c transactions by counting 0-value OP_RETURN outputs.

Also, it looks to me like there are lots of fees at 9999 satoshi (vs 10000 satoshi), so I think you might be undercounting there (I'm using "(x+2)%1000 < 4" as the test fwiw). I'm also not sure that's necessarily indicating there's no market — rounding off to the nearest half-a-cent could be fair enough anyway.

I think a good metric might be the difference between the 20th and 80th percentile fee/kB — if that's small, then everyone agrees on a fee at any given time; if it doesn't, it's pretty good evidence that an efficient market isn't in place (and that some participants are getting ripped off).

dexx | December 23, 2015 at 4:38 am

Would probably be interesting to take a closer look at transactions with outputs below 25c to make a conclusion. My guess is that at least some of them are data carrying (e.g. by stuffing data in bare-multisig outputs). In the longer run I’d expect those numbers (at least in this context) to decrease, in favor of OP_RETURN data embedding.

laurentmt | December 23, 2015 at 5:58 am

WRT the average transaction size, I may be wrong but I don’t think it’s just noise. Charts show an inflection point in June 2014 with a downtrend for the average number of txos consumed/created by transactions & the average transaction size. Meanwhile, we can also observe an uptrend for the number of transactions.

– Nb txs: http://imgur.com/qiYoB60
– Avg nb txos consumed per tx: http://imgur.com/AtddNkW
– Avg nb txos created per tx: http://imgur.com/ouEeFHZ
– Avg tx size http://imgur.com/Mhs98Fb

Difficult to say the cause. It may be an increased number of small txs sent by end users or a single service having modified the internals of its system (several small txs replacing a single big tx).

It’s not clear to me if we should infer a correlation with the downtrend in market price (https://blockchain.info/charts/market-price?timespan=2year&showDataPoints=false&daysAverageString=1&show_header=true&scale=0&address=)

laurentmt | December 23, 2015 at 6:54 am

FWIW we can also observe a reversed trend between September 2013 & June 2014 with an increasing nb of txos consumed/created by tx and an increasing average tx size.

This increase appeared at a much faster pace than the subsequent decrease. Actually, curves look like as if we were slowly returning to an equilibrium state after a fast shift from previous equilibrium (before september 2013).

Darrentek | December 31, 2015 at 11:55 am

> Yes, the paper seems to imply a sudden reward stop, rather than an exponential decay (which was what was implemented). This might imply a fee jump every halving, but we haven’t seen that: we’re used up over 70% of the bitcoins subsidy and fees add only 1.3% to the block reward.

There’s something missing here. Fees are supposed to be able to get a lot higher, if there are more transactions in them. i.e. with a 4MB block that percentage could rise to 5.2%, that would become more than 10% with the halving.

If you make this calculations considering just the actual number of transactions, you are forcing a skewed perspective.

Author comment by rusty | December 31, 2015 at 1:19 pm

Given we don’t have full blocks now, there’s no evidence that we would get 4x the fees with 4MB blocks. In theory it might even lead to lower total fees, by removing incentive to pay more than the minimum (I don’t think so, though: I think we’d get more spam transactions which would pay minimum fees so it would even out).

Darrentek | December 31, 2015 at 9:02 pm

> Given we don’t have full blocks now

So, the rationale is: if things around Bitcoin remains more or less like now, we are ok for some time. Enough to implement other solutions.
If some service become a killer app and suddenly require a big influx of transactions, we’ll have some unforeseen dynamic problems, since we’ll enter a brand new scenario, actually constantly hitting block size limit.
Or maybe some potentially killer app purposely steered clear about Bitcoin, because it was clear that it have needed more capacity than available.

This, plain and simple, is planning for stagnation, not success.

Author comment by rusty | January 4, 2016 at 12:13 pm

> So, the rationale is: if things around Bitcoin remains more or less like now, we are ok for some time.

> This, plain and simple, is planning for stagnation, not success.

I’m just trying to measure what’s happening, and extrapolate what’s likely to happen. If you want bitcoin to scale faster, I suggest you work on scaling solutions?

parban333 | January 5, 2016 at 6:10 am

well then, this is what’s happening:

https://i.imgur.com/OgqNIXb.gif

Author comment by rusty | January 5, 2016 at 7:30 am

Well, those blocks aren’t full. But I can run the analysis on their minimum fees if you want…

«

»

Find it!

Theme Design by devolux.org

Tag Cloud