区块链兄弟社区,区块链技术专业问答先行者,中国区块链技术爱好者汇集地网络
做者:吴寿鹤区块链
来源:区块链兄弟加密
原文连接:http://www.blockchainbrother.com/article/29spa
著权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。blog
说到分叉,咱们首先了解一下在软件开发中的分叉是什么?开发
软件项目中的分叉get
软件开发中的分叉指的是:在开源项目中若是有人Fork了一个项目(一个项目分叉为两个项目),而后开发者沿着这个Fork向另一个不一样的方向独立发展这个项目。例如Litecoin就是bitcoin的一个分叉,litecoin的基础代码就是bitcoin的,不过litecoin后来慢慢的发展成了一个另一个独立的项目。可是依然和bitcoin有着很是紧密的相关性。但litecoin和bitcoin是两种不一样的加密货币。it
Bitcoin术语中的软分叉与硬分叉社区
比特币中的软分叉和硬分叉主要指因比特币协议的突发改变而致使的兼容性的问题。比特币协议发生改变,会有两个不一样版本的比特币协议在同时使,他们对其余区块的接受规则不一样会致使区块链长期分叉,这两个不一样的链都会被不一样的网络认为是有效的。链分叉也致使网络分叉。比特币
软分叉是向前兼容的
如上图软分叉的新的规则是之前旧规则的子集,全部被新版本认为是合法的区块也会被之前旧版本认为是合法的。旧版本会接受新版本建立的区块。新版本和旧版本是兼容的。
若是有至少51%的矿工的算力转向的新版本,那么网络自动完成软分叉:一开始旧版本建立的区块在新协议下被认为是不合法的,这时会出现一个短暂的分叉,但最终新版本的分叉会赶超旧版本的分叉成为最长链。由于在旧版本上的算力是小于新版本的。
可是若是小于51%的矿工算力转向新版本,那么软分叉将不会出现,由于旧版本比新版本有更多的算力支持,同时旧版本不兼容新版本。
硬分叉不向前兼容:
旧版本不会接受新版本建立的合法区块,认为新版本的合法区块是不合法的。因此很明显硬分叉是不向前兼容。要实现硬分叉全部的用户(矿工,交易所,普通用户)都要切换的新的协议版本上。
总结:
软分叉向前兼容,旧的版本会接受新版本建立的区块,在软分叉中只须要矿工升级到新版本便可,用户能够继续使用旧版本的协议,他们仍然会接受新版本协议建立的区块。
硬分叉不向前兼容,旧版本不会接受新版本建立的区块。要实现硬分叉全部用户都须要切换到新版本协议上。
为何硬分叉不须要51%以上的算力,由于即使旧链的长度大于新链也没用,新版本是不会接受旧链上的区块,若是全部用户都更新到新的版本那么客户的钱包会认为旧链上的资产是非法的,旧链上的货币没法使用。
THE DAO 为何要进行硬分叉而不是软分叉:若是进行软分叉,因为新版本是和旧版本兼容的,因此旧版本上的资产一样也是能够在新版本上消费的,那么就不能达到回滚黑客资产的目的。
文章发布只为分享区块链技术内容,版权归原做者全部,观点仅表明做者本人,毫不表明区块链兄弟赞同其观点或证明其描述