Skip to content

Instantly share code, notes, and snippets.

@cryptomeow
Created January 4, 2018 21:44
Show Gist options
  • Save cryptomeow/9062b97b8de0c92cd37cdb5b08cc5815 to your computer and use it in GitHub Desktop.
Save cryptomeow/9062b97b8de0c92cd37cdb5b08cc5815 to your computer and use it in GitHub Desktop.

Actual TPS of Bitcoin

Counting on-chain transactions alone to illustrate pretty much anything is wrong. One should take into account at least TX batching.

A possibly better way is to calculate based on new UTXOs created excluding the change outputs.

Doing rough calculations, we assume the worst case of every TX having a change output, so the results are the most pessimistic version and actual numbers are better.

Month TXs UTXOs created Net UTXOs [1] Naive TPS [2] Actual TPS [3]
DEC 2017 11,190,438 30,666,017 19,475,579 ~4.18 tps ~7.27 tps
NOV 2017 9,345,256 25,120,209 15,774,953 ~3.60 tps ~6.08 tps
MAY 2017 10,061,195 24,804,799 14,743,604 ~3.75 tps ~5.50 tps

Data source: https://oxt.me/charts

[1]: Assuming the worst case of every TX having a change output
[2]: Plain TXs population divided by period secs
[3]: Bottom range of effectively the actual transactions per second rate

Setting aside blockchain forensics to identify change outputs, for slightly more accurate results, one could include single output TXs to the results which should increase the "actual TPS".

@cryptomeow
Copy link
Author

Interesting, I haven't thought of that, thanks.

@dexX7
Copy link

dexX7 commented Jan 24, 2018

@LaurentMT: at least at this point meta-protocols like Omni or Counterparty have dedicated outputs for recipients, while the OP_RETURN script only holds the command such as "send n tokens to the recipient".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment