什么是比特币减半,如何实现及与价格的关系?
比特币明天早上又要减半了, 回答几个老生畅谈的问题:
准确来岁是指比特币区块挖矿奖励减半,在中本聪共识协议里, 为了鼓励大家参与记账,设置了记账的奖励,这个奖励也是比特币发行的方式。 最初的区块奖励为50个比特币,每经过210000区块后,区块奖励将为上一次的一半。
下图是历次奖励减半的时间表:
时间 | 区块号 | 奖励 |
---|---|---|
2009/01/09 | 1 | 50BTC |
2012/11/28 | 210001 | 25BTC |
2016/07/10 | 420001 | 12.5BTC |
2020/05/12 | 630001 | 6.25BTC |
... | ... | ... |
~2140年 | 13440001 | 0 |
注意:很多人说比特币每隔四年减半一次,不准确的,实际是每经过210000区块减半一次, 只是安装当前的出块速度,大约每4年奖励减半一次。直到经过 64 次减半后(届时将发行完所有的 2100 万枚比特币),将不再有新区块奖励,挖矿只能获得交易的手续费。
为什么不保持一个相同的奖励?大家知道稳定价值的最好的限制产量(或流通量),石油和黄金是最好的例子,货币也是一样,很多的货币就是在贪婪的政府一次次恶性发行中贬值。
如果比特币的发行不受控制,创建的比特币无止境,就无法承载价值,比特币的发行模拟了黄金开采的过程,金矿随着开采时间越来越长,能开采的黄金将越来越少。这也是为啥数千年来黄金一个是一个重要的价值交换媒介。
比特币也是使用类似的方式控制通胀率以保持稳定的价值,因此有些人也称比特币为“数字黄金”。
在传统开发人员思维里,代码是人写的,我为什么就不能更改奖励了? 这是中心化思维与去中心化思维产生的差异。
比特币是一个由成千上万客户端组成的一个网络, 每个客户端是各自独立的个体,运行的自己的逻辑,但只有自己运行的逻辑经过别人验证通过后,才可以在网络上传播生效。
如果没有办法更改让其他千上万客户端更改验证方式,那么你的修改就没法再网络上生效,就是这么简单。
维有按照大家都认可的方式记账,这就是共识,共识的力量, 共识控制了比特币减半的逻辑。
比特币奖励减半的代码其实非常简单,就是下面这个函数:
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;
}
这个函数是根据区块的高度获取区块的奖励数量。
nHeight 是当前区块高度
consensusParams.nSubsidyHalvingInterval 是减半间隔区块数,为常量 210000
halvings,为减半次数,它是一个整型,只保存整除的整数。
if (halvings >= 64) return 0;
当减半 64 次之后,奖励为 0
CAmount nSubsidy = 50 * COIN;
初始奖励是 50 个币,COIN 是以聪为单位的比特币数量
nSubsidy >>= halvings;
使用右移位计算最终奖励,每右移一位相当于除以2。
也许是大家最关心得话题,理论上比特币减半后,发行量变少了, 如果需求不变的话,价格会上涨,但是实际上真的如此么?上面列出历次奖励减半的时间, 我们看看但是的价格,以 2016 年 7 月减半来看:
上面的图是 2016 年 7 月发生的减半时当时的价格几乎没有什么波动, 直到17 年下半年才开始快速上涨的。
17 年下半年的上涨是因为减半吗,当然不是,而是因为 ICO 兴起了。
同样可以断定需要需求没有大的变化(例如 DEFI 应用导致对币的使用需求增加)价格依旧不会有大的波动。
结论:减半只是一个炒作的借口而已。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!