“分叉”这个词,在数字货币领域是一个非常常见的名词,比特币就有很多的分叉币,而BCH就是其中最为出名的那个,不仅诞生的时候闹得满城风雨,在2018年底还整出来了一场算力大战,搞得整个数字货币市场大跌。
而本月,数字货币排名第二的以太坊也将要进行一场“君士坦丁堡分叉”。所以今天,小K君就给大家讲解一下,分叉是怎么回事?分叉和升级又有什么区别?
分叉的由来
首先小K君先来解释一下,分叉是怎么来的。“分叉”这个概念,最早来自于比特币。我们都知道比特币的交易都是基于比特币区块链网络,在这个网络上,每隔10分钟就会产生一个新的区块,而区块容量的大小则会对交易的效率产生限制,如果交易量过大,就会造成比特币网络的拥堵。
而早期比特币区块的容量只有1M,所能容纳的交易数量大概也就5-7笔。在2017年之前,由于币圈用户数量还不多,交易的效率也就不是什么大问题。但在2017年之后,随着比特币的价格高涨,涌进来的用户也越来越多,渐渐比特币网络经常会有拥堵现象的发生,至此比特币的扩容成了迫在眉睫的事情。
面对这个问题,比特币社区出现了分歧。以Core为首的比特币原开发团队认为,比特币是一种价值储存品的电子黄金,一旦扩容会破坏其核心的东西。而以吴忌寒为首的矿工团队则认为,比特币未来应该是一种可快速流通的货币,需要对其进行扩容以解决交易拥堵问题。
因为区块链的去中心化特性,任何个人和机构都无法决定比特币系统该如何去“扩容”,每个人都有自己的意见,大家的意见产生了分歧,谁也不愿意退让,于是,大家一拍两散,各走各的路,比特币这条链便分裂成了BTC和BCH两条链,久而久之就演变成了所谓的“分叉”。
“硬分叉”和“软分叉”
那分叉的具体定义又是指什么呢?实际上,对于区块链来讲,分叉就是区块链协议的改变。分叉是区块链升级的一种,来弥补之前系统存在的一些不足。
举个例子,我们现在使用的一些APP也好,安卓系统、苹果系统也好,这些都会进行周期性的升级,只不过这些升级都是具备中心化特点的,所以如何升级由开发团队自主决定。
而区块链因为其去中心化的特性,当系统面临升级的时候,必须由所有参与者共同决定。大家达成共识,则与安卓系统更新没什么区别;可一旦发生分歧且无法达成共识,系统则会一分为二,出现两个基于原有区块链的新系统,大家各过各的,谁也不能干预谁。所以,分叉本质上是区块链的一种去中心化特色升级方式。
分叉又有意外分叉和有意分叉之分。其中意外分叉是这样一种情况:
当两个或以上的矿工在几乎相同的时间成功挖到区块,便会出现意外分叉。 此时,矿工便会分别在两条分叉上各自挖矿,直至其中一条分叉比其他分叉更长(这代表矿工对采纳哪一个分叉已达成共识)。因此,矿工网络随后便会放弃挖掘其他分叉。被抛弃的区块被称为“孤立区块”。因此,不少密码货币使用者,均要求交易需要多次确认,以防止意外分叉使交易所在之区块变为无效。
而有意分叉又有“硬分叉”和“软分叉”之说。
(一)硬分叉
“硬分叉”是指:区块链发生永久性分歧,硬分叉之中新分叉所产生的区块将被旧软件视为无效。因此所有参与者,包括交易服务器以及矿工(节点),都必须更新软件,才能继续运行新分叉。如有节点组继续使用旧软件,而其他节点使用新的软件,便有可能分裂成两种货币。
以比特币为例,分叉为BCH与BTC就像树枝分叉一样,在原有的枝干上开出了新芽,原有的枝干就是BTC,而新发的芽就是BCH。使用BCH新软件的节点所产生的区块,对于使用旧软件BTC版本的节点来说是无效的,反之也是如此。大家同根同源,但又互不干预,成为了两条链,两种币。
这就好比“堵车”,我们在一条路上堵了很久,这时,小K君高喊:“旁边有条不堵车的小路,相信我的就跟我走,不相信我的,我们就此拜拜!”于是,有些人跟小K君走了小路,沿着新路线继续行驶;有些人不同意走小路,那么,他们从此将与小K君一拍两散,永不相见。
(二)软分叉
“软分叉”是指:在新的共识规则发布后,由于软分叉的新规则仍旧符合老的规则,所以,使用旧版本的节点可以验证使用新版本节点所生产出的区块,使用新版本的节点也可以验证使用旧版本节点生产出的区块,两种版本可以兼容。
还是以比特币为例,2017年比特币隔离见证升级所采用的就是软分叉。在整个过程中,不管是使用旧版本还是使用新版本都没有关系,因为两者兼容,新版本只是更好地解决了一些问题,本质上大家还是在比特币这一条链上跑,没有新币产生。
好比在某一条路上经常发生堵车,这时,小K君建议:“这条路堵死了,但是这条路大家都走习惯了,不如咱们不放弃不抛弃,再修一条辅路来帮助主路分散流量吧!之后,大家爱走主路走主路,爱走小路走小路,随时保持联系!”
所以软分叉与硬分叉的区别就在于,使用旧软件的节点能否兼容使用新软件的节点,可以兼容,就是软分叉,不能兼容就是硬分叉。