扩容和硬分叉

比特币一个区块的大小是有限制的,不能超过1M,随着比特币的不断发展,使用比特币的人数越来越多,比特币网络上的交易越来越多,1M区块大小成为了比特币的发展瓶颈。区块容量问题导致了比特币网络拥堵问题日益严重,制约了比特币的发展。

为了比特币更好的发展,比特币社区开始讨论修改比特币的代码,突破比特币的1M区块上限。

分叉的概念,在讲工作量证明的时候,我们说过当同一时刻不同矿工同时基于一个父区块生成两个新区块时,这时比特币分出现短暂的分叉,再过一个或者几个区块后,整个网络会选择出最长的链,从而放弃分叉出来的区块,这里所讲到的分叉是暂时的,不会对比特币网络构成威胁,是在最长链的选择过程中出现的正常现象。

而在解决比特币区块容量问题时,由于是要更改比特币的基本规则,那就会涉及到有些节点接受新规则,有的节点不接受新规则,这里整个网络就会分成两派,从而造成比特币的分叉,这种分叉是永久的,会影响比特币用户,是因为更改规则而引起非正常现象。

在分叉之前,所有的节点运行同样的软件,遵循着同样的共识协议,维护着同样的一条链。这时,一部分节点使用新版本的软件,拥有了新的共识协议,这时会出现下面四种情况:

新节点认为老节点发出的区块或交易合法;

新节点认为老节点发出的区块或交易不合法;

老节点认为新节点发出的区块或交易合法;

老节点认为新节点发出的区块或交易不合法;

   这些情况在我们下面介绍的硬分叉与软分叉里都会有所体现。

硬分叉与软分叉

硬分叉是指当比特币协议规则发生改变,旧节点拒绝接受由新节点创造的区块的情况,区块链将分成两条独立的链。矿工需要在两条区块链中选择一条并进行挖矿。当必须硬分叉时,我们需要要求所有节点同时升级软件,未升级的节点将不能正常工作。如果有较多老节点不愿意升级,他们将工作在另外一条完全不一样的链上。在硬分叉的时候,新的节点要求比老的节点要求要宽松很多,新的节点认可老节点生产的区块,老节点不认可新节点生产出来的区块。

软分叉是当比特币协议规则发生改变,旧的节点并不会意识到规则是不同的,它们将遵循改变后的规则,继续接受由新节点创造的区块。因此软分叉不会产生两条区块链,而是在原区块链上同时存在新、旧两种节点挖的区块。当进行软分叉时,我们需要并不要求所有节点同时升级软件,超过半数的节点运行升级过后的新程序,这时老节点生产出来的区块不被新的节点认可。在软分叉的时候,新的节点要求比老的节点要严格很多,新的节点不认可老节点生产的区块,老节点认可新节点生产出来的区块。

软硬分叉的优缺点

软硬分叉有各自的优缺点。

软分叉和硬分叉相比拥有下面的优点:

软分叉总是只有一条链,没有分成两条链的风险;

软分叉不要求所有节点同一时间升级,允许逐步升级,且并不影响软分叉过程中的系统稳定性和有效性;

但是软分叉也是有缺点的:

软分叉的前提是老的节点总是能够接受新节点的区块,这就要求把系统设计成向前兼容;

软分叉总是建立在对老节点进行欺骗的基础上,它让老节点没有察觉实际上已经发生的变化,某种程度上违背了单点完整验证的原则; 

讲到这里,我们是不是会有这样的感觉:硬分叉是很粗暴的,强行要求大家在新的规则下工作,要么合作,要么分家;而软分叉就会温和的多,尽力在现有规则的基础上引导用户去接受新的规则。

   

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 什么是硬分叉,什么是软分叉,什么是共识? 第0章 引言 比特币是一套软件,对软件代码进行修改升级就经常会涉及到两个...
    凡的数据库阅读 4,095评论 0 4
  • 01开始吧 不使用术语还能把事情说明白,那就是真明白了。 比特币是大型网络生物的始祖,可以存续,却不能自我迭代和繁...
    嗨嗨皮皮的阅读 3,811评论 0 1
  • 一、快速术语检索 比特币地址:(例如:1DSrfJdB2AnWaFNgSbv3MZC2m74996JafV)由一串...
    不如假如阅读 16,294评论 4 87
  • 今天一天应该分早,中,晚。 这样来观察记录一下。 早晨,8点闹钟响起后,改到9点,9点闹钟响起后,看了一眼旁边躺着...
    乐珍阅读 1,228评论 0 0
  • 冬天 该有 暖烘烘的火炉 打着呼噜的猫, 睡梦中的你在笑 刚煮好的咖啡, 香喷喷的烤面包 墨绿色毛衣,毛绒绒的看起...
    木雨北阅读 1,189评论 0 0