The speed of Bitcoin (aka the scaling issue)
Bitcoin is the best-known blockchain implementation, and has been highly successful. Due to its success, its adoption rate has increased, but not its speed (transaction rate). The scaling issue deals with several techniques that could improve Bitcoin’s speed. This could make Bitcoin more usable as a means of payment, instead of just a store of value.
The issue
- Each block contains, on average, around 2.000 transactions and is 1 MB in size.
- A new block comes available roughly every ten minutes, this is a pre-set interval, regulated by mining difficulty.
- So, theoretically, the network will be able to handle roughly
(2.000/10)/60 =
3,2 possible transactions per second (TPS). - Note: VISA does around 2.000/second. 1
To summarize; seeing as the 10 minute block-interval is fundamental to Bitcoin, the network will not get faster by growing: Bitcoin’s blockchain is throttled by a Proof-of-Work that continuously scales to meet that ten minute timeframe and the size of each block will remain 1MB. This results in a steady TPS rate of around 3,2.
Possible solutions
1: Doubling the block size (“2x”)
Gain: 2x speed
2: Segregated witness (“SegWit”)
Gain: 2.6x speed
- Each block on a blockchain contains transactions and their signatures (hashes).
- These signatures are only needed for verification, but account for roughly 60% of a block‘s size. This means the full blockchain copy carries around 60% ‘dead weight’.
- By separating (’segregating’) the signatures (’witnesses’) and putting them behind the block, in an optional ‘extended block’, more room is freed inside the block, increasing its capacity by ~250%. The extended block will then be requested by a node only when needed (on validation), but is otherwise ignored.
- As there is more room for transactions inside the block, TPS increases to around 8,3.
- SegWit also offers a solution for the ‘Transaction Malleability’ bug, which is considered a prerequisite for the Lightning Network (see below). Read Bitcoin developer Jimmy Song’s take on it here.
2a: Schnorr signatures
Gain: 2x speed, 5.2x when combined with SegWit
Schnorr, named after its inventor Claus-Peter Schnorr, is a signature algorithm: the series of mathematical rules that link the private key, public key and signature together. Many cryptographers consider Schnorr signatures the best in the field. Bitcoin now (feb 2018) uses the ECDSA signature algorithm, which does not support multisig (having one signature represent several signatures).
- Many Bitcoin transactions include multiple inputs, referring to the addresses bitcoins are sent from. In this case, a 1 BTC transaction consists of 3 ‘parts’.
- Each of these inputs require the signature of the sender, and all these signatures are included in the transaction.
- With Schnorr signatures, all inputs combined require only one signature to represent all the different signatures.
- This means transactions are smaller, freeing up up to 40% more room in the block.
3: Segregated witness + double block size: “SegWit2x”
Gain: 5.2x speed
So, theoretically, the network will then be able to handle roughly ((2.000 x 5)/10)/60 =
16,6 TPS; a 5.2x speed increase. Inherently, SegWit2x suffers from the same growth-related problem as doubling the block size (1).
4: The Lightning Network (LN)
Gain: ∞ (extreme)
Perhaps the best, and no doubt the fastest, solution to the Bitcoin scaling problem is The Lightning Network, which theoretically delivers millions to billions of transactions per second. To see how it works, check out our separate explanation of The Lightning Network.
Overview
Notes
- VISA can even burst to a maximum of around 56.000 tps (transactions/second), though they rarely use more than one third of that capacity. The SWIFT system, used by banks, claims it can do 200 tps. Though it should be noted that just around 10% of these ’messages’ are actual monetary transactions, so this comes down to a more plausible 20 tps.
Sources / Further reading
The power of Schnorr: The Signature Algorithm to Increase Bitcoin’s Scale and Privacy