主页 > 苹果版imtoken > 【巴比特大学】为什么比特币总量是2100万?

【巴比特大学】为什么比特币总量是2100万?

苹果版imtoken 2023-01-17 04:26:39

比特币的总数是2100万,对于比特币新手来说比特币最终的数量是,这可能是最清楚也最容易混淆的数字了。

中本聪在任何公开言论中都没有提及:为什么选择这个号码,所以网上出现了各种猜测和逻辑推理。

我们来说说这个数字:

2100万是如何成为选择2100万的真正原因

2100万是怎么来的

[1]20999999.97690000

最终生成的比特币数量为 20999999.准确地说是 97690000,略低于 2100 万。

比特币产生的时间表:

我们挑几个关键点来分析这张表。

[2]50.00000000

2009 年 1 月 3 日格林威治标准时间 18:15:05,创世区块诞生了。创世区块的数量为0。“阶段1”从创世区块开始,每个区块产生50个新比特币或50亿聪。

创世区块:blockchain.info/block-height/0

比特币最终的数量是

[3]目标高度210000

GMT 2012 年 11 月 28 日 15:24:38,第 210000 个区块生成。从这个区块开始的“第 2 阶段”,每个区块中包含的新比特币数量减半至 25,这是历史上的第一次减半。未来每产生21万个区块,比特币数量将依次减半。直到第 33 次减半,每个区块产生的 0.0021 个新比特币数量直接减少到 0。

区块 210000:blockchain.info/block-height/210000

[4]每4年一次的协议

严格来说,每 4 年一次并不是很好。现实:比特币大约每 10 分钟产生一个区块,210,000 个 10 分钟接近 4 年(4 年等于 210,384 个 10 分钟。这应该是中本聪故意选择的数字)。

[5]2016年之前,2016年之后

第二次减半将在 2016 年发生,但现在讨论这个还为时过早。我说的是 2016 年区块问题。

比特币系统调整挖矿难度的原理是:根据前2016个区块产生的总时间,调整2016个区块的挖矿难度,使得这2016个区块的挖出时间为14天。因为,6 每小时 10 分钟乘以 24 小时乘以 14 天 = 2016。所以,所谓的 10 分钟只是一个平均目标。由于目前算力快速提升,实际挖2016个区块的速度往往不到14天。

难度调整的话题涉及到挖矿,后面会分析。

选择2100万的真正原因

网上有很多猜测,有的很靠谱,有的不靠谱但是很开心。

比特币最终的数量是

[答案1]

这是答案的前半部分:42.

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

(注:英文中2100万表示为:2100万,所以老外通常会直接问:为什么是21。)

当然比特币最终的数量是,他是在开玩笑。不过我个人最喜欢这个猜测,也是reddit上点赞最多的。

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

【答案2】

因为我们生活在 21 世纪!

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

抱怨太天真了。

【答案3】

比特币最终的数量是

他选择了奖励计划和 10 分钟区块。他算了一下,结果是2100万。他没有选择2100万,他只是接受了他选择的参数的后果。

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

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

[答案4]

人类历史上开采的所有黄金都可以装进一个每边大约 21 米的立方体。中本聪创建比特币的想法是类似于黄金的数字模拟(有限供应、采矿等),以及它建立在 Nick Szabo 的“比特黄金”提案的基础上,所以我认为 2100 万是有点聪明的点头。

翻译:世界上所有的黄金都融化在一起形成一个边长约21米的立方体。中本聪用这个概念来比喻比特币是一种虚拟黄金。

原来阴谋论并不局限于中国……

【答案5】

我想说:中本聪喜欢玩拉斯维加斯二十一点。

翻译:我觉得中本聪喜欢玩二十一点。

上帝会掷骰子吗?

比特币最终的数量是

[答案6]

计算机双精度浮点数最多可存储 2^53 个精度数。比特币最小单位的总精度是2^51,刚好够用。 (英文太长,无法发帖)

这个答案出现在一篇非常好的文章《中本聪的天才:比特币以意想不到的方式躲过了一些密码学子弹》

