主页 > imtoken官方下载 > 为什么比特币总量是2100万?比特币只透露了 2100 万个原因

为什么比特币总量是2100万?比特币只透露了 2100 万个原因

imtoken官方下载 2023-02-06 07:29:19

比特币的总数是 2100 万,这对于刚接触比特币的人来说可能是最清楚也最容易混淆的数字了。中本聪在任何公开言论中都没有提到他为什么选择这个号码,所以网上出现了各种猜测和逻辑推理。

我们来说说这个数字:

2100万是怎么来的

选择2100万的真正原因

2100 万是怎么来的?

[1]20999999.97690000

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

比特币产生的时间表:

比特币总量为什么是2100万?比特币只有2100万个原因揭秘

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

[2]50.00000000

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

创世区块:

比特币的数量

[3]目标高度210000

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

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上点赞最多的。

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

看视频就行了(我搜了一圈,只有youtube有剪辑,所以我加了字幕来获取):

【答案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

我们可以注意到,科学记数法如何让您以合理的精度表示所有这些数字,尽管它们的大小差别很大。浮点记数法本质上是二进制的科学记数法;当您存储数字>数字9.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位存储。

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

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