我们首先从字面上理解一下分叉,分叉在区块链里面来说,顾名思义就是原来一根链,最后通过分叉分为了两根,一分为二,可以这样理解。在区块链中分叉的主要原因有两种:一种,可以理解为软分叉,另外一种,可以理解为硬分叉。咱们今天主要说的话题,就是什么叫软分叉,什么叫硬分叉。这两种分叉分别是什么意思,最后会导致什么样的一个结果,这是咱们今天主要讨论的话题。在区块链中分叉是一个什么样的过程呢?咱们来详细说一下:首先,分叉可以理解为是一种升级,升级在咱们中心化的应用中是一个非常普遍的过程。
第一章 分叉的概念
分叉,顾名思义就是一分为二,当区块链上有两拨参与者(也就是节点)产生分歧的时候,即有一方希望改良,一方则希望保持原状,只要其中一方进行代码更新区块链就会分叉。那么分叉具体是怎么一个过程呢,接下来我给大家讲解下。
第二章 分叉的过程
用苹果手机的都知道,升级一个应用是十分简单的,直接在APP Store中升级就行,这是中心化应用的升级,但是在去中心化的系统中升级就没有这么容易了。比特币网络每次代码升级都要获得社区的一致认同,如果社区无法达成一致,就有可能形成分叉,简单一句话来讲分叉就是指在升级的时候发生了冲突,从而导致区块链分叉。根据分叉后的区块链是否兼容旧区块,将分叉分为硬分叉和软分叉。说的简单点,就是类似window系统的升级和补丁升级。
软分叉
软分叉是指区块链的交易数据结构发生改变的时候,旧节点忽略此种改变,可以接受和验证新节点产出的区块,即软分叉之后不会产生两条链。软分叉相比硬分叉虽然”温和”了不少,但由于软分叉必须向前兼容,也就是说不能增加新字段,只能在已有结构下做修改,所以升级空间有限。且软分叉同样也存在着一些争议,软分叉相比硬分叉技术实现要复杂很多,会使区块链的代码变得更复杂,这不利于未来的代码维护,也更容易出现BUG。硬分叉通常是扩展共识规则,而软分叉是收紧共识规则,所以一旦进行了软分叉,想要回退就非常困难了,很可能造成硬分叉而导致资金损失。
硬分叉
硬分叉是指区块的交易数据结构发生改变的时候,旧节点拒绝对新节点生产出的区块进行验证,旧节点认为这是不符合规则的,所以新旧节点各自沿着自己的链向前走,造成永久分叉,进而形成了不同的两个链。
硬分叉也分为两种,技术上的硬分叉和社区理念上的硬分叉。技术上的硬分叉指的是,节点代码的版本升级,升级结束后,不向前兼容,也就是不对旧版本的节点进行兼容,旧版本的节点代码失效。必须升级到新版本才能进行挖矿记账。
而社区理念上的硬分叉指的是,社区参与者的观点不一致,导致一部分社区成员开发出了新的版本,并进行升级,升级结束则在新的链上进行挖矿,而另一部分开发者则依然在原链上进行记账挖矿,这样就导致生成了2条同时运行的公链。
第三章 兼容性区别
需要注意的是,软分叉和硬分叉都”向后兼容”,什么是”向后兼容”呢?”向后兼容”指的是新软件接受由旧软件产生的数据,举一个最简单的例子咱们:Windows 10可以运行Windows XP的软件。这里注意,软分叉还可以”向前兼容”,”向前兼容”就是指旧软件接受由新软件产生的数据,如用word2013保存的兼容版本文档可以由word2010打开。而硬分叉不支持向前兼容,一旦升级后,新节点软件版本产生区块将不再兼容老的节点。接下来咱们举例来说明硬分叉的几种情况。
比特币:
比如比特币硬分叉出比特币现金这种币,因为是否扩容区块的大小导致社区出现了两派,一部分以矿场为代表,另一派以社区开发者为代表;双方因为理念和各自代表的利益吵得不可开交,于是矿工为代表的一方就通过节点代码升级出现了两条链。一部分矿工在新链上生产区块,一部分人继续在旧链进行挖矿,这才导致了比特币现金的出现。
EOS:
而eos呢前段时间也是搞的沸沸扬扬的分叉事件,起因是因为BM发了一条信息说,eos要进行硬分叉,让社区的一大部分人吓得不轻。最后发现BM说的分叉是软件技术的硬分叉,不会导致生成两条链。EOS主链发布以来,基本上每周都会有代码上的小更新,小补丁,但这些都不是硬分叉。但很明显,这次BM提出的升级,是一次比较”严肃”的升级,其目的是为了提升EOS的性能,并不是因为EOS社区里出现纠纷,打得不可开交才会硬分叉。这是一次技术性的硬分叉,所有的节点都会升级到最新版,并不会出现”EOS现金”类似的情况。如果EOS节点不更新那这个节点就没有了,之后它就不能再继续作为节点存在。他只能在旧链上自己玩,包括钱包在内的所有应用都会失效,因为旧链与应用都不再被兼容,整个旧链都会”死”,就更别说节点了。
以太坊:
区块链圈里第一个有影响力的硬分叉应该是以太坊的分叉事件。以太坊上一个著名的项目The DAO由于其自身漏洞,导致黑客窃取了当时价值约6000万美元的以太币。2016年7月,以太坊开发团队通过修改以太坊软件的代码,在第1920000个区块强行把The DAO及其子DAO的所有资金全部转到一个特定的退款合约地址,从而”夺回”黑客所控制的DAO合约币。
由于一部分矿工并不认同这个修改,于是形成两条链,一条为以太坊(ETH),一条为以太坊经典(ETC),各自代表不同的社区共识以及价值观。当以太坊发生了这次硬分叉后,产生了两条链。由于这两条链在发生分叉之前的数据都是一样的,一个非常有意思的现象出现了:原本持有以太币(ETH)的人,发现自己除了持有原有的ETH外,又有了相同数量的ETC。
也就是说,凭空的多出了一些资产。这些资产的价值具体怎样,还要看市场交易情况。但总的来说,区块链的硬分叉,没有减少资产,反而让人手里多了一种资产,看上去总归是一件不亏的事情,于是区块链分叉就成了一种资产凭空增加的方式。
第四章 IFO
社区硬分叉,让大量的币持有者凭空的增加了一种新的数字货币。 硬分叉这种创造货币的方式和ICO非常类似,于是一个新的名词诞生了——IFO(Initial Fork Offerings)。
随着越来越多的硬分叉发生,比特币的公信力是否还能像以前一样?IFO会不会成为比特币的杀手?我认为这还需要时间的考验。IFO本来可以是一种很不错的对比特币改造的实验方法,但是这些分叉币不但丝毫没有影响比特币的价值与地位,反而他们自己看起来大部分即将归零。比特币可以无限复制出无数种加密货币,为什么只有比特币有价值?现在事实给了你们一些答案,你可以复制比特币的代码,创造无数个比特币,但是比特币背后的生态(开发者、矿工、交易所、商家、用户)你无法复制。就像如果把淘宝、微信的源码给你,你能再造一个淘宝和微信吗?
第五章 分叉是好还是坏
分叉的好坏目前也没有一个定论,如果分叉的目的是使得公链更加健壮,那么我们认为这种分叉是有利的,如果分叉的目的单纯的为了IFO并衍变为割韭菜的圈钱行为,那么我们认为这样的分叉是有损公链的实际价值的。但是分叉最终的结果必定会对币的内在价值带来一些波动。