时间:2023-06-13|浏览:230
说硬分叉和软分叉之前,我们先了解一下什么是“分叉(Fork)”。分叉其实是用来描述区块链协议中的任何分化、更新的一个词语,可以理解它是去中心化体系中的一种更新迭代。那么硬分叉、软分叉又是什么呢?别急,往下看。
官方定义
硬分叉和软分叉在bitcoin.org上都有定义,但定义其实很模糊,原文中硬分叉和软分叉被定义成这样:
硬分叉:区块链发生永久性分歧,在新共识规则发布后,部分没有升级的节点无法验证已经升级的节点生产的区块,通常硬分叉就会发生。
软分叉:当新共识规则发布后,没有升级的节点会因为不知道新共识规则下,而生产不合法的区块,就会产生临时性分叉,又称软分叉。
Bitcoin术语中的软分叉与硬分叉
比特币中的软分叉和硬分叉主要是指因比特币协议的突发改变而导致的兼容性的问题。
比特币协议发生改变,会有两个不同版本的比特币协议在同时使用,他们对其他区块的接受规则不同会导致区块链长期分叉,这两个不同的链都会被不同的网络认为是有效的。链分叉也导致网络分叉。
软分叉是向前兼容的
如上图软分叉的新的规则是以前旧规则的子集,所有被新版本认为是合法的区块也会被以前旧版本认为是合法的。
旧版本会接受新版本创建的区块,新版本和旧版本是兼容的。
如果有至少51%的矿工的算力转向的新版本,那么网络自动完成软分叉:一开始旧版本创建的区块在新协议下被认为是不合法的,这时会出现一个短暂的分叉,但最终新版本的分叉会赶超旧版本的分叉成为最长链。因为在旧版本上的算力是小于新版本的。
但是如果小于51%的矿工算力转向新版本,那么软分叉将不会出现,因为旧版本比新版本有更多的算力支持,同时旧版本不兼容新版本。
硬分叉不向前兼容
旧版本不会接受新版本创建的合法区块,认为新版本的合法区块是不合法的。所以很明显硬分叉是不向前兼容。要实现硬分叉所有的用户(矿工,交易所,普通用户)都要切换到新版本的协议上。
小结
软分叉向前兼容,旧的版本会接受新版本创建的区块,在软分叉中只需要矿工升级到新版本即可,用户可以继续使用旧版本的协议,他们仍然会接受新版本协议创建的区块。
硬分叉不向前兼容,旧版本不会接受新版本创建的区块。要实现硬分叉所有用户都需要切换到新版本协议上。
为什么硬分叉不需要51%以上的算力?因为即便旧链的长度大于新链也没用,新版本是不会接受旧链上的区块,如果所有用户都更新到新的版本,那么客户的钱包会认为旧链上的资产是非法的,旧链上的货币无法使用。
如果想了解更多精彩内容,欢迎私信小编!