区块链世界当中,节点分布于世界各地,碍于不同位置的节点从网络中接收到的资讯是会有些微的不一致,因此暂时性的区块不同步,是非常常见的,这也是我们在区块链中常听到的「分叉」,然而这种因为网络延迟而导致的分叉时间一长,各个节点的区块链终究会收敛成同样的一条链,为什么呢

可量化的共识

区块链技术完全由电脑完成,人类认知中的许多共识,必须量化成可以用数字表示或是以电脑可以理解的方式规定,才有办法让所有担任节点的电脑共同遵守。

EX:像是一般来说考试将及格设定为60分,就是将“合格”这个共识量化成“>60分”。

而为了让所有节点对于分叉的链有相同的共识,比特币被设定为“选择最长或累积工作量最大的链”作为接续下去的链。为什么这样就可以让所有节点对于分叉链的选择有同样的共识呢

上面这条链可以发现原本的A块后面,同时产出了B块跟C块,一开始B跟C都会被保留,但是一但谁先产出了下一块成为了“最长链”,B块就会被全网络舍弃,继续在C块后产出新的区块,依照这个逻辑,整个系统会随着新区块不断被产出,透过这项共识收敛成一条全网认可的最长链。

软分叉与硬分叉都是因为软件更新导致的分叉,与平时会发生的暂时性分叉现象是不一样的。

什么是软分叉

软分叉:软分叉指的是软件更新的方向是新版本较旧版本的规则更为严格,意即新版本必定能被旧版本接受,但旧版本却不一定能够被新版本接受。更新后的节点产生的区块都能被尚未更新的节点兼容,随着旧版本的用户慢慢发现自己产出的区块时常被其他节点拒绝,就会促使他们尽快升级为新版本。

什么是硬分叉

硬分叉:硬分叉指的是软件的更新方向是新版本与旧版本互不相容,因此硬分叉完成之后,旧版本与新版本会分别在原本的链后面分叉出两条不同的链,如果两条链都各自延续、各有支持者,则就会成为像是比特现金、比特钻石…,直接从比特币区块链分叉出不同的区块链。

此次的以太坊分叉是属于硬分叉,但由于此次得分叉已经获得以太坊最大矿池的支持,确定能得到大部分的算力支持,因此分叉出新链的风险很低,升级完成后,也确定这次的硬分叉并没有因为共识不同而产生新的分叉币。