什么叫区块链的软硬分叉 区块链软分叉和硬分叉
一、区块链中的软分叉和硬分叉是什么
根据分叉后的区块链是否能兼容旧区块链,分叉又分为“硬分叉”和“软分叉”。软分叉和硬分叉是什么?
硬分叉,是指当比特币代码发生改变后,旧节点拒绝接受由新节点创造的区块。不符合原规则的区块将被忽略,矿工会按照原规则,在他们最后验证的区块之后创建新的区块。
而软分叉是指旧的节点并不会意识到比特币代码发生改变,并继续接受由新节点创造的区块。矿工们可能会在他们完全没有理解,或者验证过的区块上进行工作。
软分叉和硬分叉都"向后兼容",这样才能保证新节点可以从头验证区块链。向后兼容是指新软件接受由旧软件所产生的数据或者代码,比如说Windows 10可以运行Windows XP的应用。而软分叉还可以"向前兼容"。向前兼容是指旧软件可以接受由新软件所产生的数据以及代码,比如你用Word 2013保存的文档,假如仍然可以用Word 2011打开,就是一种“向前兼容”。
二、科普解析区块链里的软分叉和硬分叉是什么,为什么要分叉
区块链中的软分叉和硬分叉是什么,为什么要分叉
区块链中的分叉是指区块链在升级或更新过程中,由于节点之间无法达成一致,导致区块链被分成两条或更多的链。这种现象就像我们平时走路时,在路口意见不合,各自选择不同的路一样。
一、软分叉与硬分叉的定义
软分叉:
定义:区块链网络系统版本或协议进行升级后,旧的区块并不知道网络已经升级,并继续接受由新节点创造的区块,新老节点仍然在同一条链上工作。
特点:软分叉具有“向后兼容”和“向前兼容”的特性。向后兼容意味着新软件接受由旧软件产生的数据,而向前兼容则是指旧软件也能接受由新软件产生的数据。
硬分叉:
定义:区块链网络升级后,未升级的节点拒绝验证已经升级的节点产生的区块,导致大家各自延续自己认为正确的链,从而形成两条或更多的链。
特点:硬分叉只具有“向后兼容”的特性,即新软件可以接受旧软件产生的数据,但旧软件无法验证新软件产生的数据。
二、为什么要分叉
区块链分叉的主要原因通常与网络的升级和更新有关。在区块链网络中,由于去中心化的特性,每次代码升级都需要获得社区的一致认同。如果社区无法达成一致,就可能会形成分叉。
技术升级需求:随着区块链网络的发展,用户数量增加,交易频率提高,网络可能会出现拥堵、交易费用上升等问题。为了提升网络性能,开发者们会提出扩容等升级方案。如果这些方案无法得到社区的一致认同,就可能会引发分叉。
社区意见分歧:区块链社区的成员可能来自不同的背景,拥有不同的观点和利益诉求。在升级过程中,如果社区成员对升级方案存在分歧,就可能会导致分叉。
三、软分叉与硬分叉的实例
软分叉实例:由于软分叉不会产生新的链,数字货币的持有者通常不会有任何损失和收益。因此,软分叉在区块链网络中相对较为常见,但往往不会引起太大的市场波动。
硬分叉实例:
比特币现金(BCH):由比特大陆主导的比特币(BTC)硬分叉,是区块链中最成功的一次硬分叉之一。自2017年8月完成硬分叉后,BCH的市值一度达到了全球第四。
以太坊(ETH)与以太经典(ETC):2016年,以太坊的THE DAO被黑客攻击,损失了数千万美元的ETH。为了追回被盗的资产,以太坊选择了硬分叉的方式,结果产生了两条链:原链(ETC)和分叉链(ETH)。
四、分叉后的影响
软分叉:由于软分叉不会产生新的链,因此数字货币的持有者通常不会有任何损失和收益。但需要注意的是,如果软分叉处理不当,可能会导致网络的不稳定或安全问题。
硬分叉:硬分叉会产生一条新的链,新链会给数字货币持有者带来一笔财富(即分叉后的新币)。然而,硬分叉也可能会导致市场的混乱和币价的暴跌。在分叉后的初期,由于市场的不确定性和投机行为,币价可能会经历大幅波动。但随着时间的推移,分叉后的两个币种通常会逐渐回归合理性。
五、总结
区块链中的分叉是区块链网络升级和更新过程中可能出现的一种现象。软分叉和硬分叉是两种主要的分叉类型,它们在网络兼容性、数字货币持有者收益以及市场影响等方面存在显著差异。虽然分叉可能会带来一定的市场波动和风险,但它也为区块链网络的创新和发展提供了可能。在区块链的未来发展中,多个团队在不同的链上发展或许会带来一个百花齐放的时代。
三、区块链为什么有分叉分叉会发生什么情况
区块链的分叉(fork)的形成原因可能有多种。
当两个结点几乎在同一个时间挖到了矿并同时发布区块,此时就出现临时性的的分叉(state fork),
本质上是对比特币这个区块链当前的状态产生了意见分歧,
当人为的发起分叉攻击(forking attack),也就是故意造成这类分叉(deliberate fork)还有一类分叉是,当比特币的协议发生了改变的时候,软件需要升级。而在分布式系统中不能保证所有节点同时升级软件,假设存在部分节点未升级,会导致协议分叉(protocol fork)。对协议修改的内容的不同,又可以将分叉分为硬分叉(hard fork)和软分叉(soft fork);
比特币协议增加新协议,扩展新功能,未升级软件的旧节点会不认可这些修改,会认为这些特性是非法的。这也就是对比特币协议内容产生分歧,从而导致的分叉叫硬分叉。此时,就出现了新节点永远沿着新节点产生的链挖矿,旧节点永远沿着旧节点链挖矿,由于新节点算力足够强,所以形成两条永远都在延伸且平行的链。只要这部分旧节点永远不更新,则旧链将一直延续,可见这种分叉是持久性的。
出现hard fork后,便变成了两条平行的链,也就造成了社区分裂。社区中有一部分人,会认为下面的链才是根正苗红,各个链上的货币独立。以太坊历史上的一件大事就是硬分叉事件。以太坊称为ETH,但目前看到的ETH已经不是最初的ETH了,以太坊在历史上发生过硬分叉,另一个链称为ETC。实际上,ETC才是以太坊设计原本的协议,而ETH是黑客攻击ETH上一个智能合约THE DAO后,进行回滚的协议链(将黑客攻击偷取的以太币采用硬分叉方式回滚回到另一智能合约,然后退还给真正拥有者)。
分叉之初,由于两个链分叉造成了互相影响,产生了很多麻烦。比如:在ETH链上有一笔转账B->C,有人便在ETC链上回放,将ETC链上的货币页转给了C(C收到两笔钱)。后来,对两条链各添加了一个chainID,将两个链区分开,才使得这两条链真正分开。
如果对BTC协议添加限制,使得原本合法交易在新交易中不合法,便会形成软分叉。
当大多数节点已经更新完毕之后,旧节点认可新节点挖出的区块,因此发布自己挖出的区块,但新节点不认可旧结点挖出的区块,便沿着上一个新节点发布的区块继续挖矿,当新节点拥有大部分算力的时候,新链会越来越长,从而旧节点挖出并发布的区块一直被抛弃,无法获得出块奖励,最终倒逼旧节点升级软件,实现所有节点认可新协议并进行升级。可见,只要系统中拥有半数以上算力节点更新软件,此类分叉不会出现永久性分叉。比特币脚本中的P2SH就是通过软分叉方法加进去的。
这一部分我并没有查到太多的资料,但是在绝大多数共识协议之中我们都假设需要过半算力;
在理论上,如果掌握了50%以上的算力,就拥有了获得记账权的绝对优势,可以更快地生成区块,也拥有了篡改区块链数据的权利。因此,当具有过半的算力,也就是51%都是诚实可靠的,能保证整一个区块链在合法有序的进行运行。
但是为什么选择过半的算力,而不是过半的用户?比特币系统,任何人都可以加入,且创建账户及其简单,只需要本地产生公私钥对即可。只有转账(交易)时候,比特币系统才能知道该账户的存在。这样,黑客可以使用计算机专门生成大量公私钥对,当其产生大量公私钥对超过系统中一半数目,就可以获得支配地位(女巫攻击)。因此,比特币系统中很巧妙的使用算力作为投票的依据。