区块链分叉是指区块链分裂成两个独立的分支的技术现象。这两个分支在分裂点之前共享它们的交易历史。从那时起,它们各自独立地朝着各自的方向发展。
区块链分叉的原因有很多。分叉可以是意外的,也可以是有意的。有意的分叉进一步被分类为软分叉或硬分叉。
在任何给定的时刻,成千上万的矿工都在竞争创建一个新区块。由于同时进行了如此多的挖矿活动,两个或更多矿工有时会同时挖出一个新区块。当这种情况发生时,就会产生一个意外的分叉。当新区块被添加到其中一个链上时,问题就解决了。当这种情况发生时,网络将继续在较长的链上工作,并放弃较短的链。
当进行有意的分叉时,网络不会在单一链上重新汇合。这种类型的分叉被区块链开发者用来实现对协议的更改。例如,开发者可能使用有意的分叉来增加区块大小,减少区块时间,甚至实现一个全新的共识算法。有意的分叉可以是硬的或软的。两者在与另一个链的兼容性和它们的应用方面有所不同。
硬分叉是一种引入新规则的分叉,要求网络中的节点升级它们的软件。考虑一个区块链,它的区块大小限制为 1MB。如果你想要更大的区块,能够存储多达 8MB 的数据,你必须实施一套新的规则,将区块大小限制从 1MB 增加到 8MB。这将导致一个硬分叉。
当硬分叉发生时,社区成员(用户和矿工)必须做出决定。他们可以更新他们的节点并切换到新分叉的链上,或者他们可以继续运行旧软件。无论哪种方式,他们在两个链上都拥有加密货币;他们在遗留链上拥有之前的币,他们可以在新链上声明新协议的加密货币。
一旦更改到位,任何未升级到新共识规则的节点都将无法再参与共识机制。它们在硬分叉发生的那一刻被迫进入一个单独的链。未升级的系统无法处理新的共识规则,使得由硬分叉导致的区块链分裂与主链前向不兼容。
与硬分叉相反,软分叉实施的更改使链前向兼容。为了前向兼容,根据新规则创建的区块也必须根据旧规则有效(反之则不然)。因此,软分叉不要求节点升级。它们可以继续运行旧版本的软件,并仍然作为交易的验证者参与升级后的网络。软分叉可以由用户(UASF,或用户激活的软分叉)或矿工(MASF,或矿工激活的软分叉)激活。
区块链分叉相当常见。事实上,它们是创建新加密货币的方式之一。一些流行的货币是硬分叉的产物。一个例子是比特币现金,它在 2017 年 8 月从比特币分叉而来。比特币现金的分叉将区块大小限制从 1MB 更改为 8MB,后来又更改为 32MB。
硬分叉的另一个例子是以太坊经典。这是在 2016 年 10 月创建的,当时一群开发者拒绝了通过硬分叉实施的新规则。相反,他们选择继续使用旧的以太坊区块链,后来被重命名为以太坊经典。
由于它们有潜力将区块链社区分成两个群体,硬分叉通常在开发过程中给予软分叉以优先权。最初认为比特币的 SegWit 协议需要一个硬分叉来改变交易的基本结构。然而,开发者找到了一个前向兼容的解决方案,并用软分叉实施了 SegWit。到今天,尚未更新到 SegWit 的节点仍在软分叉后的比特币网络中参与。
对于拥有加密货币的任何人来说,了解分叉将是有用的。如果你拥有的加密货币受到硬分叉的影响,这些知识将帮助你决定应该采用哪个分支,并在选择钱包提供商或加密货币托管人时提供帮助。