区块链分叉机制是什么?

时间:2023-11-18 17:29:03

分叉就像手机中的APP,有时候会提醒用户去升级软件,这时只要直接到APP Store中点击升级即可。但是,区块链中没有中心化机构,比特币等数字资产每次代码升级,都需要获得比特币社区的一致认可,如果比特币社区无法达成一致,区块链就可能形成分叉。比如,为了解决比特币的区块链拥堵问题,比特币爱好者于2017年7月提出了比特币现金(Bitcoin Cash)分叉方案,这使得比特币区块链一分为二。

区块链分叉机制是什么?

比特币采用的工作量证明机制,就是让矿工互相竞争求解一个数学题,谁先解出来,谁就大喊一声“我的工作量证明成功了,你们快来看”。矿工就会复制一份结果,贴在自己账本的最后,然后开始新的记账过程。

在这个过程中,经常会出现这种情况:两个矿工同时解出了题目,怎么办?在任何区块里,第一条都没有转出地址,就是所谓的挖矿交易(Coinbase)。任何人都不会付给矿工这笔钱,矿工只是理所应当地写上“自己获得了12.5比特币”。如果所有节点都认可矿工这样写,矿工就得到了挖矿收入。在填写区块的时候,不同的矿工数据一定不同,因为每个矿工的第一条都不同,矿工只会把挖矿收入转入自己的地址。

每个矿工的区块数据都不一样,解题得出的结果自然也就不同,但都是正确答案。于是,区块链就会出现两个满足要求的不同区块。那么,矿工怎么办?不同的距离,不同的矿工,看到这两个区块是有先后顺序的。通常情况下,矿工会把自己先看到的区块复制过来,然后再在该区块开始新的挖矿工作。于是,就出现了分叉形象。

什么是分叉?在以工作量证明机制为共识算法的区块链系统中,这个问题是这样被解决的:从分叉的区块开始,不同的矿工跟从了不同的区块,在分叉出来的两条不同链上,算力会有所不同。形象地说,就是跟从两条链的矿工的数量是不同的。

解题能力和矿工的数量成正比,两条链的增长速度也就不同。一段时间后,总有一条链的长度要超过另一条。一旦矿工发现全网有一条更长的链,就会抛弃当前的链,把新的更长的链全部复制回来,并以此为基础,继续挖矿。如果所有矿工都这样操作,这条链就会变成主链,分叉出来被抛弃掉的链就消失了。最终,只有一条链会被保留下来,成为真正有效的账本,最终整个区块链依然是唯一的。

需要注意的是,能够让区块链保证数据唯一性的前提是:所有矿工都遵从同样的机制。