LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 新闻观点 > 区块链入门(9) — 新旧版本的“爱恨情仇”

区块链入门(9) — 新旧版本的“爱恨情仇”

2019-11-07 币自来 来源:区块链网络

4079ef0e2ba9f2f4528694da42e4f4b9?x-oss-process=style%2Fcailu-watermark

任何一个系统都无法做到十全十美,而在用户使用的过程中,也伴随着各种问题的出现。而区块链应用作为一种具有特有功能的软件系统,也有着自己存在的问题,甚至也发生过严重的漏洞问题,因此,人们也通过这些问题不断找出原因且改善。而今天我们主要来讲讲?软硬分叉?!

32b7034b5f2a5776d36369445f650577?x-oss-process=style%2Fcailu-watermark

0caaf1ef9e86a29e38d4c684162e1b6e?x-oss-process=style%2Fcailu-watermark

什么是区块链?

0a89d6b9546a591baaf3717777fbc664?x-oss-process=style%2Fcailu-watermark

“看过你写的文章都知道,所谓区块链不就是由一个个的区块数据,通过区块的哈希值串联起来形成的一条链条般的账本数据嘛~”

1c55f3e8451fea6b415874ec91538c1e?x-oss-process=style%2Fcailu-watermark?区块链

d302ef5132993cf9c3dea2b335b85e80?x-oss-process=style%2Fcailu-watermark

“那继续问你们一个问题,假设在上图中的区块增长到2号的时候,此时,软件升级了,增加了之前版本中不能识别的一些数据结构,会发生什么呢?”

38dbac8c05221aa3da3b414b1a90b023?x-oss-process=style%2Fcailu-watermark

在传统的中心化系统中,数据的存储都是集中的,版本管理也是一样,所以平时我们使用的微信、支付宝、美团等经常看到版本升级是很常见的;

但区块链就不同了,区块链是去中心化的系统,一旦有了新的版本发布后,是不能每个人都会去升级到新版本的,因为是非常难控制的。

如果这在2号区块生成的时候发布了新的版本,且新的版本增加了之前版本不能识别的数据结构,此时就导致了一部分用户升级了新的版本,而有一部分还没有升级,这些新旧版本的软件仍然在各自不停地挖矿、验证和打包区块,导致了分叉的出现。

b021870410ea1e46301b50c35ea7fa9d?x-oss-process=style%2Fcailu-watermark?分叉

这就是分叉了,是不是很好理解呢?而根据实际情况不同,分叉的情况可以继续分为这两类:

1.新版本节点认为老版本节点发出的区块/交易是?合法?的

这种情况下,仍然是可以保留之前的区块链的数据的,因为完全兼容,但是老版本的节点是否仍然接受新版本节点发出的区块就不一定了。

而在实际应用过程中,在区块链应用程序上的重大升级都会事先取得社区的投票同意,保证大部分的运行节点都愿意升级到新版本。此时,由于新版本的节点的算力要大于老版本的节点,所以一旦升级完成后,后续的打包都是由新节点发出来的,也就不会产生新老节点的区块交错连接的情况。

2.新版本节点认为老版本节点发出的区块/交易是?不合法?的

在这种情况下,新版本节点基本上就是另一套区块链程序了,新节点不但不接受所产生的老版本的区块,对于之前的老版本区块也不认可。

这两种情况都解释了区块链程序由于版本升级的原因而导致的几种可能的分叉情况,其实对于老节点来说,无非就是新版本产生的节点自己还能不能认识和识别,导致了两种分叉:?软分叉和硬分叉?。

所以为什么会有软硬分叉,就是因为要扩容!

29d1cd02bd67371507403d9a21f1fea6?x-oss-process=style%2Fcailu-watermark?软硬分叉的区别

软分叉:

在软分叉中,旧版本包含着新版本,所有被新版本认为是合法的区块也会被以前旧版本认为是合法的。旧版本会接受新版本创建的区块。新版本和旧版本是兼容的。

换句话说就是在在原有设置基础上进行优化提升区块的容量,比如改成2M、4M或者8M、16M,其中以闪电网络为主流解决方案,通俗的说,就相当于一条主路上堵车,开发团队就再建造一条辅路,帮助主路分流拥堵。

7cda5349d5c8d26c078c224524d1ca17?x-oss-process=style%2Fcailu-watermark?软分叉示意图

但这种方法治标不治本,只能解决暂时的拥堵问题,执行软分叉后,也仅能保持数年内网络的通畅,未来还需要不断扩容,对系统稳定性有影响。

硬分叉:

其旧版本不会接受新版本创建的合法区块,认为新版本的合法区块是不合法的。所以很明显硬分叉是不向前兼容。要实现硬分叉所有的用户都要切换的新的协议版本上。

通俗的说,就相当于一条主路上堵车,我们直接废掉这条路,找个地方,重新建立一个立体交通枢纽,新车都走这套交通系统,这套系统改变了比特币网络的区块大小,优化了网络的处理速度。

9020d4d1f635c35ec9192ee745e68087?x-oss-process=style%2Fcailu-watermark?硬分叉示意图

拿比特币来举例:硬分叉下,新升级的系统与原用的比特币系统不兼容。这就要求现在原有的比特币网络所有的消费者都要支持新的系统。

若有部分人不支持硬分叉,比特币网络将会出现两个版本,也就产生了两个比特币,这两个比特币所存在的区块链形成竞争关系,这种内耗会导致很大的价格波动,会导致比特币未来的局势不明朗。

BCH(比特币现金)就是硬分叉的典型例子!大概介绍一下:

BCH是在在2017年通过硬分叉而诞生的一种新的数字货币。由于版本切换,比特币区块链被分叉至两条独立的区块链。在分叉前拥有比特币的所有人都有权获得相同数量的“比特币现金”代币,类似于股票中的股息派发。

2017年8月1日,比特币现金开始挖矿,每个比特币投资者的账户上将出现与比特币数量等量的比特币现金(BCH),与比特币(BTC)相比,两者的传输方式都是相同的,但是区块容量和算法难度则不同,BCH的容量最大可支持8M。

c9d114d569906ceaec3586d93b6ae945?x-oss-process=style%2Fcailu-watermark

adf2e2bf083e50c40651a97136e4f7a3?x-oss-process=style%2Fcailu-watermark

【总结】:?下面小结一下软硬分叉的特点

软分叉:

1.兼容性较好,就算不升级也可以用之前的版本

2.只有新区块和旧区块之分

3.长时间允许不升级,新旧区块并存?硬分叉:

1.无兼容性,不兼容之前版本,强调升级

2.区块链中分了两条链

3.需在一定时间全部同意升级,不同意的进入旧链

—-

编译者/作者:币自来

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...