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

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

newbie5个月前 (06-07)BTC入门140

比特币的"奖励减半"不是靠董事会投票决定的,也不是某个服务器上的开关一拨就完事。它就写在一段公开的代码里,任何人都可以去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仓库为准。


相关文章

比特币的创世区块里写了什么:那个被锁在时间胶囊里的265个字符,远不止一条新闻标题

比特币的创世区块里写了什么:那个被锁在时间胶囊里的265个字符,远不止一条新闻标题

打开任何一个比特币区块浏览器,把高度调到0,你会看到一个和其他区块长得差不多的数据块。哈希以一连串的0开头,交易只有一笔,时间戳定格在2009年1月4日凌晨。大多数人听说过它里面嵌着一行《泰晤士报》的...

比特币的数字签名是如何工作的?从"签字画押"到全网验证

比特币的数字签名是如何工作的?从"签字画押"到全网验证

现实中签支票签合同,你签下的名字代表"我同意这笔交易,我是本人"。但比特币这个没有银行、没有中间人的系统里,问题来了——谁能证明一笔转账真的是你发起的?答案不靠任何第三方,靠的是密...

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

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

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

交易所买入第一颗比特币2026全流程:从注册到持仓,新手只看这一篇就够了

交易所买入第一颗比特币2026全流程:从注册到持仓,新手只看这一篇就够了

先说结论:2026年买第一颗BTC,币安依然是最优解别被那些"币安不行了"的噪音带偏。CoinGecko 2026年Q1数据摆在那儿:币安现货市场份额39.2%,日均交易额800亿...

新手第一课2026:从注册到买齐0.01个BTC全流程,5分钟看懂比特币

新手第一课2026:从注册到买齐0.01个BTC全流程,5分钟看懂比特币

2026年6月24日,比特币报价68000-75000美元,折合人民币大约50-52万元一个。0.01个BTC,也就是5000块出头。一顿火锅钱,你就能拥有一枚比特币的百分之一。听起来不多,但这是你踏...

发表评论

访客

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