(转)吴寿鹤:区块链中的软分叉与硬分叉详解
来源:互联网 发布:淘宝店铺去哪注册 编辑:程序博客网 时间:2024/04/28 03:46
区块链中的软分叉与硬分叉详解
吴寿鹤
资料来源于:https://zhuanlan.zhihu.com/p/28300379
说到分叉,我们首先了解一下在软件开发中的分叉是什么?
软件项目中的分叉
软件开发中的分叉指的是:在开源项目中如果有人Fork了一个项目(一个项目分叉为两个项目),然后开发者沿着这个Fork向另外一个不同的方向独立发展这个项目。例如Litecoin就是bitcoin的一个分叉,litecoin的基础代码就是bitcoin的,不过litecoin后来慢慢的发展成了一个另外一个独立的项目。但是依然和bitcoin有着非常紧密的相关性。但litecoin和bitcoin是两种不同的加密货币。
Bitcoin术语中的软分叉与硬分叉
比特币中的软分叉和硬分叉主要指因比特币协议的突发改变而导致的兼容性的问题。比特币协议发生改变,会有两个不同版本的比特币协议在同时使,他们对其他区块的接受规则不同会导致区块链长期分叉,这两个不同的链都会被不同的网络认为是有效的。链分叉也导致网络分叉。
软分叉是向前兼容的
如上图软分叉的新的规则是以前旧规则的子集,所有被新版本认为是合法的区块也会被以前旧版本认为是合法的。旧版本会接受新版本创建的区块。新版本和旧版本是兼容的。
如果有至少51%的矿工的算力转向的新版本,那么网络自动完成软分叉:一开始旧版本创建的区块在新协议下被认为是不合法的,这时会出现一个短暂的分叉,但最终新版本的分叉会赶超旧版本的分叉成为最长链。因为在旧版本上的算力是小于新版本的。
但是如果小于51%的矿工算力转向新版本,那么软分叉将不会出现,因为旧版本比新版本有更多的算力支持,同时旧版本不兼容新版本。
硬分叉不向前兼容:
旧版本不会接受新版本创建的合法区块,认为新版本的合法区块是不合法的。所以很明显硬分叉是不向前兼容。要实现硬分叉所有的用户(矿工,交易所,普通用户)都要切换的新的协议版本上。
总结:
软分叉向前兼容,旧的版本会接受新版本创建的区块,在软分叉中只需要矿工升级到新版本即可,用户可以继续使用旧版本的协议,他们仍然会接受新版本协议创建的区块。
硬分叉不向前兼容,旧版本不会接受新版本创建的区块。要实现硬分叉所有用户都需要切换到新版本协议上。
为什么硬分叉不需要51%以上的算力,因为即便旧链的长度大于新链也没用,新版本是不会接受旧链上的区块,如果所有用户都更新到新的版本那么客户的钱包会认为旧链上的资产是非法的,旧链上的货币无法使用。
THE DAO 为什么要进行硬分叉而不是软分叉:如果进行软分叉,由于新版本是和旧版本兼容的,所以旧版本上的资产同样也是可以在新版本上消费的,那么就不能达到回滚黑客资产的目的。
「真诚赞赏,手留余香」
- (转)吴寿鹤:区块链中的软分叉与硬分叉详解
- 硬分叉与软分叉
- 解读区块链,软分叉和硬分叉
- 区块链分叉机制
- 区块链分叉机制
- 区块链分叉机制
- 硬分叉 vs 软分叉 孰是孰非?
- 硬分叉 vs 软分叉 孰是孰非?
- 硬分叉 vs 软分叉 孰是孰非?
- 什么叫区块链分叉?
- 什么是硬分叉,什么是软分叉,什么是共识?
- 什么是硬分叉,什么是软分叉,什么是共识?
- 每日区块链:以太坊“拜占庭”硬分叉即将出现,人们该如何关注?
- 达尔文与七十二变: Achain“分叉理论”惊艳新加坡区块链亚洲峰会
- 区块链开发专题(数字货币分叉、矿池、共识攻击)
- 每日区块链:Geth发布软件更新,为以太坊“拜占庭”硬分叉做准备;区块链会如何改变能源领域的未来?
- 比特币硬分叉风险降至
- 比特币扩容与分叉
- HDU 6066 RXD's date(水~)
- 正方形有这么好的性质
- Nginx + tomcat 实现服务集群
- 多个github帐号的SSH key切换
- linux下使用shell批量修改文件名几种方法总结
- (转)吴寿鹤:区块链中的软分叉与硬分叉详解
- java中四种访问方式的小结
- 进程间通信-mmap
- tools里找不到draw9patch去找下载?因为它就在as里。
- C++指针&引用&const
- 如何向git账号上提交代码
- C语言排序之冒泡排序篇
- 将Maven项目的Dynamic Web Module 改为3.1版本
- 图文详解Android事件分发机制