首页 币圈新闻 比特币是如何实现总量恒定的

比特币是如何实现总量恒定的

区块链小人物专注屯币!

前言

之前我们已经大致了解了比特币的机制与原理等问题,那么小伙伴们知道比特币是如何实现总量恒定的吗?快来看看吧。

在大家生活中常常会遇到一些问题,比特币怎么实现,操作简单,容易理解,下面大家一起去来学习一下吧。

恒定原理

比特币是一种通缩型虛拟货币,中本聪在设计比特币的时候,规定每个比特币可以细分到小数点后8位。每个区块发行50个比特币。

因为比特币每10分钟产生一个区块,21万个区块大约是四年的时间;截止2019年比特币产已经减半3次,当前每个区块发行12.5个比特币,大约在2045年99.95%的比特币将会发行完毕。

2140年,比特币无法继续细分,至此比特币完全发行完毕,发行总量约为2100万枚比特币(注:实际是20999999.97690000个)。

尽管比特币通缩的货币政策是否合理在货币学上的争议很大,但这一发行机制激烈着矿工尽早投入到比特币挖矿中,使得比特币系统获得了大量算力和安全性。

下面请大家起来看看本堂课的重点。

创世区块

格林威治时间2009年1月3日18:15:05,创世区块诞生。创世区块的编号是0。从创世区块开始的”阶段1”,每个区块产生50个新的比特币或者说50亿聪。

区块链的第一个区块(区块高度0)称为“创世区块”。这是在节点挖掘(块生成)之前存在的唯一第一个块,并且Genesis块在源代码上进行了硬编码。如前所述,区块链中的每个区块均指前一个区块,但第一个区块(创世纪区块)不存在,因此有必要描述该信息。因为。

第一个区块链是比特币,有趣的记录仍然保留在比特币创世纪块中。在比特币的创世纪块中写了一个句子:

“泰晤士报2009年1月3日即将进行第二次银行救助”

就是这样这是中本聪写的。这句话是2009年1月3日英国时报的标题。我不知道为什么中本聪先生留下了这句话,但它也证明了比特币在2009年1月3日之前不存在。开采该区块时,没有1比特币流通,因此Genesis区块中包含的交易只是获得采矿奖励的一代交易。

截至2017年11月,Block Height已达到近500,000。从2009年1月创世纪块诞生起,已经有将近9年的时间,可以看到已经累积了约500,000个块。即使没有中央管理员,当考虑到所有这些块都已累积到现在还没有崩溃时,仍然可以再次询问有多大。

创世区块:

https://blockchain.info/block-height/0

块高和分叉

任何算出块头的hash值低于目标阈值的Bitcoin矿工可以将整个块添加到块链上(假设块有效)。这些块通常由它们的块高度 定位的 – 即它们与第一个比特币块之间的块数量(块0,最通常称为创世块)。例如,块 2016是可以首先调整难度值的地方。

多个区块可能有相同的区块高度,当2个或多个矿工在大致相同时间内产生合适新区块的时候这很常见。这在块链中产生了一个明显的分叉,如上图所示。

当矿工同时在区块链尾部产生新区块,每个节点独立选择接受哪个区块。在没有其他考虑的情况下,如下所述,节点通常使用他们看到的第一个块。

最终,一个矿工产生另一个块,它只附加在一个竞争同时开采的块中。这使得叉的那侧比另一侧更强。假设一个分叉仅包含有效区块,正常节点通常紧接着最难的链来增长,抛弃那些属于短分叉的过期区块。(过期块有时也称为孤儿或孤儿块,但是这些术语也用于没有已知父块的真孤儿块)

如果不同的矿工工作在相反的目的,例如一些矿工努力扩展块链,同时其他矿工正在尝试发起51%的攻击来修改交易历史,则长期分叉是可能的。

由于在区块链 的分叉中,多个块可以具有相同的高度 ,区块高度不应该被用作全局唯一标识符。反而,块通常由它们的块头的哈希引用(通常以字节顺序颠倒,十六进制形式)。

共识规则更改

为了维护共识,所有全部节点使用相同的共识规则验证块。然而,有时共识规则要被改变以引入新功能或阻止网络被滥用。当新规则实施时,可能会有一段时间,当未升级的节点遵循旧规则并且升级节点遵循新规则时,导致两种可能的方式打破共识:

遵循新共识规则的块被升级后节点接受,但被未升级的节点拒绝。例如,在块中使用新的交易功能:升级节点了解该功能并接受该功能,但未升级的节点拒绝因为它违反了旧的规则。

