所谓区块链的分叉,可以说是区块链网络中独有的一种版本升级方式。像我们日常生活所用的“微信、淘宝”这些APP,实际都是中心化的应用,每隔一段时间腾讯、阿里这些应用的创建者们,为了增加新功能或解决一些bug,所以就要对程序进行升级。
这类app升级的时候,会由阿里、腾讯这些中心化的团队,将代码完成后,部署在后台中,先进行服务器的升级,然后我们这些用户才可以在终端(客户端)升级产品,但归根到底,这些中心化的互联网产品,升级的内容是一致的,由中心化的公司决定,用户统一升级。
而区块链中的系统,我们知道,它是一个人人都可以参与的数据库,它的代码是开放的,整个网络是去中心化的。这就意味着没有中心化的公司来做升级决策,制定版本的升级内容,甚至连服务器都没有。
所以,当区块链在做版本升级时,就需要一种与中心化产品升级完全不同的升级方式。于是分叉就应运而生。
区块链虽然没有中心化的公司来维护、也没有一个中心服务器,但每个人都可以参与进来,这就使得区块链在做版本升级时,升级的内容会由参与的矿工共同来决定该如何更改,甚至有可能因为矿工之间发生分歧产生多个版本,不像互联网一样,一家独裁,没有选择的余地。
此外它也是有终端的,每个终端都会连在区块链这个大的分布式数据库中。数据被打包成区块,链接起来形成一个链式结构。
它的原理是这样的:当区块链进行版本升级时,其实是由终端开始升级,大家可以在各自社区中下载、安装,进行升级。升级后的终端再接入区块链网络中,进行数据处理,共享数据。
在升级的过程中,必然有一段时期是,新老版本并存,在两个版本接入数据的时候,会将现有的区块链进行分裂,从某一个区块开始,连接到两个不同版本处理的区块上,然后两个区块再各自连入新的区块,由此形成了两条链。就好像树枝一样,大家共用同一个树干,共享之前未分开时的数据。
当所有人都完成升级后,老版本的那条链没人再用了,自然就只剩下了一条新链,这种大家能达成共识且只有一种更新版本,两者兼容的分叉,就叫做软分叉。
而当大家不能达成共识的时候,就相当于在终端产生了多个新版本。大家在各自社区中下载、安装完成,连接到区块链上后,所形成的两条链一直会有人使用,这就导致原来的一条链会彻底分裂成两条新链,这种两个版本不兼容,你不承认我,我也不承认你,就叫做硬分叉。它属于升级异常的情况,这个分叉不会消失,反而会彻底分裂成两条链。
总的来说,分叉这种基于去中心化的升级方式,看起来要比传统互联网麻烦很多,但麻烦的同时,因为它的代码是开放式的,每个人都可以提出建议、参与更改,所以它实际上是给了每个人更多选择的权利。也许,区块链就在这样的求同存异之中,孕育着更大的可能性。
来源: OKBS2018
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)