为什么BTC最多只会有2100万枚?

时间:2024-09-22 编辑: 浏览:(79)

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

我们都听说过比特币的数量从2009年启动时从0开始增长(代表着新的比特币被发行出来),最终到大约2140年就会停止增长,并且最终不会超过2100万。对于每一个初次接触比特币的人而言,有关于数量有限这一点是最难以理解的、不可思议的“事实”。

比特币用一套完全开放的代码来表达人们之间达成的一个约定,这个约定就是关于比特币发行方法的规则。任何人都可以随时随地下载到这套代码,运行,并参与到对这一发行规则的验证当中去。

比特币采用基于“区块链”技术的发行方法。平均大概每10分钟“挖”到一个“区块”,里面包含一定数量的比特币,给到那台挖到该区块的计算机。这里的“挖”是一个形象的比喻说法,实际上是计算机费电费时算一个非常难的、但是又非常公平的计算题,全世界大家一起算,谁先算出答案就表示谁挖到了。

在最开始,每次挖出的比特币数量中会包含50个新铸造的比特币。大约4年左右时间,挖完21万个区块之后,就会减半成25个新比特币。再挖完21万个区块,又过了大约4年时间,就再减半为12.5个新比特币。以此类推一直减半64次之后就再也不会挖出新比特币了。比特币的总量也就再也不会增加了。此时大概是2140年前后。

简而言之是这样的:

1. 每区块产量 50 BTC

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

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

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

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

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

先说细节。

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

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

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

2100万亿用万分位分割就是这样的:2099 9999 9769 0000;2100万带8位小数则是这样的:2099 9999.9769 0000。都是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.0000 0001之后,再减半就归零了。因此,这是一个截断了的有穷数列,其加和就要小于无穷数列求和的结果100。所以,乘以21万之后,最终结果也要略小于2100万。

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

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

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

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

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

"My choice for the number of coins and distribution schedule was an educated guess. It was a difficult choice, because once the network is going it's locked in and we're stuck with it. I wanted to pick something that would make prices similar to existing currencies, but without knowing the future, that's very hard. I ended up picking something in the middle. If Bitcoin remains a small niche, it'll be worth less per unit than existing currencies. If you imagine it being used for some fraction of world commerce, then there's only going to be 21 million coins for the whole world, so it would be worth much more per unit. Values are 64-bit integers with 8 decimal places, so 1 coin is represented internally as 100000000. There's plenty of granularity if typical prices become small. For example, if 0.001 is worth 1 Euro, then it might be easier to change where the decimal point is displayed, so if you had 1 Bitcoin it's now displayed as 1000, and 0.001 is displayed as 1."

“我对硬币数量和发行时间表的选择是经过深思熟虑的。这是一个艰难的选择,因为一旦网络开始运行,它就会被锁定,我们就会被它困住。我想选择一种能让价格与现有货币相近的(数字),但在不知道未来的情况下,这很难做到。最后,我选择了中间值。如果比特币仍然是一种小众货币,那么它的单位价值就会低于现有货币。如果你想象比特币被用于世界商业的某个部分,那么全世界只有 2100 万个比特币,所以它的单位价值会更高。币值是小数点后 8 位的 64 位整数,因此 1 枚硬币在内部表示为 100000000。如果典型(应用场景的)价格变小,则有足够的粒度。例如,如果 0.001 价值 1 欧元,那么改变小数点的显示位置可能会更容易(查看和使用),所以如果你有 1 个比特币,现在显示为 1000,而 0.001 显示为 1。”

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

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

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

据此许多人认为中本聪选择2100万亿,大大地方便了各种编程语言处理比特币数量相关的计算。

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

"It works out to an even 10 minutes per block:21000000 / (50 BTC  24hrs  365days  4years  2) = 5.99 blocks/hour"I fudged it to 364.58333 days/year. The halving of 50 BTC to 25 BTC is after 210000 blocks or around 3.9954 years, which is approximate anyway based on the retargeting mechanism's best effort."I thought about 100 BTC and 42 million, but 42 million seemed high."I wanted typical amounts to be in a familiar range. If you're tossing around 100000 units, it doesn't feel scarce. The brain is better able to work with numbers from 0.01 to 1000."If it gets really big, the decimal can move two places and cents become the new coins."

“这样算来,每个区块的平均时间为 10 分钟:21000000 / (50 BTC  24 小时  365 天  4 年  2) = 5.99 区块/小时“我把它修订成 364.58333 天/年。将 50 BTC 减半为 25 BTC 是在 210000 个区块之后,即大约 3.9954 年。“我想过 100 BTC 和 4200 万,但 4200 万似乎太高了。“我希望典型的数额在大家熟悉的范围内。如果你在 10 万个单位左右折腾,就不会觉得稀缺。大脑能更好地处理 0.01 到 1000 之间的数字。“如果数字真的很大,小数点就会移动两位,‘分’就会成为新的硬币。”

看起来,中本聪是先定了时间诸参数,而后调整区块产量和总量,并思考多大的数字较为适合。

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

以上就是关于2100万枚总量数字的来龙去脉。

