正所谓:道不同,不相与谋。这句话正可以用来解释区块链中的分叉现象。这两年,区块链作为一个高级和热门的词汇,频频见诸报端,然而,因为其专业性太强,不懂的人真的一下子很难理解。区块链分叉的产生正是因为社区意见不一致,产生分歧导致的。而分叉又可以分为软分叉与硬分叉,二者之间的区别是什么呢?下面将为大家一一揭晓。
区块链中的分叉就像我们平时走路一样,本来只有一条路的,到了一个路口就被分成了两条,这个是分叉的最基础概念。那么为什么会产生分叉呢?我们就拿最成功的区块链应用——比特币来进行举例吧。
我们都知道BTC的价格这一两年涨得跟疯了一样,比特币网络的用户数越大,交易转账也开始频繁起来,整个比特币网络也开始拥堵、交易费用也开始上升,小额交易可能永远不会被打包。在区块链网络中,产生一个区块的时间间隔大约为10分钟,一笔交易所占的大小为250B,一个区块的大小为1M,我们来简单做一个计算: 1MB=1024*1024=1048576B1048576/250=4194.3笔10*60=600秒4194.3/600=6.99笔/秒, 我们通过上面的计算公式可以看得到比特币网络每秒能处理的交易笔数大约为7笔左右,这个速度对于支付网络来说是异常慢的。为了提升交易拥堵的问题,开发者们提出了扩容的概念。玩过iPhone手机的都知道,升级一个应用是十分简单的,直接在APP Store中直接升级就行,这是中心化的升级,但是在去中心化的系统中升级就没有这么容易了。
比特币网络每次代码升级都要获得比特币社区的一致认同,如果社区无法达成一致,这有可能会形成分叉,简单一句话来讲分叉就是指在升级的时候发生了冲突,从而导致区块链分叉。根据分叉后的区块链是否兼容旧区块,将分叉分为硬分叉和软分叉。
软分叉是指区块链网络系统版本或者协议进行升级之后,旧的区块并不知道比特币网络以及升级了,并且继续接受由新节点创造的区块,新老节点还是在同一条链上工作。而硬分叉就是指升级之后,未升级的节点拒绝验证已经升级的节点产生的块,然后大家各自延续自己认为正确的链,被分成了两条链。 需要注意的是,软分叉和硬分叉都“向后兼容”,什么是“向后兼容”呢?“向后兼容”指的是新软件接受由旧软件产生的数据,举一个最简单的例子:Windows 10可以运行Windows XP的软件。而注意到软分叉还可以“向前兼容”,“向前兼容”就是指旧软件接受由新软件产生的数据,如用word2013保存的兼容版本文档可以由word2010打开。