什么是软分叉和硬分叉?软分叉和硬分叉介绍
什么是软分叉和硬分叉?如果比特币社区无法达成一致,区块链很可能形成分叉。简单来讲,分叉是指区块链在升级时发生了意见分歧,从而导致区块链分叉。根据分叉后的区块链是否兼容旧区块,将分叉分为硬分叉和软分叉。接下来就来详细介绍下。
最简单的讲解是:如果你遇到一个硬分叉,它意味着某种数字货币——比如比特币——的新版本软件和旧版本无法兼容,彼此看不顺眼,必须各走各路。而软分叉则不同,新版本要求更为严苛,不同意旧版本的一些规则;但旧版本比较憨厚,还能接受新版本软件。所以对于软分叉而言,新旧版本并非你死我活。
这么说仍然比较抽象,我们可以用一个具体的例子打比方。
对于软分叉,运行旧版本软件就好比出门坐地铁,而运行新版本就像是坐飞机。在地铁站安检的时候 (旧版本),拿着打火机,可以进站,可上面这些车,按照日常规程,基本没人拦你。而在机场安检时 (新版本),你的打火机只能贡献给倒卖打火机的大爷大妈了。换句话说,有些在地铁上能做的事情,在飞机上就不能做 (旧版本支持的事情,新版本不支持)。反过来看,因为坐飞机的安检更为严格,所以如果你满足了坐飞机的要求,坐地铁自然没有任何问题 (新版本支持的事情,旧版本也支持)。
对于硬分叉,我们也可以用 “地铁和飞机” 形象化。硬分叉中的旧版本软件就好比开地铁,而新版本则是开飞机。显然,能开地铁,不代表你能开飞机 (旧版本支持,新版本则不支持);反过来,即使你有飞机驾驶证,也不能拿着它直接坐进地铁驾驶室里把车开走 (新版本没问题,旧版本却不支持)。
如果非要用一句话来总结,数字加密货币的硬分叉意味着新旧版本软件互不兼容,必须分道扬镳,分成两条不同的区块链;软分叉则相对柔和,旧版本兼容新版本,只是新版本不兼容旧版本而已,因此虽然会有轻微分叉,但仍可共存在同一条区块链下。
最近在比特币网络中,最引人关注的软分叉和硬分叉当数8月份成功启动的 Segwit,和可能会在11月启动的 Segwit2x。二者的目的相似,都是为比特币的区块扩容。我们可以套用上面对于软硬分叉的讲解,来理解这两个扩容方案的区别。
之所以说 Segwit 是软分叉,是因为在这一方案中,首先,旧版比特币软件 “区块不能大于 1MB” 的硬性要求,被新版突破了——区块大小最高可达 2MB。启用了 Segwit 的比特币软件中,每笔交易都会激活 Segwit 指令。正是因为这一指令存在而且会被激活,这些交易形成的区块才可以突破 1MB 的上限,达到 2MB。
其次,新版本软件产生的交易,仍然可以被旧版本接受、确认——即旧版本仍然支持新版本。这正是 Segwit 的巧妙之处:新版本软件产生的交易,在旧版本上不会触发 Segwit 指令——旧版本软件并没有接到 “你需要把区块大小改为 2MB哦” 的要求。所以,在旧版本看来,这仍然是一笔跟以往一样的交易。我可以确认它。
换句话说,在 Segwit 模式下,区块可以小于 1MB,跟往常一样,也可以处在 1 – 2MB之间。这就是 Segwit 属于软分叉的根本原因,求同存异嘛,网友们一起过。
广为诟病的 Segwit2x 则不同。这个方案属于硬分叉,因为它要求 “新产生的区块至少达到 2MB,最多可达 8MB”。显然,这是一个 “你死我活” 的方案;这样一来,新旧版本均无法跟对方兼容。旧版要求区块不超过 1MB;即使是加入了 Segwit 的中间版本,区块也不能超过 2MB。在这样的条件下,Segwit2x “不低于 2MB” 的要求跟任何一个旧版本都没有交集。
在比特币网络中,由于分散共识机制,基于开源公有链的本质,硬分叉的存在不可避免。而且由于比特币软件去中心化的运行模式,任何一个矿工、用户或者网络节点,以及那些拥有网络节点和算力的交易所、矿池,都可以根据自己的需求选择支持分叉的任意一方。因此,避免过于激进的硬分叉,在分叉前充分做好预防网络攻击的准备,充分考虑各方的需要,就变成了必须要完成的功课。
软分叉和硬分叉都"向后兼容",这样才能保证新节点可以从头验证区块链。向后兼容是指新软件接受由旧软件所产生的数据或者代码,比如说Windows 10可以运行Windows XP的应用。
其实如果大家希望更加深入的学习和了解币圈,那么可以添加我们币大师的官方客服申请加入我们币大师的官方社群,群里有炒币玩币的职业玩家以及行业大咖,可以给大家解疑答惑,让你快速入门,从入门到精通。赚取币圈的第一桶金。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。