B++ Logo

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

HalvingBlock HeightDateSubsidyTotal Mined
0 (Genesis)0Jan 200950 BTC0
1210,000Nov 201225 BTC10,500,000
2420,000Jul 201612.5 BTC15,750,000
3630,000May 20206.25 BTC18,375,000
4840,000Apr 20243.125 BTC19,687,500
51,050,000~20281.5625 BTC20,343,750
61,260,000~20320.78125 BTC20,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
EraSubsidyTypical FeesFee %
2009-201250 BTC< 0.01 BTC< 0.02%
2012-201625 BTC0.1-0.5 BTC0.4-2%
2016-202012.5 BTC0.5-2 BTC4-16%
2020-20246.25 BTC0.5-5 BTC8-80%
2024-20283.125 BTCVariableGrowing

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%
PeriodApproximate 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