如果了解加密货币挖矿的运作过程的话,就会知道矿工在经过计算后会挖出一个新的区块,而其他矿工在一个新区块诞生后,其他矿工会继续从该结果继续运算下去.然而,当在同一时间有两位矿工同时挖出区块的时候,可能会有两个不同的结果发生.因此,其他矿工将会有一个以上的区块可以追踪,持续下去就会形成两条不同的区块链,这种情况就是所谓的"分叉"(Fork).
不过,"分叉"通常被视为一种"暂时的非一致现象",情况不会维持太久,最终会被后续越多区块的加入而得到解决.原因是矿工们都会倾向作出共识,选择发展得较长的一条区块链并持续运作下去,并把原先的结果复制到较长的区块链上,因此最后区块链还是会趋向于同一条.不仅仅是比特币,区块链中的分叉可以出现在任何加密技术平台中,这是因为区块炼和加密货币无论在哪个加密平台上都以基本相同模式工作.
在区块链网络上出现的"分叉",很大程度上是基于"网络中传递资讯的延迟"所导致.由于网速传输延迟造成区块不同步,因此"分叉"无时无刻都在发生.当区块链上因"共识"而产生改变,就会把节点分成"已更新"跟"尚未更新"两个版本,尚未更新的链会被保留在原本的链上,和已更新节点组成的链分叉成两链.
"分叉"亦可分成"硬分叉"和"软分叉",但两者在本质上是相同的.硬分叉是一种彻底的升级,可以使以前的交易和区块有效或无效,并要求网络中的所有验证者升级到较新版本,因为旧链上的矿工无法接收新链上矿工产出的区块.在这个情况下,只会出现两种结果,第一个情况是矿工们接受更新,在一条大链持续运作下去,并完成区块链的更新.第二个情况是矿工们都不接受更新,坚持继续使用旧链,并保留一定数量的矿工持续维持着旧链的运作.最后,这条链就会完全分叉开来,并产生一个称作"分叉币"的全新币种. 其中,以太坊就是一个好例子,为了更容易调整,以太坊主要以硬分叉来完成以太坊结构,规则上的更新.
相比起硬分叉,软分叉在共识上较易取得平衡.在软分叉之下,即使出现了新版本,旧版本上的用户端依然可以按照旧链上的规则交易.在这个共识下,就可以不用透过分叉来进行整个链的修改,只需要加入一些新规定让新旧链兼容就可以了.软分叉有利于现况的持续稳定使用,对于一些不想改变现状的人是一大好事.但是,由于软分叉需要兼顾旧链的运作,所以改良空间有限;相反地,硬分叉不用顾虑到旧节点的特性,在更新和调整上的幅度可以更大.
软分叉是一种渐进式升级机制.只要大多数参与者参与升级,软分叉便会发生.以比特币区块链为例,如果当新系统规定区块大小从 1000KB 更改为 800KB 时,未升级的矿工仍可查看新交易是否有效.可是,他们挖矿的工作可能会被区块网络拒绝.随着原有区块的矿工意识到他们的区块受拒,他们会逐渐选择升级.随着更多的矿工升级,便会令原有区块被孤立.于是,整个区块生态便能以较温和的方式完成更新.