违反新的共识规则的块被升级后节点拒绝,但被未升级的节点接受。例如,在块中使用了滥用交易功能:升级后节点拒绝它,因为它违反了新规则,但未升级的节点接受它,因为它遵循旧的规则。

第一种情况,被未升级的节点拒绝,那些从其他未升级节点获取区块链数据的挖矿软件拒绝和那些从升级过的节点获取数据的挖矿软件在同一条链上创建。这将创建永久性发散的链 – 一个用于未升级的节点,一个链接用于升级节点– 这被称为硬分叉。

第二种情况,被升级后的节点拒绝,如果升级后的节点控制着主要的hash速率则可能阻止区块链永久发散。这是因为,在这种情况下,未升级节点和升级过的节点一样接受相同的快,所以升级后的节点可以创建一个更强的链,也被未升级节点所接受。这被称为软分叉。

虽然一个分叉实际上是区块链上发散,共识规则的改变经常被描述为它们潜在地创建一个硬分叉或者软分叉。例如,“将块的大小增加到1 MB以上需要一个硬分叉。在这个例子中,一个实际的块链 分叉不是必需的 – 但这是一个可能的结果。

共识规则的改变可能会以各种方式激活更改。在Bitcoin的前两年,中本聪通过发布立刻强制使用新规则的向后兼容的客户端改变执行了几次软分叉。已经通过标记日激活了多个软叉,例如BIP30,其中新规则开始在预设时间或块高度强制执行。通过标记日激活的分叉被称为用户激活软分叉,因为他们取决于足够多的用户节点在标记日之后强制使用新规则。

稍后软分叉等待多数哈希速率(通常为75%或95%)来显示他们对执行新共识规则准备就绪。一旦信令阈值已经通过,所有节点将开始执行新规则。这样的分叉被称为矿工活动软分叉(MASF),因为它们依赖于矿工进行激活。

目标高度

格林威治时间2012年11月28日15:24:38,编号第210000个区块产生。从这个区块起的”阶段2”,每个区块包含的新比特币数量减半为25个,这是历史上第一次减半。今后每产生210000个区块,比特币数量都会依次减半。直到第33次减半时,每个块产生0.0021个新比特币直接减为0个。

由于该块引用了前一个块的值,因此将其记录为堆叠的块。如果您想像一下堆积块的高度,就很容易理解称为块高度的单位。另外,第一个生成的块被设置为0,它指示要堆叠的目标块的编号。

例如,在比特币的区块链中,大约每10分钟生成一次区块,因此通过将最新区块的高度乘以10,就可以生成比特币并生成最新区块您可以看到大约经过的时间。2017年11月某个时候的最新块高不到50万。简单计算一下,这个数字乘以10就是从比特币诞生到现在为止的经过时间。但是,如果从平均值反向计算该值,则平均块生成时间约为9.5分钟,因此存在微小的差距。但是,比特币区块链具有创建这种转变的机制,所以这不是问题。

块具有称为“块头”的部分,其中包含有关该块的信息。以下信息作为其他块信息存储在比特币的块头中。

先前的区块哈希(Previous Block Hash)-默克尔根(汇总区块中的整个交易记录)-区块生成时间的时间戳。

区块生成时的挖掘难度(工作量证明)Nonce

您可能已经注意到,在块标题中没有显示块信息的块高度信息。因此,要了解“块高度”,您必须计算到目前为止已确定的块数。如您所见,获取“块高”值并不像听起来那样容易。

210000块:

https://blockchain.info/block-height/210000

4年1次的约定

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

2016前,2016后

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

比特币系统调节挖矿难度的原理是:根据前2016个块产生的总时间,调整后2016个块的挖矿难度,让挖出这2016个块的时间为14天。因为,每小时6个10分钟乘以24小时再乘以14天=2016。所以,所谓10分钟只是平均值目标。由于目前算力上涨很快,实际上挖出2016个块的速度往往少于14天。

最后,选2100万的真正原因,网络上有很多种猜测,有些很靠谱,有些不靠谱但很欢乐。

选了几个有意思的给同学们看看。

1、Because we’re living in the 21st century!翻译:因为我们生活在21世纪!

这个答案太天真,不忍吐槽。

2、He chose a reward scheme and 10 minute blocks. When he did the math, it came to 21 million. He didn’t choose the 21 million, he just accepted the consequence of the parameters he chose.

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

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

区块链小人物;xxxyyy-mo

本文来源:只挖主流币原文标题:比特币是如何实现总量恒定的

关于作者: szhbsd

热门文章