详情:

比特币的一个有争议的特性是它的固定供应量。目前每 10 分钟产生 25 个新比特币,这个数字每 4 年减半。总共存在的比特币不会超过 2100 万个>。另一方面,每个比特币可以分成 1 亿份(每份被称为 1 个“聪”),如果一分钱足够买一辆汽车,用美元交易会很麻烦,但即使比特币升值了>上面假设的美元情况,不会遇到那个问题。因此,总而言之,将存在的货币单位总数为 2,100,000,000,000,000,或 2100 万亿,或 250.899。在选择这个数字时,中本聪比大多数人意识到的更幸运或更聪明。首先,这个数字远小于 264-1,这是计算机中可以存储为标准整数的最大整数,超过该整数,> 值将像里程表一样归零。

然而,其次,总“satoshi”数设法低于一个较小的阈值:可以用浮点格式表示的最大可能整数。整数不是计算机可以存储的唯一数字。为了处理小数,计算机使用浮点表示法的格式。浮点表示法本质上是科学计数法的二进制版本。例如,这是您在学习物理时会遇到的一个值:

地球质量: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

我们可以注意到,科学记数法如何让您以合理的精度表示所有这些数字,尽管它们的大小差别很大。浮点记数法本质上是二进制的科学记数法;当您存储数字>digit9.625时,您的计算机存储“1.001101 * 1011”(或者更确切地说,它存储01000000 00100011 01000000 00000000 00000000 00000000 > 00000000 00000000,这是同一件事高精度序列形式)。在这种高精度形式中,系数(即不是指数的部分)有 52 位(52bits)。这意味着高精度(或更准确地说,“双精度”)浮点数足以存储高达 253 的数字,但不能更高,除此之外,您必须开始切断尾随数字。比特币的 250.9,即以指数形式表示的 satoshis 总数,刚好 > 低于这个最大值。

如果我们有整数,为什么要关心浮点值?因为更多的高级编程语言(如Javascript)并没有开放低级的“浮点数”和“整数表示法”,而只是给程序员提供了“数”的概念——当然是以浮点数的形式如果中本聪选择 2.1 亿而不是 2100 万的价值,比特币多语言编程会比现在麻烦很多。

请注意,不幸的是,Stefan Thomas 在编写 BitcoinJS 时没有及时注意到这一点,因此该库使用专门的“大数字”对象而不是普通数字来存储教程输出值;我自己的 BitcoinJS 分支(添加了其他改进)使用通用数字。

[答案 7]

这种解释很接近,但并不完全令人信服。 IEEE 双精度浮点格式具有 53 位的有效位精度,这意味着它可以寻址多达 253 - 1 个 satoshis 而没有任何舍入误差。好吧,那是 9,007,199,254,740,991 聪,与 2,100,000,000,000,000 聪(甚至 2,099,999,997,690,000 聪,这是实际的渐近极限)相差甚远。我觉得一个更有说服力的解释是,一个有符号的 32 位整数最多可以存储 231 - 1 的值,也就是 2,147,483,647。

如果您假设定点格式具有两位小数精度的十进制数字(这对于货币来说是典型的),那么带符号的 32 位整数最多可以寻址 21,474,836。 47 个比特币,我们不妨四舍五入到 2100 万。我的猜测是,中本聪在开发早期就从这里得出了 2100 万的限制,后来意识到这还不够货币单位,因此将小数位数从 2 位扩展到 8 位,并将变量从 32 位更改为64 位。

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

我认为更好的解释是:带符号的 32 位整数最多可以存储 2^32-1 的数字,即 2,147,483,647。如果比特币有两位小数,则为 21,474,836.47 个比特币。那是2100万。我猜中本聪在最初的开发中使用了32位精度的整数,但是后来发现这个精度对于一个全球货币来说是不够的,所以他将2位小数扩展为8位,并从32位存储改为64位存储。

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

后记

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

你在学习区块链的过程中是否有很多疑惑?

欢迎来到巴比特大学论坛提问,向大咖们学习!区块链,从新手到专家,看我就够了!