比特币为什么最多2100万?比特币总量2100万枚的来龙去脉比特币区块链

五月的加密市场,BTC(比特币)在6万刀踟蹰不前,春去花落一片红。无甚热闹,但徜徉湖边,看绿水青山,心底宁静,仓位致远。

BTC乃加密行业之根。总量2100万之上限,乃BTC之本。一切都从这个神奇的数字展开。可是它,为何是这样一个数字呢?

1.每区块产量50BTC

2.每21万个区块,产量减半

使用等比数列求和可以轻松算出,最终BTC的总产量为:(50+25+12.5+6.25+3.125+...)x21万=2100万枚。

进一步的,调节“挖矿”难度使得大约每10分钟产生一个新区块,即每小时6个新区块,21万个区块就大概是人间4年。

这也就是比特币4年产量减半周期的来历。

但是,如此只是对既定事实的一个铺叙而已。一是缺乏一些细节的考察;二是并未真正揭示比特币发明人中本聪为何要选择和设计这样一个数字的原因。

首先,

2100万并非2100万,而是2,099,999,997,690,000。对,后面这个数字比2100万要大1亿倍,即大约是2100万亿。在比特币系统内部,都是这个万亿级的整数。

当我们把BTC“展示”为这个整数点上8位小数位,也就变成了20,999,999.97690000。这里我用空格提示了上面作为整数时的千分位分割点。我们一眼就会看到,中本聪选择8位小数位其实有些奇怪的,因为这样会导致8位小数的BTC整数部分的逗号分割点,和系统内真正的整数的逗号分割点不一致。

8位小数位,也就是1亿分之一,这个就不太西方。众所周知,英文里对数字采用千分位分割,所以计数法的单位是千(thousand)、百万(million)、十亿(billion)、万亿(trillion)。英文里并没有“亿”这个单位。而中国的计数法略有不同,是以4位数字也就是万分位为分割的,乃有万、亿、万亿。

2100万亿用万分位分割就是这样的:2099999997690000;2100万带8位小数则是这样的:20999999.97690000。都是4小节,每小节4位数字,没有任何混乱。所以看起来,8位小数位,1亿分之一,嗯,这很东方。

其次,

2100万亿之所以是2,099,999,997,690,000而不是精确的2,100,000,000,000,000,也正是因为8位小数位的精度限制。

上文的等比数列(50+25+12.5+6.25+3.125+...)并非真正的无穷数列,而是当它减小到0.00000001之后,再减半就归零了。因此,这是一个截断了的有穷数列,其加和就要小于无穷数列求和的结果100。所以,乘以21万之后,最终结果也要略小于2100万。

第三,

注意第一点的叙述,8位小数位和小数点仅仅是一个“展示”层面的设计。在系统内部只有那个万亿级的整数。

既然仅仅是“展示”,那么其实小数点是可以任意挪动的。现在点在8位小数的位置,以后也可以点在5位或者4位小数的位置。

比如,20,999,999,976.90000(5位小数),或者209999999769.0000(4位小数)。

那么,8位小数时的1枚比特币,当移位到5位小数时,就显示为1000,移位到4位小数时,就显示为10000。相应的,原来的0.001或者0.0001BTC现在就会显示为1。

这移位的想法并非教链杜撰的,而是中本聪真实的想法。在2009年4月12日中本聪给MikeHearn的回信[1]中,他这样写道:

原文:

翻译:

有人说,对于普遍的64位计算机而言,如果我们使用64位二进制数同时表示整数和小数(又称浮点数),那么最安全的做法是把整数限制在浮点数的整数部分可表达的上限内。

稍微了解计算机原理的朋友都知道,计算机内部并没有什么小数,都是0和1的数位。所谓64位整数,就是指64个0或者1所组成的二进制整数。对应10进制就是2^64=18446744073709551616。这个数字要远大于2100万亿。但是,如果要让计算机能够处理浮点数,那么就要把64位中拆出一部分用来表达小数部分,还要留出1位来表示正负号。这就成了IEEE754浮点数编码标准。其中标准定义,双精度浮点数用64位二进制是这样编码的:

这样一来,整数部分就只能使用53位,也就是最大不超过2^53=9007199254740992。而如果希望容易测试结果是否为整数,则最好不要超过2^51=2251799813685248。如此,可以选择22(百万亿),但是22不是一个“三角数”(triangularnumber),所以中本聪选择了21(百万亿)。

