本文由币乎(bihu.com)内容支持计划奖励
初步进场区块链的伙伴们,总会被一些莫名其妙的概念搞得糊里糊涂。其实总体来说,区块链及比特币本质上是由一系列概念组合而成的。只要能够想办法搞清楚这些概念是什么意思,一切便会水落石出。
今天我就和大家聊聊区块链中的“软分叉”和“硬分叉”问题。
1
理解“分叉”概念
便于理解,我们最好用一个我们比较熟悉的事物进行对比。下面我们用软件开发中产生的分叉进行讲解。
在软件开发中产生的“分叉”是指:开源项目中如果有人Fork了一个项目(一个项目分叉为两个项目),然后开发者沿着这个Fork向另外一个不同的方向独立发展这个项目。
例如Litecoin就是bitcoin的一个分叉,litecoin的基础代码就是bitcoin的,不过litecoin后来慢慢的发展成了一个另外一个独立的项目。但是依然和bitcoin有着非常紧密的相关性。但litecoin和bitcoin是两种不同的加密货币。
2
区块链中的分叉
以比特币为例,比特币中的分叉主要指:因比特币协议的突发改变而导致的兼容性的问题。比特币协议发生改变,会有两个不同版本的比特币协议在同时使,他们对其他区块的接受规则不同会导致区块链长期分叉,这两个不同的链都会被不同的网络认为是有效的。链分叉也导致网络分叉。
3
软分叉
如上图软分叉的新的规则是以前旧规则的子集,所有被新版本认为是合法的区块也会被以前旧版本认为是合法的。旧版本会接受新版本创建的区块。新版本和旧版本是兼容的。
如果有至少51%的矿工的算力转向的新版本,那么网络自动完成软分叉:一开始旧版本创建的区块在新协议下被认为是不合法的,这时会出现一个短暂的分叉,但最终新版本的分叉会赶超旧版本的分叉成为最长链。因为在旧版本上的算力是小于新版本的。
4
硬分叉
硬分叉指的是,旧版本不会接受新版本创建的合法区块,认为新版本的合法区块是不合法的。所以很明显硬分叉是不向前兼容。要实现硬分叉所有的用户(矿工,交易所,普通用户)都要切换的新的协议版本上。
5
最后结语
软分叉是向前兼容,旧的版本会接受新版本创建的区块,在软分叉中只需要矿工升级到新版本即可,用户可以继续使用旧版本的协议,他们仍然会接受新版本协议创建的区块。
硬分叉不向前兼容,旧版本不会接受新版本创建的区块。要实现硬分叉所有用户都需要切换到新版本协议上。
硬分叉不需要51%以上的算力的原因是,即便旧链的长度大于新链也没用,新版本是不会接受旧链上的区块,如果所有用户都更新到新的版本那么客户的钱包会认为旧链上的资产是非法的,旧链上的货币无法使用。
推荐大家关注“路可比特”
领取专属 10元无门槛券
私享最新 技术干货