硬分叉和软分叉到底怎么区分?

VR视线

百家号17-10-2003:38

我是马克周,一个对数字加密货币和区块链深感兴趣的撰稿人;热衷编程学习和币价技术分析。

你可以在这里找到我

LinkedIn: www.linkedin.com/in/mark-zhou-ab01b637

TradingView: www.tradingview.com/u/xiucat

每次提到数字加密货币,有两个词不得不提:硬分叉和软分叉。尤其是最近几个月,比特币世界里面里充斥着“劈腿”的声音,接下来的11月可能又要出现一次,甚至两次硬分叉。

虽然这些词天天被人们谈论着,可到底什么是硬分叉?什么又是软分叉呢?最简单的解释是:如果你遇到一个硬分叉,它意味着某种数字货币——比如比特币——的新版本软件和旧版本无法兼容,彼此看不顺眼,必须各走各路。而软分叉则不同,新版本要求更为严苛,不同意旧版本的一些规则;但旧版本比较憨厚,还能接受新版本软件。所以对于软分叉而言,新旧版本并非你死我活。

这么说仍然比较抽象,我们可以用一个具体的例子打比方。

对于软分叉,运行旧版本软件就好比出门坐地铁,而运行新版本就像是坐飞机。在地铁站安检的时候 (旧版本),拿着打火机,可以进站,可以上车,按照日常规程,基本没人拦你。而在机场安检时 (新版本),你的打火机只能贡献给倒卖打火机的大爷大妈了。换句话说,有些在地铁上能做的事情,在飞机上就不能做 (旧版本支持的事情,新版本不支持)。反过来看,因为坐飞机的安检更为严格,所以如果你满足了坐飞机的要求,坐地铁自然没有任何问题 (新版本支持的事情,旧版本也支持)。

对于硬分叉,我们也可以用 “地铁和飞机” 形象化。硬分叉中的旧版本软件就好比开地铁,而新版本则是开飞机。显然,能开地铁,不代表你能开飞机 (旧版本支持,新版本则不支持);反过来,即使你有飞机驾驶证,也不能拿着它直接坐进地铁驾驶室里把车开走 (新版本没问题,旧版本却不支持)。

如果非要用一句话来总结,数字加密货币的硬分叉意味着新旧版本软件互不兼容,必须分道扬镳,分成两条不同的区块链;软分叉则相对柔和,旧版本兼容新版本,只是新版本不兼容旧版本而已,因此虽然会有轻微分叉,但仍可共存在同一条区块链下。

最近在比特币网络中,最引人关注的软分叉和硬分叉当数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” 的要求跟任何一个旧版本都没有交集。

在比特币网络中,由于分散共识机制,基于开源公有链的本质,硬分叉的存在不可避免。而且由于比特币软件去中心化的运行模式,任何一个矿工、用户或者网络节点,以及那些拥有网络节点和算力的交易所、矿池,都可以根据自己的需求选择支持分叉的任意一方。因此,避免过于激进的硬分叉,在分叉前充分做好预防网络攻击的准备,充分考虑各方的需要,就变成了必须要完成的功课。

