区块链通常被用作公共的、无许可的网络,没有中央权威机构控制流量。虽然去中心化网络的概念听起来很棒,但是它也存在故有缺点。区块链在交易的场景中的选项是“是”与“否”,那么出现问题时,若不适合特定的需求或者代码中存在缺陷怎么办?此时我们可以通过进行网络升级解决,但前提是得到大多数用户的同意。
升级共识
不管技术上的差异如何,公共项目有一个相似之处:当且仅当三个组(开发人员、验证人员和用户)一起工作时,网络能进行升级。
•开发人员:如果需要更改,开发人员有责任提出最佳的技术解决方案。如果没有人决定编写代码,无论人们怎样争论,都不会有任何改变。
•用户:供需提供者,保持网络运行和忙碌。没有供求关系,网络将毫无价值。
•验证人:它们验证交易并确保一切正常。如果没有验证人,交易将永远无法完成。
如果其中一个组缺席或无所作为,网络将永远无法完全发挥作用。这就是为什么分叉难以进行而又不常见的主要原因之一。
分叉
在DLT中,每当代码发生修改时,我们都将其称为fork(分叉),上文提到的大多数参与者通常都必须接受。新代码有两个特征,它们与原始代码相似,而不是相同,并且具有相同的历史。
DLT中的fork可以分为两类:
1. 软分叉: 大多数人同意升级当前状态,只维护一个网络
2. 硬分叉:至少有两个组不同意,导致单一或多个网络
软分叉
谈到软分叉时,人们总解释它是向后兼容的升级:当协议发生更改时,用户可以选择是否更新协议。即使有人决定不更新,只要不违反新规则,他仍然可以进行交易。随着时间的推移,遵循旧规则的用户数量最终会变为0。
例如,当一个块大小为1mb的协议社区决定通过一个软分支增加到2mb时,一些用户决定不更新,保持原来的大小。即使在这种情况下,他们仍然能够请求和完成交易,但它将被限制在1mb。
硬分叉
与软分叉不同,硬分叉不是向后兼容的,它可能导致两个不同的结果。原来的链可以变成一个新的单链,也可以分裂成多个独立的链。无论哪种方式,用户都必须更新到较新的版本。
从通证的角度来看,在软分叉中永远只有一个通证,而在硬分叉中,有可能继续使用原来的通证(单链硬分叉)或有额外的通证(由产生的分叉数决定)(多个硬分叉)。
由于所有网络共享相同的历史记录,在多个链中,硬分叉用户可能会被授予B通证,数量与他们在分叉之前拥有的A通证数量相同。假设,如果我有10个LNX通证,而这个链经过硬分叉,得到一个名为LINIZ
(LNZ)的不同链,那么我将得到10个LNX + 10个LNZ(每个都有各自的价格)。但这依情况而定。
硬分叉的最著名的例子之一是比特币(BTC)分叉,导致了比特现金(BCH)的诞生。在讨论可扩展性时,部分用户对当前区块大小表示不满意。这进而导致了社区的分裂和比特现金的诞生。(当前BTC的交易价格为5259.74美元,而BCH的交易价格为303.71美元。)
暂时分裂
你一定听说过,暂时的主链分裂。正如在前一篇文章中提到的,区块链是一条不可逆的数据链。然而,在成为一个不可逆转的链之前,它会暂时分裂成几个其他的链。这些分割是区块创建的结果,其中验证器建议包含不同交易组的不同区块。
在比特币的例子中,分裂持续增长,形成暂时的分裂,直到其中一条链成为最长的,并永久连接成为主链。
临时分裂不应用代码中的任何更改,它只定义将哪些交易添加到特定区块中,因此通常不将它们视为分叉。
网友评论