【区块链】软分叉和硬分叉是什么?

1.前言

前一章节给大家介绍了什么是区块链分叉《区块链分叉是什么?》,今天我们来聊一聊什么是软分叉与硬分叉。

软分叉与硬分叉
2.硬分叉是什么

硬分叉是指当区块链代码发生改变后 旧节点拒绝接受由新节点创建的区块,不符合原规则的区块将会被忽略,矿工会按照原规则在他们最后验证的区块之后创建新的区块,区块链领域最有名的硬分叉案例,便是“以太坊”分叉。

旧区块不兼容新区块视为硬分叉
3.软分叉是什么

软分叉是指区块链代码发生改变后,旧的节点并不会感知到区块链代码发生改变,并继续接受由新节点创建的区块,矿工们可能会在他们完全没有理解或验证过的区块上进行工作,软分叉新旧节点双方始终都工作在同一条链上。

旧区块兼容新区块视为软分叉
4.软硬分叉的定义

软分叉和硬分叉都向后兼容,这样才能保证新节点可以从头验证区块链,向后兼容是指新软件接受由旧软件产生的数据或代码,比如说Windows10可以兼容 Windows XP的应用。

而软分叉还可以向前兼容,向前兼容是指旧软件接受由新软件产生的数据或代码,比如说你用Office2013编写的文档仍然可以用Office2010或更老版本的Office软件打开,就是一种向前兼容。

根据兼容模式的不同区分软硬分叉

简单地说,旧节点是否接受新区块,是软硬分叉的本质区别

软分叉向前兼容,旧的版本会接受新版本创建的区块,在软分叉中只需要矿工升级到新版本即可,用户可以继续使用旧版本的协议,他们仍然会接受新版本协议创建的区块。

硬分叉不向前兼容,旧版本不会接受新版本创建的区块。要实现硬分叉所有用户都需要切换到新版本协议上。

5.软硬分叉的优缺点

软分叉的优点:
1、软分叉始终保持一条链,没有分成两条链的风险;

2、软分叉不要求所有节点同一时间升级,允许逐步升级,且并不影响软分叉过程中的系统稳定性和有效性;

3、对于矿工而言不需要更新升级矿机等硬件设备即可继续挖矿。

软分叉的缺点:
1、软分叉的前提是老的节点总是能够接受新节点的区块,这就要求必须把系统设计成向前兼容(forward compatible)需要增加不少的工作量;

2、软分叉总是建立在对老节点进行欺骗的基础上,它让老节点没有察觉实际上已经发生的变化,某种程度上违背了单点完整验证的原则。

硬分叉的优点:
1、于区块链本身而言,可以给区块链更多实践探索的可能性,进而促进软硬件技术的升级优化;

2、于投资者而言,可以给已有投资者在无风险的情况下增加一种币的收益。

硬分叉的缺点:
1、会给社区造成一定的不稳定性,使部分矿工摇摆不定,矿机设备更新提升了矿工的挖矿成本;

2、会给用户交易带来重放攻击的风险(至于什么是重放攻击,大家可以参读这篇文章《重放攻击》)。

推荐阅读更多精彩内容