硬分叉和软分叉到底怎么区分?相关推荐

  1. 知识点:什么是硬分叉和软分叉

    知识点:什么是硬分叉和软分叉 财务论理 百家号01-2019:00 1.比特币为什么会分叉? 因为:要扩容!通俗来讲,就是扩大区块链的容量.比特币的交易都基于区块链中,区块的大小限制了交易的数量和效率 ...

  2. 区块链的硬分叉和软分叉

    我们知道,区块链分叉分为两种:硬分叉和软分叉.在解释"硬分叉"和"软分叉"这两个概念之前,先解释"向前兼容"和"向后兼容" ...

  3. 区块链的硬分叉、软分叉介绍

    区块链的硬分叉.软分叉介绍 分叉:由于交易结构的变化,或者区块的结构变化引起的. 硬分叉:由于区块的结构变化引起的.(升级后的客户端和不升级的挖不同的币) 软分叉:由比特币交易的数据结构改变引起,区块 ...

  4. 区块链学习笔记:硬分叉和软分叉

    分叉分叉,从一条主链中像叉子一样分成了两条或多条的子链叫分叉.在区块链中,主链的分叉分为两种:硬分叉和软分叉. 一.硬分叉.软分叉是什么 1)软分叉 在比特币官网上对硬分叉和软分叉的官方定义是这样的, ...

  5. 什么是硬分叉和软分叉?Tokenview

    什么是硬分叉? 硬分叉:比特币区块格式或交易格式发生改变时,未升级的节点拒绝验证已经升级的节点生产出的区块,不过已经升级的节点可以验证未升级节点生产出的区块,然后大家各自延续自己认为正确的链,所以分成 ...

  6. 实时操作系统的“硬实时”和“软实时”到底是什么意思?以及如何区分?

    在搞一些嵌入式操作系统的时候,经常会接触到硬实时 和 软实时 这两个词,怎么个硬法, 怎么就软了, 一般人对于这两个很难区分. <嵌入式实时操作系统RT-Thread设计与实现>一书中讲到 ...

  7. 转载:区块链:关于软分叉与硬分叉以及什么是共识

    第0章 引言 比特币是一套软件,对软件代码进行修改升级就经常会涉及到两个概念,一个叫硬分叉,一个叫软分叉.这到底是什么意思呢?社区里最常见的定义说是对共识的修改.但"共识"具体指的 ...

  8. 什么是硬分叉,什么是软分叉,什么是共识

    第0章 引言 比特币是一套软件,对软件代码进行修改升级就经常会涉及到两个概念,一个叫硬分叉,一个叫软分叉.这到底是什么意思呢?社区里最常见的定义说是对共识的修改.但"共识"具体指的 ...

  9. 什么是软分叉与硬分叉?

    什么是软分叉与硬分叉? 发布者: 币学院 发表于: 2018-5-10 15:12 来自: BitarkCommunity 1203 0 分享 经常在新闻和论坛里看到某某币将要进行分叉,到底分叉是什么 ...

最新文章

  1. iOS培训章节——C++函数的重载
  2. 6.4 JAVA 方法重载
  3. StringGrid数据导出到Excel
  4. opencv图像处理(二)
  5. 恢复快速启动栏里的“显示桌面”图标
  6. 51单片机外部地址c语言,cx51与c语言对单片机内部和外部资源变量和地址的定义是否兼容?为什么...
  7. Intel硬件加速 VS CUDA完胜 视频转码感受
  8. 利用Git查看项目代码总行数
  9. java ajax级联_jQuery ajax级联二级菜单(转)
  10. vscode 配置import @ 路径提示及代码智提
  11. Python Day25
  12. [补档]noip2019集训测试赛(十四)
  13. MySQL实战45讲
  14. pytorch迁移学习后使用微调策略再次提高模型训练结果
  15. 海康SDK接口调用的主要流程
  16. 十大编程语言的优劣对比简述
  17. 【英语阅读】纽约时报 | 李子柒:隔离时期的田园“公主”
  18. 北大的戴威,为何输给了三本的胡玮炜?
  19. vr全景怎么拍摄和制作,3dvr全景制作教程
  20. AIX对硬件在线做diag诊断

热门文章

  1. 开题报告、文献检索账号、文献综述、外文翻译、抄袭检测软件、论文目录,都在这了都在这了,有备无患,拿去吧!
  2. 智能手机是计算机的一种吗,智能手机是什么
  3. 小米商城(HTML5+CSS3版)
  4. android 判断 手机 是否 打开 允许模拟位置 选项
  5. 高防服务器维护,高防服务器是如何进行防御的?
  6. 如何设计一个速率限制器(令牌桶/漏桶/固定窗口/滑动窗口)
  7. 2020年蓝桥杯B组个人题解(热的,不知道对错)
  8. MATLAB用SOR方法解方程组,SOR迭代法 求MATLAB程序
  9. win7下查看计算机ID,win7系统快速查看硬件ID的操作方法
  10. driftingblues靶机wp