# What is the maximum transaction throughput of the Bitcoin network?

I have seen different values mentioned but the 3.3--7 transactions/second appears to pop up a lot. In Section 2 of On Scaling Decentralized Blockchains (A Position Paper) it says the following:

There are two interesting scenarios: The first scenario is when the Bitcoin network is operating at maximum throughput, namely 3.3–7 transactions/sec. This maximum throughput is mainly constrained by Bitcoin’s 1MB maximum block size and the variable transaction size. The lower bound of the maximum throughput is inferred from the current average transaction size, about 500 bytes, while the upper bound is based on an oft-cited estimate from [1] which corresponds to unusually small (250 byte) transactions.

The maximum block size is 1,000,000 according to the source code. My calculations give me these values for average transactions sizes of 500 bytes for the lower bound and 250 bytes for the upper bound:

``````lower bound: 1,000,000 / 500 / 600 = 3.3333(3)
upper bound: 1,000,000 / 250 / 600 = 6.6666(6)

lower bound’: 1024*1024 / 500 / 600 = 3.4952533(3)
upper bound': 1024*1024 / 250 / 600 = 6.9905066(6)
``````

According to my calculations, the correct rounded maximum throughput of the Bitcoin network is 3.3--6.7 for the transaction averages given above. I am wondering whether I got something wrong. The authors could have rounded only the upper bound but that doesn't make much sense though.

• This might be a question to ask the authors of the paper, since apparently they didn't show their math. It's hard for anyone else to say how they came up with the numbers that they did. My guess is that it's rounding. May 22, 2017 at 19:40
• I edited the title, as it's about the Bitcoin network, and not any specific implementation. May 23, 2017 at 18:35

The smallest transaction that would commonly occur in the wild is a P2PKH transaction with one input and two outputs (send amount and change output). A P2PKH input has 148 bytes, a P2PKH output has 34 bytes and the transaction overhead is 10 bytes, `148 bytes + 2*34 bytes + 10 bytes = 226 bytes`, in the case when no change output is required, this could actually be 192 bytes.
If all transactions were only P2PKH with one input and two outputs, the throughput would be `1,000,000 / 226 / 600 = 7.37 tps`. However, the mix is very different with a lot more transactions on the network making use of multisignature inputs or sending to boatloads of different addresses at the same time, and the current average transaction size is around 520 bytes, making the 3 tps figure much more accurate.