不过,教链看了中本聪的邮件后,觉得中本聪也许并没有这么复杂的想法。或者他的确思忖过,但是并没有讲透他的全盘考虑。他只是讲,也曾经考虑过其他数字,比如4200万亿,但是感觉太大了,于是就折中成了2100万亿。在2011年1月10日中本聪回复MikeHearn的邮件[2]中,他是这样写的:

"Itworksouttoaneven10minutesperblock:

21000000/(50BTC*24hrs*365days*4years*2)=5.99blocks/hour

"Ithoughtabout100BTCand42million,but42millionseemedhigh.

"Ifitgetsreallybig,thedecimalcanmovetwoplacesandcentsbecomethenewcoins."

依中本聪的意思,大多数人手里的BTC数量最好在0.01到1000之间,不要动辄就搞个6、7位数的币,那样会缺乏稀缺感。

比特币总量2100万个,这可能是刚接触比特币的小白们记得最清楚,也是最迷惑的数字。中本聪没在任何公开的言论中提到:为什么选这个数字,于是网上出现了各种各样的猜测和逻辑推理。

【1】20999999.97690000

最终产生的比特币数量,准确的说是20999999.97690000个,比2100万少一点。

下面挑几个重点分析一下这张表。

【2】50.00000000

【3】目标高度210000

【4】4年1次的约定

每4年减半是不太严格的说法。实际情况:比特币大约每10分钟产生一个区块,而210000个10分钟接近4年(4年等于210384个10分钟。这应该是中本聪特意选取的数字)。

【5】2016前,2016后

2016年将发生第二次减半,但现在讨论这个有点早。我要说的是2016个块的问题。

难度调整的话题涉及到挖矿,以后再一并分析。

网络上有很多种猜测,有些很靠谱,有些不靠谱但很欢乐。

【答案1】

It'sthefirsthalfoftheanswer:42.

翻译:因为21是终极答案42的一半。

(说明:英语里,2100万表示为:21million。所以,老外一般直接问:为啥是21。)

当然,他是开玩笑的。不过,我个人最喜欢这个猜测,这也是reddit里顶的人最多的。

这个梗来自电影《银河系漫游指南》里终极答案的桥段。

直接看视频吧(找了一圈,只有youtube上有剪辑,所以俺加了字幕搞过来):

【答案2】

Becausewerelivinginthe21stcentury!

翻译:因为我们生活在21世纪!

太天真,不忍吐槽。

【答案3】

Hechosearewardschemeand10minuteblocks.Whenhedidthemath,itcameto21million.Hedidntchoosethe21million,hejustacceptedtheconsequenceoftheparametershechose.

翻译:中本聪订好10分钟、50币、4年减半的原则,结果自然出来了。他没有选,而是接受了这个自然的结果。

这个答案也是有可能的。中本聪在比特币中的很多选择确实是撞大运的,但都是“基于经验的撞大运”。

【答案4】

Allgoldminedinhumanhistorycanbefitintoacuberoughly21metersoneachside.

Satoshicreatedbitcoinwiththeideaofbeingsortofadigitalanalogofgold(finitesupply,mining,etc),aswellasthefactthatitbuiltuponNickSzabos“BitGold”proposal,soIthinkthat21millionwassortofaclevernodtothat.

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

原来阴谋论不止中国有

【答案5】

Iwasgoingtosay:SatoshilikestoplayVegasblackjack.

翻译:我觉得中本聪喜欢玩21点。

上帝玩骰子么

【答案6】

计算机双精度浮点数最多存储2^53精度的数。而比特币按最小单位算的总精度是2^51,刚好够用。(英文太长不贴了)

详细:

比特币有争议的属性之一就是它的固定的供应量。当前每10分钟又25个新的比特币被生产出来,并且这一数字每4年减半。总的来讲,不会有超过2100万个比特币的存在>。另一方面,每个比特币可以被划分成1亿份(每份叫做1“聪”),如果一美分都足够买辆车的话,用美元来交易就麻烦重重了,但比特币就算升值到和上面假设的美元的>状况,也不会遇到那样的问题。

因此,总之,将永远存在的货币单位的总数字是2,100,000,000,000,000,也就是2100万亿,或者说250.899。在选择这个数值的方>面,中本聪比大多数人意识到的要幸运的多或者说聪明的多。首先,这个数字远小于264-1,这是一台计算机里面可以以标准整数形式存放的最大整数,超过那个值的话,>数值将像里程表那样归零。

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

地球的质量:5.9721024kg

太阳的质量:1.9891030kg

光速:2.998108m/s

一光年:9.4601015m

质子的质量:1.67210-27kg

普朗克长度:1.61610-35m

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

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

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

【答案7】

