What: Bitcoin transactions are collected in blocks and processed by Bitcoin miners. All transaction data uses space in these blocks. A block is a transaction file permanently recorded and organized into a sequence of blocks known as a “blockchain”. The current BTC blocksize limit is 1 MB (2018)
Why: The original intention of a blocksize cap was to prevent denial-of-service attacks on the Bitcoin network. Without a blocksize limit, in theory, an attacker could flood the network with transactions and bringing down the network. Now it has become a central disagreement to a larger scalability debate, between two camps:
1: On-Chain Supporters: This camp favors a network solution because:
Simplicity: A blocksize increase is easy to implement and has operational precedent, so until an off-chain solution can prove orders of magnitude scalability, waiting is a mute point.
Economics: Miners run and secure the Bitcoin network and to stay in business they need economic incentives. A larger blocksize means more transactions, more fees, and less reliance on block rewards- which are shrinking by design… and speaking of design,…
Satoshi Nakamoto: Implemented and supported block size increases: “It can be phased in, like: if (blocknumber > 115000), maxblocksize = largerlimitIt can start being in versions way ahead, so by the time it reaches that block number and goes into effect, the older versions that don’t have it are already obsolete.”An increase in the Bitcoin blocksize limit would require a hard fork (via a node update) in order to stay in consensus with the rest of the network.
2. Off-Chain Supporters: This camp favors a software solution because:
Size is mute: No max blocksize can support global orders of magnitude transactions on the main chain alone (i.e. off-chain or hybrid transactions are the only long-term solution). For example, exchanges operate off-chain.
Layer 2 Solutions: Need maturity time. For example- SegWit separates signatures from transaction data, effectively allowing the network to “cheat” by creating blocks >1 MB, yet still counting them as being below the cap. It increases the blocksize limit via a soft fork instead of a hard fork.