Block Subsidy
The Bitcoin block subsidy is the amount of new Bitcoin created with each block. It follows a predictable mathematical formula that halves every 210,000 blocks, creating Bitcoin's fixed supply schedule.
The Equation
Mathematical Formula
Block Subsidy = 50 / (2^halvings)
Where:
halvings = floor(block_height / 210,000)
Bitcoin Core Implementation
In Bitcoin Core (validation.cpp), the subsidy is calculated using bit shifting for efficiency:
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
// Force block reward to zero when right shift is undefined.
if (halvings >= 64)
return 0;
CAmount nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= halvings;
return nSubsidy;
}
The right bit shift (>>=) divides by 2 for each halving, which is equivalent to the mathematical formula but more efficient.
Code Implementation
Halving Schedule
| Halving | Block Height | Date | Subsidy | Total Mined |
|---|---|---|---|---|
| 0 (Genesis) | 0 | Jan 2009 | 50 BTC | 0 |
| 1 | 210,000 | Nov 2012 | 25 BTC | 10,500,000 |
| 2 | 420,000 | Jul 2016 | 12.5 BTC | 15,750,000 |
| 3 | 630,000 | May 2020 | 6.25 BTC | 18,375,000 |
| 4 | 840,000 | Apr 2024 | 3.125 BTC | 19,687,500 |
| 5 | 1,050,000 | ~2028 | 1.5625 BTC | 20,343,750 |
| 6 | 1,260,000 | ~2032 | 0.78125 BTC | 20,671,875 |
Example Calculations
Block 0 (Genesis Block):
halvings = 0 / 210,000 = 0
subsidy = 50 / (2^0) = 50 BTC
Block 840,000 (Fourth Halving):
halvings = 840,000 / 210,000 = 4
subsidy = 50 / (2^4) = 3.125 BTC
Total Supply
The total Bitcoin supply follows a geometric series that converges to exactly 21 million BTC:
Total Supply = 210,000 blocks × 50 BTC × (1 + 1/2 + 1/4 + 1/8 + ...)
= 210,000 × 50 × 2
= 21,000,000 BTC
Why 21 Million?
The limit arises from:
- Initial subsidy: 50 BTC
- Halving interval: 210,000 blocks
- Geometric series sum: 50 × 210,000 × 2 = 21,000,000
After approximately 64 halvings (around year 2140), the subsidy drops below 1 satoshi and becomes zero.
Utility Functions
Calculate Total Supply Up to Block
Find Next Halving
Block Reward Components
The total block reward consists of two parts:
Total Block Reward = Block Subsidy + Transaction Fees
| Era | Subsidy | Typical Fees | Fee % |
|---|---|---|---|
| 2009-2012 | 50 BTC | < 0.01 BTC | < 0.02% |
| 2012-2016 | 25 BTC | 0.1-0.5 BTC | 0.4-2% |
| 2016-2020 | 12.5 BTC | 0.5-2 BTC | 4-16% |
| 2020-2024 | 6.25 BTC | 0.5-5 BTC | 8-80% |
| 2024-2028 | 3.125 BTC | Variable | Growing |
As the subsidy decreases, transaction fees become increasingly important for mining economics and network security.
Inflation Rate
Bitcoin's inflation rate decreases predictably over time:
Annual Inflation = (Blocks per Year × Subsidy) / Total Supply × 100%
Example (2024):
- Blocks per year: ~52,560 (365.25 × 24 × 6)
- Subsidy: 3.125 BTC
- New BTC per year: ~164,250 BTC
- Total supply: ~19,700,000 BTC
- Inflation rate: ~0.83%
| Period | Approximate Inflation |
|---|---|
| 2009-2012 | > 25% |
| 2016-2020 | ~4% |
| 2020-2024 | ~1.8% |
| 2024-2028 | ~0.8% |
| After 2032 | < 0.5% |
Key Properties
Predictability
- Anyone can calculate the exact supply at any block height
- No central authority can change the schedule
- Requires network consensus to modify
Scarcity
- Fixed maximum of 21 million BTC
- Decreasing issuance over time
- Eventually deflationary (lost coins exceed new issuance)
Security Transition
- Early: Security funded primarily by subsidy
- Current: Mix of subsidy and fees
- Future: Security must come from fee market
Visual Representation
Subsidy (BTC)
│
50 │████████
25 │ ████████
12.5 │ ████████
6.25 │ ████████
3.125 │ ████████
1.5625│ ████████
│
└────────────────────────────────────────────────→ Blocks
0 210k 420k 630k 840k 1050k
Resources
- Bitcoin Core: validation.cpp: Subsidy calculation in source code
- Bitcoin Wiki: Controlled Supply: Detailed supply schedule
- Clark Moody Dashboard: Live supply statistics