Thatexplanationisclosebutnotentirelycompelling.IEEEdouble-precisionfloating-pointformathas53bitsofsignificandprecision,meaningitcanaddressupto2531satoshiswithoutanyroundingerror.Well,thats9,007,199,254,740,991satoshis,whichisnotanywherecloseto2,100,000,000,000,000satoshis(oreven2,099,999,997,690,000satoshis,whichistheactualasymptoticlimit).

Ithinkamuchmorecompellingexplanationisthatasigned32-bitintegercanstorevaluesupto2311,whichis2,147,483,647.Ifyouassumeafixed-pointformatwithtwodecimaldigitsoffractionalprecision(whichistypicalformoney),thenasigned32-bitintegercanaddressupto21,474,836.47bitcoins,whichwemightaswellroundoffto21million.MyguessisthatSatoshiderivedthe21-millionlimitfromhereearlyindevelopmentandthenlaterrealizedthatthiswouldntbeenoughcurrencyunitsandsoextendedthenumberofdecimalplacesfrom2to8andchangedthevariablesfrom32-bitto64-bit.

翻译:答案6的解释很接近,但有点牵强。IEEE双精度浮点数是53bits,能表示的最大数是9,007,199,254,740,991聪,而比特币是2,099,999,997,690,000聪,差别还是很大的。

我觉得更好的解释:有符号32位整数可存储最大2^32-1的数,是2,147,483,647。如果比特币是小数点后两位的话,就是21,474,836.47个比特币。也就是21-million。我猜中本聪在最初开发的时候用32位精度的整数,后来发现对于一种全球通用货币来说这个精度不够,所以把小数点后2位延展成8位,从32位存储改成64位存储。

这是我觉得最靠谱的答案,因为从中本聪的过往言论可以看出,他不是一个完美主义者,而是一个实用主义者。

研究比特币技术原理,是深入了解比特币的最佳途径,也是推动比特币行业发展的基石。希望国内有更多专业的开发、技术专家进入这个领域。还有,炒币虽爽,盯盘伤身,切记切记!

