当前位置:首页 > BTC入门 > 正文内容

比特币的“奖励减半”代码在哪?

newbie1个月前 (06-07)BTC入门34

比特币的"奖励减半"不是靠董事会投票决定的,也不是某个服务器上的开关一拨就完事。它就写在一段公开的代码里,任何人都可以去GitHub上看。这篇文章不绕弯子,直接带你找到这段代码的准确位置,逐行看它是怎么运行的。              各大交易所:欧易官网  币安官网  芝麻Gate      


一、核心代码的位置

程序员正在 GitHub 上查看比特币的核心源代码

比特币减半的核心逻辑藏在一个叫 GetBlockSubsidy 的函数里。主文件在 src/validation.cpp,官方仓库 https://github.com/bitcoin/bitcoin,最新版就在这个函数里面。

比特币网络中所有全节点都运行着同一份源代码,验证新区块时都会调用这个函数计算当前区块的奖励。如果一个矿工试图伪造一个超过规定数额的区块,网络中的所有节点都会拒绝这个区块。这不是某个人说了算的事,而是代码逻辑约束下的结果。


二、完整核心代码逐行拆解

CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams)
{
    int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
    // 当右移操作未定义时,强制区块奖励为零
    if (halvings >= 64)
        return 0;
    CAmount nSubsidy = 50 * COIN;
    // 补贴每 210,000 个区块减半一次,大约每 4 年发生一次
    nSubsidy >>= halvings;
    return nSubsidy;
}

就这么几行,整个减半机制全在里面了。


三、关键参数详解

参数/常量含义具体数值
nHeight当前区块的高度,即全网已经挖出的区块数量动态变化
consensusParams.nSubsidyHalvingInterval减半间隔区块数210,000 个区块
COIN1个比特币等于多少"聪"的进制100,000,000(1亿)
50 * COIN初始区块奖励(单位是聪)5,000,000,000 聪(即50个BTC)
>>=二进制右移运算符每右移一位相当于除以2
halvings >= 64减半次数上限超过64次,奖励直接归0

拿一个真实例子代入公式:假设当前区块高度是704,673,减半间隔是210,000个区块。第一步,用 704,673 除以 210,000,得到 3.35,取整后 halvings = 3。第二步,3 远小于 64,继续计算。第三步,将初始奖励 50 进行右移 3 次:右移 1 次 50→25,右移 2 次 25→12.5,右移 3 次 12.5→6.25。最终得出当前区块奖励为 6.25 BTC


四、为什么21万这个数字决定了"四年一次"?

比特币网络设计为每 10 分钟左右挖出一个新区块。210,000 个区块乘以 10 分钟,大约就是 4 年(精确计算是 210,000 × 10 ÷ 60 ÷ 24 ÷ 365 ≈ 3.995 年)。所以每隔四年左右,矿工到手的奖励就会砍一半,这不是人为安排的,是数学算出来的。


五、2100万枚BTC上限是怎么来的

 210,000 个区块组成的循环

总和 = 210,000 ×(50 + 25 + 12.5 + 6.25 + ……)= 210,000 × 100 = 21,000,000 BTC

这也是为什么代码里从没有直接出现过 21,000,000 这个数字,但最终产出的总量却恰好是这个数。这不是巧合,是等比数列求和的结果,写代码的人一开始就算好了。


六、代码为什么不能改?

很多人会问:代码就在那里,我把它改了不就行了?

事情没那么简单。比特币的去中心化依靠的是共识:全网成千上万个节点必须同时接受并运行同一套规则。如果只是你一个人单方面改了代码,你挖出来的区块在其他节点眼中就是非法的,会被直接拒绝。改变减半规则需要整个社区达成分叉共识。这不是写代码的问题,而是治理和生态共识的问题。代码公开、规则写死、全网监督——这才是比特币减半机制真正靠得住的地方。


免责声明

本文仅为技术科普,不构成任何投资建议。代码位置和参数可能随版本变化,请以比特币Core官方GitHub仓库为准。


相关文章

比特币交易确认时间多久?一次说清楚

比特币交易确认时间多久?一次说清楚

2026年5月23日,比特币网络的平均交易确认时间是47.75分钟。意思是说在这一天发起的普通交易,从按下发送键到获得第一次确认,平均要等将近50分钟。10分钟出块一次,理论上最慢一个周期就能确认,实...

比特币的隔离见证到底好在哪?

比特币的隔离见证到底好在哪?

2017年那阵子,比特币社区为"要不要把签名数据挪出去"吵得不可开交,中文社群里隔三差五就有人转发隔离见证的科普帖。我当时对比特币的理解还停留在"数字黄金"层面...

比特币难度调整怎么算?公式只有一个

比特币难度调整怎么算?公式只有一个

比特币挖矿大家多少都听过,知道算力、区块奖励、减半这些词,但问到一个关键问题就卡住了——不管多少人在挖矿,比特币怎么保证出块速度稳定在10分钟左右?答案藏在代码里一个反复执行的函数中:每2016个区块...

从下载到持有:2026年在交易所用100元买入比特币的极简实操指南

从下载到持有:2026年在交易所用100元买入比特币的极简实操指南

写在前面:为什么是现在?2026年6月12日,比特币最新价格在62674美元附近震荡,MA5与MA10几乎重合在62600美元一线——这意味着短期趋势正在走平。回头看,2025年末BTC从10万美元高...

手把手教你完成第一次比特币购买

手把手教你完成第一次比特币购买

重磅合规风险提示:根据2026年2月央行等八部门联合发布的最新监管通知,我国内地全面禁止任何虚拟货币兑换、交易、炒作活动,虚拟货币相关业务属于非法金融活动,不受法律保护。本文仅对欧易海外平台功能界面、...

第一次买比特币,选哪个交易所?一张表对比新手友好度,看完不再纠结

第一次买比特币,选哪个交易所?一张表对比新手友好度,看完不再纠结

别纠结了,先看一组数据2026年6月,币安以日均650亿美元以上的交易量稳坐全球第一,欧易紧随其后排第二。两家加起来吃掉了华语用户将近80%的市场份额。你在任何一个币圈群里问"买币用什么&q...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。