比特币总量为什么是固定的2100万?

关于比特币,相信很多人对这种加密货币的第一认识就是总量为2100万。这个数字似乎来得无凭无据,也很少有人解释这是为什么。由于中本聪没在任何公开的言论中提到其中的原因,于是引起了各路网友的各种猜测和推理。今天就一起来了解一下,比特币总量为什么是固定的2100万?

比特币总量2100万如何产生

比特币的总量准确来说应该有20999999.97690000个,2100万是粗略的说法。从创世区块开始,每个区块产生50个新的比特币,每210000个区块产生后(大约4年),生成的新比特币数量减半,即第210000个区块之后的区块,会生成50/2 = 25个新比特币,第420000 个区块及其之后的区块产生时候,会产生25/2 = 12.5个新比特币,以此类推。

显然这是个有规律的数学计算问题,

210000 * 50 + 210000 *50 / 2 + 210000 *50 / 4 + 210000 *50 / 8 ……

= 210000 * 50 * (1 + 1/2 + 1/4 + 1/8 ……)

≈ 210000 * 50 * 2

= 21000000

所以比特币总量为什么是固定的2100万这个问题,本质上应该是“为什么指定数目的区块产生后,生成的新比特币会减半?”或许这不是个有答案的问题,比特币本身的规则就是如此而已,比特币的算法一开始就决定了它的发行总量为2100万比特币。

关于比特币总量2100万的猜测

猜测1:因为我们活在21世纪!

这个猜测也算“有理有据”……

猜测2:全世界所有黄金熔在一起,是一个边长大约为21米的正方体。中本聪用这个概念,隐喻比特币是一种虚拟黄金。

这位同学你是语文课代表吗?

猜测3:计算机双精度浮点数最多存储2^53精度的数。而比特币按最小单位算的总精度是2^51,刚好够用。

这个推测来源于《中本聪的天才:比特币以意想不到的方式躲开了一些密码学子弹》这篇文章,是难得的严肃研究。

猜测4:比特币有争议的属性之一就是它的固定的供应量。当前每10分钟又25个新的比特币被生产出来,并且这一数字每4年减半。总的来讲,不会有超过2100万个比特币的存在>。另一方面,每个比特币可以被划分成1亿份(每份叫做1“聪”),如果一美分都足够买辆车的话,用美元来交易就麻烦重重了,但比特币就算升值到和上面假设的美元的>状况,也不会遇到那样的问题。因此,总之,将永远存在的货币单位的总数字是2,100,000,000,000,000,也就是2100万亿,或者说250.899。在选择这个数值的方>面,中本聪比大多数人意识到的要幸运的多或者说聪明的多。首先,这个数字远小于264-1,这是一台计算机里面可以以标准整数形式存放的最大整数,超过那个值的话,>数值将像里程表那样归零。

其次,然而,还有一个总“聪”数要设法低于的更小的阈值:可以用浮点的格式表示的可能的最大整数。整数不是计算机可以存储的唯一一种数字;为了处理小数,计算机>使用一种做浮点表示法的格式。浮点表示法本质上就是一个科学记数法的二进制版本。举个例子,下面是一个在你学习物理学的时候会遇到的值:

地球的质量: 5.972 1024 kg

太阳的质量: 1.989 1030 kg

光速: 2.998 108 m/s

一光年: 9.460 1015 m

质子的质量: 1.672 10-27 kg

普朗克长度: 1.616 10-35 m

我们可以注意到,科学记数法是如何使得你可以在合理的精度下表示所有的这些数值,尽管它们的大小相差极大。浮点表示法本质上就是二进制的科学记数法;当你存储数>字9.625的时候,你的计算机存放的是“1.001101 * 1011”(或者说,它存放的是01000000 00100011 01000000 00000000 00000000 00000000 >00000000 00000000,这是高精度序列形式的同样一回事)。在这个高精度形式中,系数(也就是不是指数的那部分)有52位(52bits)。这意味着高精度(更加精>确的说法是“双精度”)浮点数足以存贮高达253的数字,但不能再高了,如果超过了,你就得开始砍掉末尾的数字。比特币的250.9这一以指数形式表现的总“聪”数,刚>好低于这个最大值。

如果我们有了整数,我们为什么还要关心浮点值呢?因为更多的高阶编程语言(比如说Javascript)并不开放低阶的“浮点”和“整数表示法”,而只给程序员提供“数”的>概念 – 当然以浮点的形式提供。如果中本聪当时选择了2亿1千万而不是2100万这个值的话,用很多语言里比特币编程就会比现在要麻烦得多了。

注意,Stefan Thomas不幸的在他写BitcoinJS的时候没有及时留意到这个,以至于那个库使用了一个专门的‘大数big number’对象,而不是一个普通数来存储教程输出值;我自己分叉的的BitcoinJS(同时还加入了其他的改进)使用了普通数。

这个猜测就留给学术型投资者研究了,小编一看长串的数字就脑子疼。

关于比特币总量为什么是固定的2100万目前没人能说出一个标准答案,也许只有中本聪本人知道了,感兴趣的朋友可以看看相关的推理论文。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

留言与评论(共有 0 条评论)
   
验证码:
微信号已复制,请打开微信添加咨询详情!