如果最近密切关注比特币,也许注意到了关于“分叉”的话题很流行。
与区块链不同,分叉是不同参与者在确定通用规则时发生的技术事件。
根本上说,分叉是区块链分裂成两个路径,要么是关于网络的交易历史,要么是使交易成立的新规则。
因此使用区块链的人必须二选一。
然而分叉类型很多,而关于分叉的科学研究却很新。目前我们知道一些分叉可以自行解决,但社区极度分歧引起的其他分叉会使网络永久分裂,造成两个区块链历史和两种独立的货币。
因此对分叉类型、激活原因和潜在风险的理解并不清晰。
为了进行阐述,我们简单总结了不同分叉的运行原理。
基础知识
开始分类前,有必要知道比特币分叉已经有序的开始了。
分叉是分布式共识的副产物,只要两个矿工几乎同时发现区块就会发生分叉。当后续区块添加到其中一个区块,这种不确定性就会消失;使这个链最长,另一个区块则被网络“孤立”或“抛弃”。
当开发者想修改决定交易是否成立的软件规则,也可以自愿对网络进行分叉。
当一个区块包含无效交易,该区块将被网络忽略,发现这个区块的矿工就会失去区块奖励。因此通常矿工只想挖到有效区块,并加入最长的链。
以下是一些常见分叉及特征。
硬分叉
硬分叉是软件升级,将不兼容旧软件的新规则引入网络。你可以将它看作规则的延伸(使区块大小为2MB,而不是1MB的新规则将需要硬分叉)。
分叉后,继续运行旧版软件的节点将发现新交易是无效的。因此为了切换到新链继续挖有效区块,所有网络节点必须升级为新规则。
当出现某种政治僵局,社区部分人坚持旧规则,就会出现问题。旧链的哈希率、网络算力将变得不合时宜。重要的是,旧链的数据和规则仍被看作具备价值,矿工当然希望继续挖矿,开发者也希望继续支持它。
The DAO硬分叉是展示社区规则分歧的最好分析案例。现在我们有两个不同软件的区块链——ETC和ETH,各自有不同的理念和货币。
软分叉
软分叉是强化一些规则。因此新规则可能否定1MB的区块,而支持500K的区块。软分叉是向后兼容的。
如果软分叉获得少数哈希算力支持,可能变成最短的链,然后被网络鼓励。或者它可以向硬分叉一样分离出来,单独运行。
软分叉是升级比特币的常用方法,因为它使网络分裂的风险被认为是较低的。过去成功的软分叉包括BIP 66软件升级(涉及签名验证)、P2SH(修改比特币地址格式)。
用户激活软分叉
UASF的理念是不再等待矿池的足够支持,而是由交易所、钱包服务商和运行全节点的企业决定是否激活软分叉(比特币中全节点仍然负责验证区块,包括非挖矿节点)。
这个方法比哈希算力引发的软分叉需要更长的准备时间。事实上人们认为需要至少一年时间才能编写好代码,并给人们充足的准备时间。
而且如果大多数矿工没有激活新规,他们将使用自己大量的哈希算力让网络分裂。
目前该创意还只是理论,并没有实施。
扩展阅读:什么是硬分叉,什么是软分叉,什么是共识?