最新 更多 >
  • 1 比特币交易app官网下载

    比特币交易APP官网下载 — 方便快捷的区块链数字货币交易平台简介比特币交易APP是一款专为区块链数字货币交易而设计的移动应用程序。它提供了一种方便快捷的方式,允许用户在任何时间、任何地点进行比特币交易和管理数字资产。无论您是专业的交易者还是新手,该APP都为您提供了可靠、安全的交易环境。功能与特点比特币交易APP拥有许多令人激动的功能和特点:1. 实时行情:获取最新的比特币价格、涨跌幅和交易量,

  • 2 AIR币AirToken是什么?

    什么是AIR币/AirToken?AIR币,全称为AirToken,是一种基于以太坊区块链技术的数字货币。AirToken的目标是为全球无银行账户的人们提供金融服务,以帮助解决全球范围内的金融不平等问题。通过利用区块链技术,AirToken旨在实现更加包容性和可访问性的金融体系,以促进全球经济的发展和可持续发展。1. AirToken的背景AirToken的创始人是一位名叫Victor Santo

  • 3 门罗币怎么挖矿

    门罗币挖矿指南门罗币(Monero)是一种去中心化的加密货币,注重使用者隐私和交易匿名性。与比特币不同,门罗币采用了CryptoNight哈希算法,使得挖矿更加难以ASIC化,同时提高了个人计算机挖矿的效果。下面是门罗币挖矿的简要指南:1. 软件选择首先,你需要选择适合你操作系统的门罗币挖矿软件。一些受欢迎的选择包括XMRig、XMR-Stak和CCMiner等。这些软件提供了面向不同操作系统的版

  • 4 BQ是什么币?

    什么是BQ币?BQ币是一种虚拟货币,常用于虚拟世界、游戏和虚拟社交平台。它是由BQ公司发行和管理的,具有数字形式的交易单位。BQ币的使用范围非常广泛,可以用于购买虚拟商品、参与社交活动、充值游戏余额等。接下来,我们将更详细地介绍BQ币及其相关特点和用途。BQ币的特点1. 虚拟货币:BQ币是一种完全虚拟的货币,不存在实体形式,仅存于电子记账系统中。用户可以通过电子交易或兑换将其转化为实际价值的商品或

  • 5 BP是什么币种?

    什么是BP币种?BP是指“基础点(Base Point)”的缩写,是一种金融概念,用来衡量利率、股票或其他金融资产价格的变动。BP通常代表金融价格的一部分,相当于1/10000或0.01%。BP币种的起源BP币种的概念起源于金融市场,在股票、债券、期货等交易中广泛使用。它的引入是为了方便衡量和计算价格变动,并且能够使不同类型的金融资产之间更容易进行比较。BP币种的计算在金融市场中,BP通常用于衡量

  • 6 AE币最高价格是多少?

    AE币最高价格是多少?AE币(Aeternity)是一种基于区块链技术的数字加密货币。随着数字货币市场的快速发展,很多人开始关注和投资AE币。在过去的几年中,AE币的价格经历了一些波动,其中最高价格是多少呢?本文将为您详细解答。AE币简介首先,我们来了解一下AE币的背景和基本情况。AE币是由Aeternity基金会发行的,旨在通过区块链技术实现智能合约、去中心化应用等功能。AE币使用类似以太坊的S

  • 7 BETA币是什么币?

    BETA币是什么币?BETA币是一种数字加密货币,是由密码学和区块链技术支持的一种去中心化的虚拟货币。它采用了创新性的共识算法,并且具有高度的安全性和匿名性。BETA币的特点首先,BETA币的交易速度非常快。它使用了闪电网络技术,可以实现几乎即时的交易确认,提高了用户支付的便利性。其次,BETA币的交易费用较低。与传统银行交易相比,BETA币的手续费非常低廉,使得小额支付也变得经济实惠。此外,BE

  • 8 比特币卖了一亿要交税么

    比特币卖了一亿要交税吗?比特币作为一种加密数字货币,近年来在全球范围内引起了广泛关注。随着比特币的价值不断上涨,许多人开始投资和交易比特币,而随之而来的问题是卖出比特币是否需要交税。在大多数国家中,比特币交易被视为一种资本收益,并且根据当地的税法规定,卖出比特币可能需要交纳一定比例的税款。这通常被认为是类似于股票或其他投资资产的资本利得税。具体交税的金额和税率,取决于卖出比特币所获利润的大小以及所

  • 9 比特币怎么获得

    比特币的获取方式比特币是一种数字货币,它的价值越来越受到全球范围内投资者的青睐。获得比特币的方式有多种多样,下面将为您介绍一些常见的比特币获取方式。1. 挖矿比特币的挖矿是通过计算机运算来生成新的比特币,同时验证和处理比特币网络上的交易。挖矿是比特币发行的主要方式。想要通过挖矿获得比特币,您需要购买专业的挖矿设备,并参与到全球性的比特币网络中。2. 购买比特币购买比特币是最简单和最常见的获取方式,

  • 10 ARES币发行价格多少?

    ARES币发行价格多少?在数字货币市场中,各种新型币种不断涌现。ARES币是近期备受关注的一种加密数字货币,其发行价格一直是人们关注的焦点。ARES币是由一家名为ARES Technologies的公司研发和发行的。据了解,该公司在短短几年的时间里已经成为了加密数字货币领域的领导者之一。ARES币的发行价格是根据市场需求和供应情况来确定的。与许多其他数字货币不同,ARES币的发行价格是动态浮动的,