THE END
1.七乐彩技巧——尾号法:揭秘中奖号码的隐藏规律在七乐彩的选号策略中,尾号法因其简单有效而受到彩民的青睐。通过对历史开奖数据的细致分析,我们发现某些尾号在连续多期中频繁出现,这些尾号成为选号时不可忽视的参考。 尾号法的精髓: 尾号法基于一个观察:在七乐彩的历史开奖中,某些尾号如1、3、5、8等几乎每期都会现身。这些尾号的频繁出现并非偶然,而是开https://www.17500.cn/arts/sdetail-11232177.html
2.选号技巧> 选号技巧 揭秘11选5任选三玩法,任三选号技巧全解析,玩法多样攻略详述星辰 2024-12-01 06:12:02 没有更多内容 滇ICP备2023010045号-86 本文内容由互联网用户自发贡献,该文观点仅代表作者本人,因此内容不代表本站观点、本站不对文章中的任何观点负责,内容版权归原作者所有、内容只用于提供信息阅读,无任何商业http://wap.lffenquanban.com/tags-68887.html
3.双色球24139期:精准预测的7+3选号复试推荐期数双色球期138期推荐前区,1,7,14,21,27,28,33,后区,2,6准4+1 139期更多预测,精准推荐咨询,取经十徽 XF49 139 第二种:号码遗漏法。在一定时间周期内,比如一年内开出的所有期数,统计某一个号码没有开出的期数,如果一个号码遗漏了 30 期以上,下一期开出的概率就会比其他号码要高,所以我们可以把这样的号码组合起https://www.163.com/dy/article/JIFJOHGP0556AJE4.html
4.学位论文撰写指南(二)、选题的方法 1、 题材提取法; 2、拟想验证法; 3、启发式选题法; 4、社会调查式选题法。 (三)、最佳选题的获得 1、 要在本学科领域的“空白处”寻找突破口; 2、 在学科领域的“空缺处”寻找突破口; 3、 在多学科发展的“交叉口”独辟蹊径; http://lib.jiangnan.edu.cn/old/fw/xkfwjxkgy/xwlwzxzn.htm
5.双色球选号秘诀最后别忘了再根据你以为毫不可能泛起的号组合1—2注单式,这种选“怪”号的方法,不仅防止了前面“精挑细选”后的万一扑空,而且可以应对“怪号”的“好景不常”。另外,彩民查看是否获奖的时候,也更加轻易,不用一个个查看号码,也减小了漏掉的可能。 http://www.360doc.com/content/11/0420/09/5397652_110937489.shtml
6.高一数学提分方法(精选7篇)形如73与37、185与581等的数称为数字颠倒的两、三位数,巧算方法为: 1.数字颠倒的两位数减法,可用两位数字中的大数减去小数,再乘以9,积就是它们的`差。如73-37=(7-3)x9=36,82-28=(8-2)x9=54。 2.数字颠倒的三位数减法,可用三位数中最大数减去最小数,再乘以9,乘积分两边,中间填上9,就是它们的https://www.cnfla.com/shuxue/662296.html
7.网络层(二)这个网络有16位的主机号,平均分成128个规模相同的子网,每个子网有7位的子网号,9位的主机号。除去一个网络地址和广播地址,可分配的最大P地址个数是2^9-2=512一2=510,选C。 “29"”表明前29位是网络号,4个选项的前3个字节均相同。A中第4个字节120为01111000,前5位为01111:B中第4个字节64为01000000,https://developer.aliyun.com/article/1109722
8.七乐彩技巧:六个选号方法助你中奖三、按能量层选号法 中奖号码=大能量层+第二大能量层+小能量层 体彩中奖号码就是由这几个能量层组合成的。在这个分类方法中,大能量层是不能缺少的,小能量层中奖号码偶尔可以缺少。以30选7的第02016至02019期中奖号码基本号为例: 期数 中奖号码 https://www.ydniu.com/info/qlc/cpjq/11843.html
9.河南省基础教育资源公共服务平台平台已限制散户访问他人空间,请您尽快加入组织。返回上一页 | 返回首页 帮助中心 主管: 河南省教育厅 主办: 河南省基础教育资源中心 技术支持:天喻教育科技有限公司 客服电话:4001801818-333 Copyright ? 2005 - 2024 河南省基础教育资源公共服务平台 All rights reserved. Copyright ? 2005 - 2023 河南省https://www.hner.cn/index.php?r=space/person/blog/view&sid=71b9a25abdd848a0ad72ea0a6ad57138&id=4145173
10.七乐彩玩法介绍七乐彩兑奖须知→MAIGOO百科七乐彩采用组合式玩法,从01—30共30个号码中选择7个号码组合为一注投注号码。每注金额人民币2元。 七乐彩每周销售三期,期号以开奖日界定,按日历年度编排。 投注方法 分为自选号码投注和机选号码投注,投注方式分为单式投注、复式投注、胆拖投注和多倍投注。 自选号码投注 是指由投注者自行选定投注号码的投注;https://m.maigoo.com/citiao/257323.html
11.会计基础的学习方法大全由于面授时间有限,所以要求学员充分利用教材、录像、课件、网上资源等多种媒体进行自学,处理好自学与面授之间的互补关系,达到最佳的学习效果。 会计基础的学习方法3 基础会计学是我们金融与证券专业必修的一门基础学科,在将近一年的学习中,使我对会计学有了一定的了解,也明白了它在我们生活中的重要性。 https://3g.yjbys.com/xuexi/fangfa/1532290.html
12.基于TiDB的常见应用开发误区2. 自增 ID 设计最佳实践 3. TiDB 中的自增 ID 使用方法 4. 人为向自增列写入值后 TiDB 分配自增值时报 “Duplicate entry” 错误的处理方法 5. 高并发的唯一序列号生成方案 四、唯一性约束 1. 主键与唯一索引 2. 外键 3. OGG(Oracle GoldenGate)用户需要注意 INSERT 语句默认只在提交时进行唯一性约束https://www.jianshu.com/p/f7cac010c6e8
13.七乐彩彩票利用尾数法规律二、利用尾数分布选号方法 无论什么样的彩票游戏在尾数这个指标下都统一了起来,不管是候选号码还是中奖号码,都在0、1、2、3、4、5、6、7、8、9中进行选择。 对于七乐彩游戏来说,出现的7个中奖号码,按照尾数来进行划分,可以出现1111111型、211111型、22111型、2221型、31111型、3211型和331型,共计7种类型https://www.800820.net/p/3163085.html
14.333是吉祥数易经333代表什么(汉城车牌吉凶测试号码)span class=h>选号 /span> span class=h>车牌 /span>号码测选选吉号 7、立明堂测试手机号吉凶 333是吉祥数易经333代表什么,车牌号码的最佳五行理清车主命理后以车牌号命理禁忌数之数来划分吉祥数。年汉城选择在9月末以避开灼热的夏。本来也要在相对凉爽一些的8月末。吉祥数字组合寓意最吉利6个数字组合密码,旺https://www.16757.com/ysh/shuzi/3542.html