http://deportes809.com/shangxian/135/

澳门银河关注互联网产品管理,交流产品设计、用户体验心得!

为什么比特币设定的是 2100 万枚的上限?

时间:2020-10-01 12:56 来源:未知 作者:admin

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

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

  比特币其中一个有争议的属性就是它的固定供应量,这一属性保证了它不会通货膨胀的基本设计理念,也成为了最近8年来疯涨万倍的关键因素。但是2100万的总量上限到底为什么呢?很多人都知道,这是中本聪写在算法里的,固定的数额,可是他这么设计的原因确一直以来都没有一个明确的解释。

  在比特币的算法中,新的比特币产生是有周期和数量限制的。根据算法规定,从最开始的每十分钟产生50个比特币,每四年效率减半,到2140年比特币会被彻底挖完。

  经过简单的计算,每小时6个区块的速度 * 24小时每天 * 365天一年 * 4年一周期,一个周期共产生21万个区块。所有区块的奖励从50到25再到12.5逐渐递减,所以一共是 50 + 25 + 12.5 + 6.25 + 3.125 ...= 100的奖励,两数相乘则可以得到2100万比特币的总量。当然,以上的计算只是按照中本聪的算法推导了一遍比特币总量的计算,还是没有从根本上解释这个2100万总量为什么这么规定。下面我们就分析分析中本聪设计这个数字上限的原因究竟是什么。

  作为一个货币的设计者,你必须要考虑的其中一个重要因素,就是可分割性。这也是纸币出现之前,金属作为流通货币的一个重要因素。如果我们只有百元大钞而没有小面额货币,生活将会变得十分不方便。那么我们带着这个眼光再去重新审视比特币,看看它有没有可分割的特性。其实,比特币的最小单位是“聪”(“satoshis”),一个比特币可以换分成一亿 “聪”,也就是说比特币的数量最多精准到小数点后的8位数。所以比特币的总量也可以理解为2100万亿聪,或者2的50.899次方聪。这样一来,就算比特币大幅度升值也不会出现因不易分割而无法购买低价值物品的问题。

  读到这里,可能有的读者已经开始疑问了。 既然可分割性决定了货币能分割的越小越好,那为什么要固定这个数值呢? 其实,在选择这个数值方面,中本聪比大多数人想的要远的多。 根据以太坊创始人Vitalik Buterin的分析,这个数值可能与计算机编程语言支持的整型数据范围有关,也是对比特币后续开发者的维护开发提供便利。

  首先,2的50.899次方远小于常用编程语言支持的最大整数,也就是2的64次方减1,俗称64位整数。事实上在比特币软件的参考版本(用C++语言实现的)中,就是用64位整型变量来定义比特币的数额的。

  其次,大家要知道,比特币的软件除了可以用C++实现之外,还可以用Python和JavaScript这样的脚本语言实现,很多比特币的钱包,如都是用JavaScript来实现的。不用C++而使用这些脚本语言,最大的好处就是加速了开发者的编码,提升了开发效率。而在这些脚本语言中,比如JavaScript,精确整数的最大范围就是2的52次方。比特币选择了2的50.899次方作为其数额的最大范围,不知道是中本聪有意为之,还是纯属巧合。但在后人看来,推敲起来总是颇有一番趣味。

  除此之外,还有观点认为比特币设计的时候比对了全球经济总量,是按照当前全球经济水平推算估计出的2100万上限。为此,我专门翻出了2008年中本聪发表论文之前的美国M1(狭义货币供应量)图。2008年的美国M1为1.7万亿美元,2100万亿聪是其总额的千倍,完全足以支撑一个作为货币的可分割职能。

  当然了,作为比特币创始人的中本聪至今为止还没有公开露面,所有的分析都是大家在现有条件下的合理猜想。2100万的总量设计,看似随意,缺暗含了设计者很多可能的预测与想法,值得我们做更多的探讨。

  最后打个小广告,喜欢更多区块链比特币小知识的大家可以关注我们的公众号:区块链的故事。:)

  这个总量上限是人为规定的。“中本聪”设计的规则是这样:每增加 21 万个区块后,币奖励就减半,奖励的初始值是 50 比特币,所以 2009 年 1 月 3 日“中本聪”自己创建的第一个创世区块就奖励给了自己 50 比特币。

  按照平均 10 分钟一个区块的产出速度,大约是每隔四年会减半一次。第一次减半发生在北京时间 2012 年 11 月 29 日 7 点 24 分,第 21 万个区块诞生,比特币奖励减少为25个。北京时间 2016 年 7 月 10 日凌晨 0 点 46 分,第 42 万个区块诞生,这次相隔时间大约是三年零七个月,比特币奖励再次减半,成为现在的 12.5 个。

  知道了这个规则,我们就很容易根据当前的区块高度计算出已经挖出的比特币总量,截止到2018年2月,比特币的总量约 1687 万枚。按照这样的半衰期,大约到了 2140 年,比特币的产量就趋于零,上限是 2100 万个,实际上不可能达到 2100 万。比特币允许交易的最小单位是 0.00000001 比特币(10-8),这个最小值也被称为“一聪”,这是由脚本语言支持的最小数字精度决定的,因此,比特币的总量上限就是 2100 万亿聪。

  中本聪为啥要人为规定一个总量上限呢?因为他的理想是创造一种不能滥发的货币,从理论上彻底阻断通货恶性膨胀。至于这种理想能不能因为规定了上限而实现,是一个经济学问题,我没有能力多谈。我只知道,在经济学中,通货膨胀和通货紧缩同样都是可怕的。

  你可能马上又想到一个问题:如果不再奖励比特币了,谁还去挖矿呢?别忘了,还有交易手续费的奖励,比特币奖励虽然在不断减少,但是交易手续费的奖励是在不断增加的,还是会有人愿意挖矿。并且,挖矿的难度也是可以动态调整的,总是能调整到一个相对平衡的状态。

  ps:科学声音的知乎官方微信群已经成立,在这里,你可以和志同道合的科友们谈天说地话宇宙,岂不快哉~

  比特币网络相比于银行系统的一个很大的不同就是缺乏中央统一的协调,所以比特币网络必须通过一种替代中央统一协调的方式确保交易记录保持同步、防止记录被篡改,以及同一笔比特币收入被重复使用。这个方式就是区块链。区块链是由区块组成的,区块中存储的就是经过检查的交易记录,而区块是由比特币网络上称作“矿工”的节点制作生成的。“矿工”接收发送到网络上的各个比特币交易记录,并将符合要求的记录添加到自己正在制作的新区块中。新区块制作成功后,需要被发送到网络上的各个节点,符合要求的新区块就会被添加到显存区块链(也就是各节点所存储的区块链)的尾段。(比特币网络上的每个节点都存储着完全相同的一条区块链,也就是比特币网络只存在一个区块链。)

  也就是说,比特币网络依赖于“矿工”制作的区块链。因而,就会有对矿工的奖励。

  新比特币作为对矿工的奖励进入比特币网络进行流通,每生成21万个区块,奖励金额减半。从第0个区块开始的21万个区块,每生成一个区块,矿工获得50比特币作为奖励,从第21万个区块开始的第21万个区块,每生成一个区块,矿工获得25比特币作为奖励,从第42万个区块开始的第21万个区块,每生成一个区块,矿工获得12.5比特币作为奖励。以此类推,从第693个区块开始,矿工的奖励为0,也就是不再有新的比特币流入网络,届时累计有2100万比特币流入到比特币网络。矿工的收入将来自于每笔比特币转账交易的交易费,交易费只是在比特币账户之间转移,不是新产生的比特币。

  因为当时澳大利亚人口差不多2100万左右,中本聪想给每个国民发一个(ಡωಡ)hiahiahia

  是因为随着比特币总量的增加,新币制造的速度自行减慢,越来越慢,到最终不产出,直到2140年达到2100万个的总量上限,现在被挖出的比特币总量已经超过1200万个。

  关注 互联网的一些事 官方微信,回复" 135 " 即可在微信里阅读本篇内容。

  在查找公众号中搜索:织梦58,或者扫描下方二维码快速关注。

围观: 9999次 | 责任编辑:admin

回到顶部
describe