长链与短链

今天的思考放在前面,带着思考来看全文。比特币是一个去中心化的系统,每个全节点中都保存着一份区块链账本数据,并且从理论上来说,矿工可以从任意区块高度开始继续向下挖掘新的区块。那么这种情况下如何确定什么样的区块链是有效的?

在全部的矿工创建区块链的过程中,由于存在网络传输的延时,所以经常发生“分叉”现象,也就是出现两个矿空同时在系统中广播“自己完成了区块的哈希计算”并发布了新区块的现象,而且经过其他矿工的验证,他们的结果的确都是成立的。

这时,系统中的矿工节点会各自选择一个区块作为父区块继续挖矿,但同时也保存另一个区块的信息作为“备用区块”,此时从系统的角度来看,意味着比特币区块出现了分叉,切分为两条链,不同的矿工会随机选择不同的分支,这些分支被当做备用链。

接下来,新的区块被计算出来,并链接到原来的分支链上。由于矿工选择是随机的,区块计算也有很大的不确定性,算力的分布也是不均匀的,所以在两条链上新增1-2个区块后必然会出现某个分支上的区块数量更多,长度也比其他分支要长的情况。根据规则(总是选择工作量最多的区块链),所有的矿工都会选择更长的那条区块链进行下一轮区块计算,包括那些之前在较短的链上从事区块计算的矿工。

如果新添加的区块使备用链累积了更多的工作量,那么这条备用链将被作为新的主链。于是长链更长,短链不再更新,原来短链上面的区块也会被丢弃,组装短链区块链的矿工也得不到比特币“奖励”。最重要的是,从系统的角度来看,比特币区块链又回到了只有唯一一条主链的情形。

根据比特币的历史经验,发生过的最多的平行区块链是6层,即两条链上各有6个区块继续同时发生。这种情况只发生过一次。

如果区块产生的时间间隔设计得更短,则可以更快完成交易的确认(比如每分钟一个区块,就会比目前每10分钟一个区块的确认速度快10倍),但同时会导致区块链分叉更加频繁地出现。反之,把区块的交易组装时长设计为更长的间隔,由于区块内含交易的增多使区块的计算变得复杂,能够减少“同时形成两个有效区块”的分叉数量,降低了分叉的不利影响,但同时会导致更长的交易确认时间,影响用户的使用体验。所以,中本聪将比特币区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率之间做出的平衡。

为了使区块产生的时间稳定在10分钟左右,比特币系统引入了哈希计算的难度值自动调整机制,每当系统内完成了2016个区块的创建时,就会自动调整挖矿算法的难度系数。这个调整是由矿工节点按统一的公式自动计算的,因为每隔10分钟产生一个区块,产生2016个区块要花费14天,因此每隔2周左右比特币挖矿的难度会产生一次变动。

今天的分享就到这里。

>>> 【买币首选】DragonEx龙网交易所,买比特币和以太坊等币简单快捷,现在注册交易手续费终身4折,每天现金分红 + 30%年化理财收益,注册并中级认证即可获得抽DT奖励(100%中奖),1小时内极速出入资金。

...

...

>>【8年老牌】现在注册Gateio比特儿交易所,即可享受一年内交易手续费9折优惠+糖果空投。

...

...

相关推荐

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址