区块链学习笔记:硬分叉和软分叉

分叉分叉,从一条主链中像叉子一样分成了两条或多条的子链叫分叉。在区块链中,主链的分叉分为两种:硬分叉和软分叉。

一、硬分叉、软分叉是什么

1)软分叉

在比特币官网上对硬分叉和软分叉的官方定义是这样的,我先引入官网的英文定义。

软分叉的官方英文定义:

A temporary fork in the block chain which commonly occurs when miners using non-upgraded nodes violate a new consensus rule their nodes don’t know about.

中文翻译如下:

当新共识规则发布后,没有升级的节点会因为不知道新共识规则下,而生产不合法的区块,从而产生的临时性分叉。

所以,简单的理解就是软分叉其实是临时性的,它有可能恢复到最新链的状态,只要未升级的节点重新升级最新状态,那就能回到已更新的链道来。 软分叉发生的链中,未升级的节点可以验证已经升级的节点产生的区块,而已升级的节点也可以验证未升级节点产生的区块。我们那个图片来说明。

区块链学习笔记:硬分叉和软分叉

 软分叉的特点:

1.较好的兼容性,可以不升级用之前版本的功能。

2.区块链中没分叉的链条,如上图中的那样一条链,只有新区块和就区块之分。

3.长时间允许不升级,新旧区块并存。

2)硬分叉

这里同样引用比特币官网的英文描述:

A permanent divergence in the the block chain, commonly occurs when non-upgraded nodes can’t validate blocks created by upgraded nodes that follow newer consensus rules.

中文翻译如下:

区块链发生永久性分歧,在新共识规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,通常硬分叉就会发生。

就是说硬分叉是永久的分叉,一旦分叉了就回不去原来的分叉。区块链版本更新,未升级的节点拒绝验证已经升级的节点生成的区块,已经升级的节点可以验证未升级节点产生区块,新旧节点各自延续生成自己版本的区块,从而形成了两条不同的链。正所谓:道不同不相为谋。咱俩既然意见不合,我旧结点不接受你新节点,那我们各自为政,谁犯不着谁。同样我们再用图片。

区块链学习笔记:硬分叉和软分叉 硬分叉的特点:

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

2.区块链中分了两条链,如上图所示。

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

二、为什么会产生硬分叉

产生软分叉或硬分叉的原因个人的理解是主要是因为某些问题而提出各种各样的方案,但因为各自觉得自己的方案好而产生的意见不一,大家都互不相让,导致各自干自己的方案,这分叉就来了。例如针对扩容问题,提供了各种的方案。

在原始的比特币系统中规定了一个区块的容量为1M,一个区块确认的时间是10分钟,即每个区块每秒能处理大概7个的交易数。这样的处理能力实在有点低下,很容易造成堵塞,最后就崩溃了。所以有人就提出了区块的扩容。说改成2M的,说改成20M的,说改成无限容量的。这听谁的呢,没人决定得了,那就只能自己干自己的版本啰。

比较广为人知的硬分叉是ETC和ETH。这是在2016年7月,以太坊开发团队通过修改以太坊软件代码在第192000区块,强行把The DAO(分布式自治组织)及其子DAO所有资金全部转到一个特定的退款合约地址从而夺回黑客所控制的DAO合约的以太币。然后形成了两条链,一条ETC(原链),一条ETH(分叉链)。

 最后再推荐一篇文章写硬分叉和软分叉比较详细的文章,推荐学习学习,我也参考了这篇文章一些内容。

https://baijiahao.baidu.com/s?id=1608264747005780350&wfr=spider&for=pc