站在技术角度学习区块链(四) 区块分叉

1.软分叉

软分叉是由比特币交易的数据结构改变引起的,但区块的数据结构并不发生改变。分叉后的老节点接收新旧格式的区块,但新节点只接受新区块。软分叉分为两种:

  • 矿工**软分叉(MASF, Miner Activated Soft Fork)
  • 用户**软分叉(UASF, User Activated Soft Fork)(BIP 148)

“矿工**软分叉”是Core团队为了推分叉所提出的一种标准/协议,但只有30%+的矿工进行了响应,导致分叉推广失败。因此推出了“用户**软分叉”,是以用户的角度发起的软分叉,从而应对了矿工不合作的情况,同时实现了隔离见证(Segwit- Segregation Witness)(BIP 141).

2.硬分叉

这是由于不通的矿工之间产生了分歧,因此产生了分叉。例如之前以太坊被黑客攻击以后产生的ETH链和ETC经典链。产生硬分叉以后在分叉以前产生的币会在新的两个分叉中同时存在,即变为原来的两倍,但具体哪个链更具备价值是由之后挖矿的情况来看,如果分叉后算力变小,则很容易出现被超过5!%的算力进行破坏,从而逐渐失去价值从而消失。目前一个经典的分叉就是BCC

站在技术角度学习区块链(四) 区块分叉

3.临时分叉

当两个矿工几乎同时挖出同一个区块,则会产生分叉,但随着时间的推移,总有一个链变得更长,从而大家只承认更长的链,从而较短的区块将被废弃。这也是为什么比特币交易成功较久的原因,因为需要等到最好超过6个区块来保证链的稳定,否则会出现人才两空的问题。

4.隔离见证

由于块钱链上的交易越来越多,单个区块的大小是1M,打包时间仍然是10分钟,使得很多交易被抛弃,因此为了提升效率,将区块中的签名信息取出来,然后单独存储。例如:

原始区块如下所示:

站在技术角度学习区块链(四) 区块分叉

新的区块:

站在技术角度学习区块链(四) 区块分叉

经过隔离见证以后,交易速度将被提升,除了实现这种方式,也可以扩容区块大小,但目前扩容区块大小会使得个人PC无法应用于区块链的挖掘,因此需要等待实际成熟才能进行区块的扩容,未来也比较期待“闪电网络”的应用。