BIP: 42
标题: 比特币无限量供应修正案
作者: Pieter Wuille
状态: 草案
类型: 常规跟踪
创建于: 2014 年 4 月 1 日
摘要
尽管人们普遍认为,中本聪是个对通货膨胀鄙夷之极的金本位支持者,但他从来没有说过这样的话。实际上,他所编写的代码将让比特币的供应量无限增长,直到永远。在他所建立的货币供应量模型里,每经过一个 Mibillenium (1024 年)将会有四个金矿被开采出来,它们之前有着相同的时间间隔,每一个金矿在 140 年的历程中被开采完。
然而,这会造成一些明显的问题。其中最突出的问题是我们应该怎么称呼 10亿 (1 Billion)比特币,它的标识应该采用什么样的颜色,以及人们应该在什么时候把这作为默认的比特币单位。
为了解决这个问题,本文提出了一个富有争议的修正案:将比特币的货币供应量从无限变更为有限。(翻译不易,插个广告,欢迎打赏 1MzziGBa7tNNzMwVJMPEjAfM1wRcvSGZu5 ^_^)
实现细节
如所周知,中本聪是一位编程大师,他对 C++ 的了解是如此深入,唯一能与其匹配的只有他身后所深韵的日本文化气息。看下面的代码:
int64_t nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks
// which will occur approximately every 4 years.
nSubsidy >>= (nHeight / 210000);`
这段代码巧妙地依赖于 C++ 规范中一个不确定的行为,或许它是为了在未来使用硬件加速而做的准备。
他把区块的数目直接除以 210000(即产量减半的块间隔),并把结果作为二进制移位的输入,并用在最初时的原始支出(50 BTC)上,然后将这作为基本单位。 由于采用了新的金矿间隔正好是这个半衰周期的 64 倍,而 64 位正好是比特币数据类型的大小,因此,在所有目前支持的平台上,每经过 64 个周期后,比特币的供应量将重归原样。
虽然这让中本聪大师很好的秀了一把他编程技术的娴熟,不过我们希望比特币的产量能够清晰明确,否则,我们将不可避免地遭遇一场惨烈的砸盘运动。
需要注意的是其他一些编程语言并没有表现出这种行为,这使得新的实现可能会更慢一些,而且通常比 Bitcoin Core 更假。比如说,Python 在处理整数移位超出了它的大小的意外时将返回 0。
其他解决方案
浮点近似值
一个显而易见的重绘供应曲线图的解决办法是使用浮点近似值来实现,例如模拟政府救市或者量化宽松政策,它们都已经证明了自己的价值所在。不过不幸的是,自金融危机以来,大家都认为带小数点的数字有猫腻,而且 JavaScript 不能很好的支持整数。
截尾舍去
另一种解决办法是将表示比特币的总数的类型变为字符串:
“21000000000000000000000”
然后每隔 4 年就使用字符串操作来删除最右边的零,并依据闰年与否加以调整:
strSubsidy = strSubsidy.substr(0,strSubsidy.size() - 2);
这种风格依赖较少依赖于 C++ 中的小聪明编程技巧,并且对于平时主要用语言的是 PHP 的核心开发团队来说会更加得心应手一些。
建议
还是让我们停止这场对长远问题的考虑吧,毕竟到了那个时候我们都将入土为安。(除非我们去做时光旅行,低温复苏,或者其它的生命延长技术,就像虚拟货币一样,实际上只存在科技小说里面)。
一个软分叉(参见 BIP16,BIP34,BIP62 )将于 2214 年 4 月 1 日准备就位,到时供应量将永久设置为零。这样做的结果将是总的货币供应将被限制在第 42 个半衰周期,(这里面包括了创世块 coinbase 的输出,而实际上它无法被花费)。
实现
相关的代码实现在此:https://github.com/bitcoin/bitcoin/pull/3842 .
兼容性
鉴于此次变更的期限比较充裕,我们希望所有的矿工在 2214 年之前将其部署。
如果他们不这样做,并且有少数人使用旧代码继续挖矿,可能会造成一个区块链分叉。从本质上讲,他们将在此时间之后挖掘傻瓜的黄金。
致谢
感谢 Gregory Maxwell 提出这项解决方案,以及 Mike Hearn 对 Web 开发的见解。也多亏了“ditto-b”在 Github 首先实现的原型。
版权
本文已向公众公开,中文版版权归译者 imcoddy 所有。
译者补记:
本文首发于巴比特,转载请保持原文信息完整。
由于这篇草案是在愚人节的时候发出来的,而且原文作者里扯了不少程序员才能明白的调侃,所以当时大家看到这文章时,都单纯把这当成了恶搞,直到 Gavin 把这个代码合并了。真亦假时假亦真,这算是今年看到的最佳愚人节恶搞之一了 :)
最后阴谋论一下,没准这本来就是本聪大叔为抗通缩所设计的本意也说不定呢。毕竟经过一百多年之后,不少私钥已经被其主人忘记,造成了许多比特币被永久尘封。所以说,It’s not a bug, it is a feature! :P
文中所引用图片版权归原作者所有。
译者:imcoddy
原文地址:A finite monetary supply for Bitcoin
欢迎打赏:1MzziGBa7tNNzMwVJMPEjAfM1wRcvSGZu5