发布时间:2018-11-20 22:21:17 文章来源:互联网
微博 微信 QQ空间

区块链硬分叉和软分叉是什么意思?什么是硬分叉和软分叉?

今天我们来聊一聊区块链里的硬分叉和软分叉。不要那么紧张,看完我的文章,你就懂得八九不离十了。

到目前为止我感觉到要理解区块链,你得拥有点想象力,有那么一点点就行了。因为里面有很多抽象的概念,和一些只有文字,却没有实物的东西。这样算算,只有矿机你们才可以算得上看的见摸得着,不需要想象了。

在说清楚硬分叉和软分叉之前你必须要知道,区块链是一个分布式系统。

你可能会说什么是分布式系统?看图:

类似于图上的构造:没有统一的中心,但每一个节点都是中心。

所以要对比特币整个系统进行升级,就必须要考虑到整个网络的所有参与者。这一点不像手机里的APP一样,传统的软件是由一个公司运营,说升级就升级,随意得很。

其次,我们要知道明白,所谓的分叉到底分的是什么?如果连这个都不知道,也就不要在网上科普,制造垃圾了。

在这里就必须要说到区块链的数据结构,以及比特币的数据结构。

上面两张图就是数据结构。第一张是比特币交易数据结构,下面这一张是区块链的数据结构。它们两合成一起就变成下面这样:

简单的来说,就是你要将钱转给老王,那怎样才能让比特币网络来验证你的这笔交易,并完成呢?那就需要做一定格式的书写,如上图所示。这个书写的格式就是数据结构。

这个就类似于我们生活中银行里的汇款单。

汇款单的填写是有规定的,你按规定书写,那么银行就给你完成这笔交易。如果你要乱写,银行人员看不懂就不给完成这笔交易。

那么比特币网络也是如此,你按规定的数据结构来,我(矿工)就判断你为有效交易,然后给你完成。如果,你不按格式来,那我(矿工)就会判断你为无效交易,让你滚一边去。

好,既然你了解了数据结构。那我们就接着往下说,不然你听不太懂,也理解不了。

比特币的系统升级就是改变交易数据结构,那么要改变交易数据结构就需要达成全网的共识,但这是非常困难的。

当一项改进协议(修改数据结构)达成一部分矿工的支持,然后升级了挖矿软件客户端,变成了新节点(升级后)。当然,还有另一部分的矿工不愿意升级软件,表示不支持这样的一份改进协议,依旧维持旧版本的协议进行区块验证,那它们就变成了旧节点。

在这样的情况下,再来说什么是硬分叉和软分叉就合适了。

硬分叉就是旧节点不兼容软件升级后新节点的区块,而升级后的节点与旧版本的格式都不一样了,所以更本不会兼容。这样就硬分叉了,从一条链里,分出了另一条链(支持新数据结构的节点)。因此,这样大家就各玩各的。挺好。

另一视角

换一换