按比特币系统的设定大约每四年区块奖励减半,当减半后的奖励小于比特币的最小单位「聪(sat, Satoshi)」时,就无法再生成区块奖励了,这时便可以认为比特币挖完了。一个比特币等于一亿聪,即 $1 BTC = 10^8 sat$
2024年4月区块奖励将从 6.25 BTC 减半为 3.125 BTC,我们来用表格推一下哪年区块奖励将小于 1 sat.
区块奖励(sat) | 开始时间(年) | 结束时间(年) | 起始区块高度 | 最后区块高度 | 新增量(sat) | 累计开采量(sat) | 剩余开采量(sat) |
---|---|---|---|---|---|---|---|
5,000,000,000 | 2009.01 | 2012.11 | 0(第一个区块) | 209999 | 1,050,000,000,000,000 | 1,050,000,000,000,000 | 1,049,999,997,690,000 |
2,500,000,000 | 2012.11 | 2016.07 | 210000 | 419999 | 525,000,000,000,000 | 1,575,000,000,000,000 | 524,999,997,690,000 |
1,250,000,000 | 2016.07 | 2020.05 | 420000 | 629999 | 262,500,000,000,000 | 1,837,500,000,000,000 | 262,499,997,690,000 |
625,000,000 | 2020.05 | 2024.04 | 630000 | 839999 | 131,250,000,000,000 | 1,968,750,000,000,000 | 131,249,997,690,000 |
312,500,000 | 2024.04 | 2028 | 840000 | 1049999 | 65,625,000,000,000 | 2,034,375,000,000,000 | 65,624,997,690,000 |
156,250,000 | 2028 | 2032 | 1050000 | 1259999 | 32,812,500,000,000 | 2,067,187,500,000,000 | 32,812,497,690,000 |
78,125,000 | 2032 | 2036 | 1260000 | 1469999 | 16,406,250,000,000 | 2,083,593,750,000,000 | 16,406,247,690,000 |
39,062,500 | 2036 | 2040 | 1470000 | 1679999 | 8,203,125,000,000 | 2,091,796,875,000,000 | 8,203,122,690,000 |
19,531,250 | 2040 | 2044 | 1680000 | 1889999 | 4,101,562,500,000 | 2,095,898,437,500,000 | 4,101,560,190,000 |
9,765,625 | 2044 | 2048 | 1890000 | 2099999 | 2,050,781,250,000 | 2,097,949,218,750,000 | 2,050,778,940,000 |
4,882,812 | 2048 | 2052 | 2100000 | 2309999 | 1,025,390,520,000 | 2,098,974,609,270,000 | 1,025,388,420,000 |
2,441,406 | 2052 | 2056 | 2310000 | 2519999 | 512,695,260,000 | 2,099,487,304,530,000 | 512,693,160,000 |
1,220,703 | 2056 | 2060 | 2520000 | 2729999 | 256,347,630,000 | 2,099,743,652,160,000 | 256,345,530,000 |
610,351 | 2060 | 2064 | 2730000 | 2939999 | 128,173,710,000 | 2,099,871,825,870,000 | 128,171,820,000 |
305,175 | 2064 | 2068 | 2940000 | 3149999 | 64,086,750,000 | 2,099,935,912,620,000 | 64,085,070,000 |
152,587 | 2068 | 2072 | 3150000 | 3359999 | 32,043,270,000 | 2,099,967,955,890,000 | 32,041,800,000 |
76,293 | 2072 | 2076 | 3360000 | 3569999 | 16,021,530,000 | 2,099,983,977,420,000 | 16,020,270,000 |
38,146 | 2076 | 2080 | 3570000 | 3779999 | 8,010,660,000 | 2,099,991,988,080,000 | 8,009,610,000 |
19,073 | 2080 | 2084 | 3780000 | 3989999 | 4,005,330,000 | 2,099,995,993,410,000 | 4,004,280,000 |
9,536 | 2084 | 2088 | 3990000 | 4199999 | 2,002,560,000 | 2,099,997,995,970,000 | 2,001,720,000 |
4,768 | 2088 | 2092 | 4200000 | 4409999 | 1,001,280,000 | 2,099,998,997,250,000 | 1,000,440,000 |
2,384 | 2092 | 2096 | 4410000 | 4619999 | 500,640,000 | 2,099,999,497,890,000 | 499,800,000 |
1,192 | 2096 | 2100 | 4620000 | 4829999 | 250,320,000 | 2,099,999,748,210,000 | 249,480,000 |
596 | 2100 | 2104 | 4830000 | 5039999 | 125,160,000 | 2,099,999,873,370,000 | 124,320,000 |
298 | 2104 | 2108 | 5040000 | 5249999 | 62,580,000 | 2,099,999,935,950,000 | 61,740,000 |
149 | 2108 | 2112 | 5250000 | 5459999 | 31,290,000 | 2,099,999,967,240,000 | 30,450,000 |
74 | 2112 | 2116 | 5460000 | 5669999 | 15,540,000 | 2,099,999,982,780,000 | 14,910,000 |
37 | 2116 | 2120 | 5670000 | 5879999 | 7,770,000 | 2,099,999,990,550,000 | 7,140,000 |
18 | 2120 | 2124 | 5880000 | 6089999 | 3,780,000 | 2,099,999,994,330,000 | 3,360,000 |
9 | 2124 | 2128 | 6090000 | 6299999 | 1,890,000 | 2,099,999,996,220,000 | 1,470,000 |
4 | 2128 | 2132 | 6300000 | 6509999 | 840,000 | 2,099,999,997,060,000 | 630,000 |
2 | 2132 | 2136 | 6510000 | 6719999 | 420,000 | 2,099,999,997,480,000 | 210,000 |
1 | 2136 | 2140 | 6720000 | 6929999 | 210,000 | 2,099,999,997,690,000 | 0 |
0 | 2140 | 2144 | 6930000 | 7139999 | 0 | 2,099,999,997,690,000 | 0 |
参比特币减半时间表:https://docs.google.com/spreadsheets/d/1cGOvp7TzT-2D8cdadCBIjHQdhv70ZSeDQj8zGZr-KpI/edit?usp=sharing
从表格中我们可以看到,随着时间推移,区块奖励逐渐减少,直到2140年时降至零。这是因为减半后的奖励将小于1 sat,而系统只能发放大于或等于1 sat的奖励。此时矿工的收益将完全依赖交易手续费。到本世纪末,一年将不足以产生一个完整的比特币,而在最后几十年,总共也只能挖出约1个比特币。
因为区块是大致按照每十分钟产生的,并不是精确的,虽然每2016个区块(大约2周时间)会调整一次挖矿难度,尽量把区块的生成时间维持在10分钟。以上只是基于当前规则的理论预估,每次区块奖励减半具体时间可能会有一定的出入。从现有的历史记录也可以看出,区块奖励减半的周期只是大致在4年左右而已。虽然如此,减半发生的区块高度是确定的,它们是 210000, 420000, 630000, …
随着区块奖励在2140年左右归零,挖矿将不再产生新比特币,矿工将完全依赖交易手续费维持生计。这标志着比特币经济模型的一次转型,而非终结。手续费可能因交易量上涨而增加,以激励矿工,但若费用不足,算力下降或将影响网络安全。未来,比特币的命运将由矿工、用户和技术共同塑造。
因为 sat 是比特币的最小单位,所以从2052年开始,区块奖励以 sat 为单位时出现的小数会用「向下取整」的方式丢弃。「向下取整(round down)」是指出现小数时,直接把小数位去掉(抹零),而不是按四舍五入做近似。比如
上面的小数位全部直接去掉。
以下是比特币核心代码 validation.cpp 中的函数 GetBlockSubsidy
,它决定了每个区块的奖励。
代码中COIN
表示1 BTC(即1亿sat),>>=
是右移运算符,相当于除以2。因为它是整数运算,会自动丢弃小数部分,天然带有向下取整的效果。
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;
}