简要介绍为何比特币10分钟会产生一个区块?

2022-01-25 10:14:15

比特币虽然发展比较好,价格也比较高,但它并不是无限量供应的,根据创始人的构思,比特币将会每四年进行一次区块链减半,并且每十分钟产出一个区块。有些投资者很难理解,比特币投资回报率这么高,为什么要搞的这么复杂,区块链减半主要是为了稳定比特币价格不至于下跌太多,这样就可以保障比特币投资价值,这一点比较好理解,但大多数投资者不清楚的是为何比特币10分钟会产生一个区块?下面211Coin小编就给大家简单介绍一下。

简要介绍为何比特币10分钟会产生一个区块?

按着官方所说, 每个节点需要一些时间来确认block(<10mins),但是为什么要10分钟?和hash方程的难度有关么?

比特币选择10分钟来产生区块,也就是1/600 BPS (Blocks/Sec),这个是根据具体设计而制定的,也是人为的选择。而比特币的交易处理速度最高为:7 TPS (Transactions/Sec),这个是整个交易验证机制、共识机制,和P2P通讯机制,以及代码实现后所达到的一个技术上限。相比而言,以太坊目前是1/20 BPS和20 TPS,维基链是1/10 BPS和1000+TPS。

对于POW共识机制的公链来说,BPS是通过变更挖矿的难度系数来动态调节的。然而对于DPOS机制的公链,BPS是恒定的。

那么具体谈一下比特币的BPS设计选择来由:由于比特币采用了POW共识机制,也就是人人都可以成为矿工参与挖矿,而且可以随时退出挖矿。这样就导致了整个网络里面参与挖矿的矿工算力是动态变化的。当参与挖矿人数少的时候,算力低,挖矿难度系数根据算法相应自动降低;反之,当参与挖矿人数增多,算力增强,挖矿难度系数会根据固定算法来自动提升。

通过难度系数的调整来确保相对固定的出块时间。但是由于难度系数不是在实时调整的,而是根据设计和代码实现每隔了2016块调整的,也就是差不多2周的时间(假如说绝对均匀时间出块:2*7天*24小时/天*3600/小时/600秒/块 = 14*24*6=2016)所以调整难度系数有滞后,无法及时掌握总体算力的变化而调整,导致了每次算力调整后出块的时间有长有短,但是总体上是上下围绕10分钟波动的,而且不会有太大的偏差,也就是实现了一种统计学上的守衡。

为了增加感性认识,参见以下网络统计出来的比特币区块生成的花费时间表:

<= 10 分钟

> 10分钟

> 20分钟

> 1 小时

63.2%

36.8%

13.5%

0.25%

那么为什么调节了难度系数可以确保BPS相对守衡呢?因为难度越大,越需要更多的算力参与才能在同样的时间里面算出答案,也就是挖到矿。反过来,要保持同样的时间来挖矿成功,就需要根据算力的总量来调节难度系数了。

但是又为什么一定是10分钟呢?当初中本聪(Satoshi Nakamoto)做这样的选择,并没有明确说明,网络上也有很多的研究,但是并没有一个『官方』或者绝对权威的说法。根据笔者对区块链的研究,认为这个时间的长度是基于以下几个因素考虑的:

1、交易广播时间:所有参与挖矿的矿工都需要获得最新区块的信息并在这个基础上试图挖到连接的下一个块。根据研究表明,从一个节点广播一个消息到P2P全网节点的时间为下表统计所示:

简要介绍为何比特币10分钟会产生一个区块?

也就是说,平均全网每个节点获得一个新块的时间在12.6秒。比特币有10分钟的块产生间隔,也就是远大于广播覆盖全网节点的时间,这也是必须的。

2、共识确立时间:如果块间隔时间短,难度系数必须变小才能确保更短的出块时间。这样在同样的算力下,会有更多的矿工在上一个块的基础上产生一个新块,从而增加更多的分叉现象,也会导致有更多的无效块在网络中广播,导致每个参与节点需要做更多的计算来处理分叉。

3、空块率大小:在没有交易的时候区块链也会产生空块,这种相对属于一种机制上的浪费,而且无法避免。那么如果间块隔时间过短,空块生成几率越高,从而产生的浪费也就越大。

为了形象地展示整个网络节点挖矿过程,用下图给大家一个说明:

假如全网总共有三个比特币矿工在挖矿,其中绿色的路线是分别挖矿成功的节点迁移轨迹。

但是,具体从一个矿工节点的角度看,在先后两个块的间隔时间里面分为:

简要介绍为何比特币10分钟会产生一个区块?

让:T = t1+t2 的时间就是块间隔时间。t1负责挖矿,t2负责解决冲突和广播挖到的新块。如果有分叉并且t1产生的新块不被接受,那么浪费的时间就是t1。

假如为了控制整体网络节点的计算浪费率控制住10%以内,那么 t1/T = 10%。

如果 t1=1min,那么T=10min。

然而实际上对于绝大多数矿工,出于总体浪费模式挖矿收益大于节约模式挖矿收益的考虑,他们的挖矿程序在t1+t2整个过程都不会停止,这样一旦前面一个块挖矿成功,第二个连续挖矿成功的几率也增加了。虽然其中也产生了更多的废弃区块,最后总体上挖矿成功的几率就大增了。能源浪费问题并没有因为这个10分钟区块间隔的设计而解决,也算是中本聪当年始料未及的吧。

以上内容就是对为何比特币10分钟会产生一个区块?这个问题的简要介绍,矿工根据历史出块时间自动调节难度,若比10分钟短,就加大难度,反之就减小难度,让下一块的出块时间接近10分钟,设定了10分钟预期之后,关于比特币的很多计算就可以简化,10分钟出一块,出块时间太短会导致较多孤块出现,受其他因素影响较大,也不够安全;出块时间太长会导致交易难以确认,等时过长,10分钟合理、合适、好记、好算,但并不是精确计算得出的数字,不是增一分则多减一分则少。

211COIN发布此信息目的在于传播更多信息,与本网站立场无关,文章内容仅供参考,不代表任何确定性判断,且不构成投资建议,请谨慎对待,风险自担。
相关阅读
Copyright © 2018-2022 211COIN版权所有.