自2017年8月1日,比特币现金(BCH)在比特币区块高度为478559,分叉成功之后,比特币(BTC)分叉就一发不可收拾。先后出现了BTG,B2X,BCD,SBTC,BCHC,BTX等一系列分叉币。只要分叉成功,比特币持有者,将按一定比例自动获得相应数量的分叉币。虽然比特币持有者能够获得额外收益,但是对币圈的发展是不利的。
比特币是最成功的区块链应用,而区块链的基本核心就是共识(通俗来讲就是信任规则)。在不熟悉区块链的人看来,比特币在2017年被分叉多次,实际上比特币每时每刻都在分叉(见下图)。2个不同节点在大致相同的时间都产生相同的区块,这是非常常见的,这时2个节点就发生了冲突(即出现分叉),节点收到2个冲突的区块链同步,会判断此时哪条链的长度更长,会以长度更长的区块链为准。
区块高度2 ——> 区块高度3 ——> 区块高度4 ——> 区块高度5
/
区块高度0 ——> 区块高度1
\
区块高度2 ——> 区块高度3 ——> 区块高度4 ——> 区块高度5 ——> 区块高度6
上面的分叉是显而易见的,那什么是分叉呢?大部分节点升级后,和以前的共识不兼容,且一部分节点没有升级或不想升级,这就产生了分歧,打破共识,即分叉。分叉有2种,一个是硬分叉,另一个是软分叉。
硬分叉
新节点的全网算力>50%的情况下,有些节点拒绝升级,沿用原来的共识规则,永久性的产生2条链,比如99%的算力为新节点,1%的老节点依然会维护着不同的一条链,这就是硬分叉。至于之前说到的分叉币,是在全网算力<50%的情况下产生的,是人为强行分出来的一条链,分叉出来之后就跟比特币形成各自独立的共识,比如,比特币的区块大小为1M,比特币现金区块为8M。
未升级的节点 ——> 旧规则 ——> 旧规则 ——> 旧规则
\
升级的节点 新规则 ——> 新规则 ——> 新规则 ——> 新规则
软分叉
新节点的全网算力>50%的情况下,新节点拒绝老节点的区块,老节点能够接受新节点的区块。由于新节点算力大,违反新规则的节点生成的区块就不容易得到认可,新老节点始终在1条链上工作,这就是软分叉。
未升级的节点 … ——> 旧规则 ——> 旧规则 ——> 遵循旧规则,违法新规则 旧规则
\ /
升级的节点 (新旧)规则 ——> (新旧)规则 ——> (新旧)规则
结论
区块链共识的升级,软硬分叉都扮演重要角色。而软分叉的方案更加的聪明,能有效防止区块链的永久性分叉,但却依赖于软件的向前兼容。尽管如此,软分叉相比硬分叉还是具有相当大的优势,允许缓和升级,降低社区分裂的分险。
网友评论