区块链的核心分叉技术
发表于 : 2019-06-24 10:24:08
区块链的核心分叉技术
如果你一直关注比特币,你可能会注意到关于“分叉”的很多讨论。与您在区块链上看到的不同,由于不同的参与者需要就共同的规则达成一致,Fork 是一种技术事件。
比特币等公共区块链的分散性意味着,网络上的参与者必须能够就区块链的共享状态达成协议。网络参与者之间的完全一致会产生一个每个人都认为正确的验证数据区块链。当出现偏离共识的情况时,就会出现区块链分支,分别是临时叉(Temporary Fork)、软叉(Soft Fork)和硬叉(Hard Fork)。
临时叉 Temporary Fork
临时分叉是在加密货币系统上的矿商发现块的同时发生的分叉。这就产生了两个相互竞争的区块链。当矿商选择在一个链上形成后续块时,临时分叉在工作证明系统(如比特币)中得到解决。最长的区块链将胜出并被认为是“真正的”区块链,而较短的链将被放弃。
软叉和硬叉
软叉和硬叉与临时分支的不同之处在于,它们代表了协议底层规则的永久更改。因为所做的更改是永久性的,因此需要在协议层进行更改。造成这种改变的原因有很多,包括 :
以升级的形式向网络添加额外的功能
改变协议中的核心规则,如增加网络块大小
软叉 Soft Fork
软叉是升级区块链的向后兼容方法。换句话说,软叉是向后兼容以前版本的软件升级。软叉不需要网络上的节点升级来维护一致,因为软叉区块链上的所有块都遵循旧的一致规则集和新规则集。但是,符合旧的一致规则集的节点所产生的块将违反新的一致规则集。因此,升级的挖掘主体可能会使这些块变得陈旧。这是因为,要让软叉发挥作用,大多数矿商需要承认并执行新的共识规则集。如果达到了这一比例,那么旧的网络将被废弃,新的区块链将被认为是“真正的”区块链。
软叉的一个例子是实现一个新的规则,将网络块大小从1MB更改为500KB。未升级的节点将继续看到传入的事务是有效的,因为这些节点遵循旧的一致规则集和新规则集。但是,未升级并试图挖掘新块的挖掘节点将拒绝这些块,因为它不符合新的一致规则集,即块大小为500KB。因此,带有1MB 大小块的区块链可能会因为矿商强制执行500KB的新一致规则而废弃。
软叉的例子包括 :
比特币改进方案(BIP) 66:比特币签名验证的软叉
支付给脚本哈希(P2SH):在比特币网络上,一个软叉产生多重签名地址
硬叉 Hard Fork
硬叉是区块链前一个版本的永久分支。在网络中引入了一组新的协商一致规则,这与旧的网络不兼容。换句话说,硬叉可以看作是与以前版本的软件不兼容的软件升级。所有网络参与者都必须升级到软件的最新版本,以便继续验证和验证新的事务块。在硬叉下,尚未升级到协议软件最新版本的节点确认的块将是无效的。运行以前版本软件的节点必须遵循新的一致规则,以便它们的块在分叉网络上有效。如果少数链仍然有挖掘支持,那么两个区块链可以继续同时存在。硬叉通常可以分为两类,它们可以是计划好的硬叉,也可以是有争议的硬叉。
计划的硬叉 Planned Hard Forks
计划的硬叉只是对协议的升级,该协议已经由项目开发人员事先明确了。计划推出硬叉的例子包括莫内罗公司(Monero)在2017年1月推出的硬叉,该产品增加了一项名为Ring ConfidentialTransactions (RingCT)的新隐私功能。
有争议的硬叉 Contentious Hard Forks
该情况通常发生在项目中的开发人员、网络用户和矿商之间有分歧的时候。各派继续分叉当前的链条,并在自己的链条上实现他们想要的改变。通常会出现有争议的硬分支,因为社区的一部分人认为加密货币代码的重大更改将产生更好的区块链。比特币现金硬叉 (Bitcoin Cash hard fork)就是一个著名的有争议的硬叉例子。一部分想要扩大比特币网络的人认为,将比特币的块大小从1MB增加到8MB,收费会更便宜,同时完成更多的交易。
如果你一直关注比特币,你可能会注意到关于“分叉”的很多讨论。与您在区块链上看到的不同,由于不同的参与者需要就共同的规则达成一致,Fork 是一种技术事件。
比特币等公共区块链的分散性意味着,网络上的参与者必须能够就区块链的共享状态达成协议。网络参与者之间的完全一致会产生一个每个人都认为正确的验证数据区块链。当出现偏离共识的情况时,就会出现区块链分支,分别是临时叉(Temporary Fork)、软叉(Soft Fork)和硬叉(Hard Fork)。
临时叉 Temporary Fork
临时分叉是在加密货币系统上的矿商发现块的同时发生的分叉。这就产生了两个相互竞争的区块链。当矿商选择在一个链上形成后续块时,临时分叉在工作证明系统(如比特币)中得到解决。最长的区块链将胜出并被认为是“真正的”区块链,而较短的链将被放弃。
软叉和硬叉
软叉和硬叉与临时分支的不同之处在于,它们代表了协议底层规则的永久更改。因为所做的更改是永久性的,因此需要在协议层进行更改。造成这种改变的原因有很多,包括 :
以升级的形式向网络添加额外的功能
改变协议中的核心规则,如增加网络块大小
软叉 Soft Fork
软叉是升级区块链的向后兼容方法。换句话说,软叉是向后兼容以前版本的软件升级。软叉不需要网络上的节点升级来维护一致,因为软叉区块链上的所有块都遵循旧的一致规则集和新规则集。但是,符合旧的一致规则集的节点所产生的块将违反新的一致规则集。因此,升级的挖掘主体可能会使这些块变得陈旧。这是因为,要让软叉发挥作用,大多数矿商需要承认并执行新的共识规则集。如果达到了这一比例,那么旧的网络将被废弃,新的区块链将被认为是“真正的”区块链。
软叉的一个例子是实现一个新的规则,将网络块大小从1MB更改为500KB。未升级的节点将继续看到传入的事务是有效的,因为这些节点遵循旧的一致规则集和新规则集。但是,未升级并试图挖掘新块的挖掘节点将拒绝这些块,因为它不符合新的一致规则集,即块大小为500KB。因此,带有1MB 大小块的区块链可能会因为矿商强制执行500KB的新一致规则而废弃。
软叉的例子包括 :
比特币改进方案(BIP) 66:比特币签名验证的软叉
支付给脚本哈希(P2SH):在比特币网络上,一个软叉产生多重签名地址
硬叉 Hard Fork
硬叉是区块链前一个版本的永久分支。在网络中引入了一组新的协商一致规则,这与旧的网络不兼容。换句话说,硬叉可以看作是与以前版本的软件不兼容的软件升级。所有网络参与者都必须升级到软件的最新版本,以便继续验证和验证新的事务块。在硬叉下,尚未升级到协议软件最新版本的节点确认的块将是无效的。运行以前版本软件的节点必须遵循新的一致规则,以便它们的块在分叉网络上有效。如果少数链仍然有挖掘支持,那么两个区块链可以继续同时存在。硬叉通常可以分为两类,它们可以是计划好的硬叉,也可以是有争议的硬叉。
计划的硬叉 Planned Hard Forks
计划的硬叉只是对协议的升级,该协议已经由项目开发人员事先明确了。计划推出硬叉的例子包括莫内罗公司(Monero)在2017年1月推出的硬叉,该产品增加了一项名为Ring ConfidentialTransactions (RingCT)的新隐私功能。
有争议的硬叉 Contentious Hard Forks
该情况通常发生在项目中的开发人员、网络用户和矿商之间有分歧的时候。各派继续分叉当前的链条,并在自己的链条上实现他们想要的改变。通常会出现有争议的硬分支,因为社区的一部分人认为加密货币代码的重大更改将产生更好的区块链。比特币现金硬叉 (Bitcoin Cash hard fork)就是一个著名的有争议的硬叉例子。一部分想要扩大比特币网络的人认为,将比特币的块大小从1MB增加到8MB,收费会更便宜,同时完成更多的交易。