币圈子-打造专业区块链媒体平台

比特币分叉币会归零吗?解释比特币“分叉”的具体含义

2019-04-17 14:04:39 | 来源:互联网 | 9366人阅读 | 作者:币圈子
全文导读
比特币分叉币会归零吗?解释比特币分叉的具体含义,很多人不清楚比特币分叉是什么,比特币分叉后的币是山寨币吗,还有前景吗?今天小编就带大家来了解一下比特币分叉的具体含义,看完接下来的介绍相信你将不会在迷茫!

比特币分叉币会归零吗?解释比特币“分叉”的具体含义,很多人不清楚比特币分叉是什么,比特币分叉后的币是山寨币吗,还有前景吗?今天小编就带大家来了解一下比特币“分叉”的具体含义,看完接下来的介绍相信你将不会在迷茫!

比特币分叉币会归零吗?解释比特币“分叉”的具体含义


第1章代码层面的“分叉”叫“fork”

“分叉”这个词最经常出现的场所是github这个代码托管平台,是多个程序员共同管理和协同开发项目的一种办法。为了便于理解,我先举一个类比。

你在一家公司的一个部门,比如研发部,部门一共5个同事,其中一个部门经理。现在部门要向公司提交下个月的办公用品采购计划。部门经理先用wrod文档写了一份采购申请单,并且在申请单上填上了自己计划要买的东西。然后经理将文件上传到部门的共享文档上。

同事A将文档复制了一份,然后在后面添加了自己想要采购的东西,然后上传到共享文档申请经理审批。同事B、C、D也分别复制了一份,分别添加了自己想要买的东东,并且申请审批。

部门经理审批了A的采购计划,认为合理,他就将A的需求合并到自己的那份申请单后面。审批了B的计划,他认为不合理,他就拒绝了B的需求,直接丢弃了B的计划单。然后继续审批C和D的。要么合并,要么丢弃。

然后B很生气,认为这不合理,他就越过部门经理,直接向公司提交了一份采购申请单。

如果把以上这个例子中的“采购申请单”,换成一个“程序开发项目”,上述过程就是一个典型的“立项”、“分支”、“请求”、“合并”、“分叉”的过程。

部门经理立了一个项,要写一份采购申请单,他写好自己的部分之后,将文档上传到共享云,形成一个主代码仓库。

然后ABCD四位同事分别对这份文档进行“branch”(中文译成分支),在分支上加上自己想要的特性,然后向主代码提交申请,叫“pull request”,中文叫“请求”。申请将自己的修改部分合并到主代码库里。

然后经理这个主开发者会审批这个“pull request”,如果合格了,他就会将这部分代码合并到主代码库,这个过程叫“merge”,中文译成“合并”。

如果主开发者认为这个“pull request”不合理,他就会拒绝,英文叫“Close”。但如果提这个“pull request”的人觉得他是对的,他可以独立出去,不和这个经理玩了,自己立个项,取个别的名字,然后自己合并代码。这样就形成了一个“fork”,中文译成分叉。

以上是所有参与者都是有开发权限的流程,但如果是一个项目组外的人,看到了这个项目,并且想提交一份特性的代码“pull request”,那他就得先对这个主代码仓库进行“fork”,然后再提交“pull request”。这个没有开发权限的人叫没有提交代码权,提交代码权英文叫commit权限。

这就是开源软件管理的过程。开源软件的代码更新,和漏洞修复都是使用这一套流程。

比特币就是一套开源软件,一开始有只有一个代码仓库,是中本聪建立的,叫Bitcoin,后来有很多人"fork"了Bitcoin,并提交了“pull requests”,有些人干脆自己“fork”并独立出去,形成新的分叉。现在比特币这套开源软件有非常多的分叉,最著名的就是bitcoincore、bitcoin unlimited、bitcoin classic、bitcoinXT、Bcoin......

第2章软件版本上的“分叉”又叫“开发去中心化”

比特币有这么多版本,有这么多分叉,所有这些不同的版本是可以在比特币网络实际运行过程中相互兼容的,同时运行这些软件并不会造成比特币网络的分裂。我们管这些不同的相互兼容的版本叫竞争性实现。多个版本的软件实现相同的功能,各个版本有各自的用户,这就是软件版本之间的竞争。

这些多种版本也可以有一些额外的独特功能,只要不影响和其他版本的兼容性就好。

这种多版本运行在同一个网络里有很多好处。那些最重要的软件特性的更改和协议,因为需要多个版本的兼容性开发,所有的相竞争的开发者都要相互查阅和测试所有的实现代码,代码质量会更高。而且因为全网多个版本实现存在,单一版本出现漏洞,并不会导致全网崩溃。比特币网络就是多版本版本实现同时共存,开发者们相互竞争,这就是开发去中心化。

第3章比特币区块链“协议升级”并不一定会“分叉(分裂)”

比特币网络要部署一个新的特性,这就叫“协议升级”。我们将手机和电脑上的软件进行版本更新,这是很简单的过程,直接下载一个新版本软件,然后覆盖安装就好了。

因为比特币网络要实现的目标是全网众多节点达成共识,所以比特币网络要实现新的重大版本升级,并且在全网将新的重大特性激活,那就需要一些特别的措施。

所有那些会影响达成共识的新特性都必须采取特别的措施,以防止升级过程中共识失败。其中比特币区块链最重要的共识就是矿工广播区块和交易格式必须是达成共识,即所有矿工节点都能对区块的格式和交易的格式相互认可和相互接受。

最重要的措施就是保证全网绝大多数节点都准备好,然后同时激活新功能。这就要求各个节点所使用的软件具有向全网发送和接收某种特定信号的能力。

但这个过程并不是非常简单的,绝大多数重大升级都存在共识失败的风险。甚至因为各方的利益不一样,有人会恶意在升级过程促成共识失败。如果共识失败,比特币区块链就可能产生两条甚至多条链。这就是“分裂”,也被人称为“分叉”。

比特币重大协议升级有两种思路,一种叫“HardFork(硬分叉)”,一种叫“Soft Fork(软分叉)”。

硬分叉和软分叉都是比特币协议升级的办法,并不一定会造成比特币分裂成两条链,分裂只是升级失败的结果。大家经常说的“比特币分叉”,在绝大多数意义都不是指代“比特币分裂”,而是指代“比特币协议升级”。

第4章比特币区块链“协议升级”失败才有可能导致“分叉(分裂)”

再次强调,硬分叉和软分叉都是比特币协议升级的办法,并不一定会造成比特币分裂成两条链,分裂只是升级失败的结果。

硬分叉和软分叉都有可能会失败,也都有可能导致分裂。但只要管理的好,大家统一升级,就不会出问题。

而万一升级失败,导致两条链,在绝大多数情况下,社区的努力下,还是可以修复的。小算力往往会挖不出块,会倾向于回到大算力链上挖矿,分裂后再统一。

如果万一两条链一直延续下去呢?那对用户来说就有了两种币,对矿工来说就要思考挖哪条链合适了。

也有特意将比特币进行“分裂”的“分叉”,发起人的出发点就是制造一个别的币。因为比特币代码是开源的,所以发起人只要复制代码,然后加入自己想要的特性,然后去挖矿,就可以独立出来了。这种“分叉”才是等同于“分裂”。

第5章任何人都可以对比特币区块链发起“分叉(分裂)”

实际上比特币代码是开源的,所以任何人都可以复制代码,并修改一些特性,然后发布自己的版本,只要有矿工去挖,没别的矿工,那自己上啊,那就能分出一条链来。

事实上,任何一种山寨币,都可以视为比特币的“分叉(分裂)”,比如LTC,就是从比特币零区块高度上分裂出来的一种山寨币。

在去年4月26日,也有人在比特币区块高度463604对比特币发起了“分叉(分裂)”,只要是在这个高度及之前有币的人,都可以1:1派分到一种叫btx的币。这种币大部分规则和比特币BTC是一样的,只是区块大小是20M,带有隔离见证。

比特币目前为止最著名的“分叉(分裂)”就是BCC了,在8月一日,区块高度478558,比特币分裂出一种币,叫比特现金BCC。区块是8M,不带隔离见证特性。在此高度之后持有币的用户,都会1:1派发BCC。

在去年8月24日,区块高度481824,比特币再一次发起“分叉”,激活了隔离见证,但这一次没有带来分裂。而且此次“分叉”是Segwit2x的前半部分,后半部分,2x的升级将计划在11月,计划在区块高度494784进行,大约会发生在2017年11月18日。到时候“分叉”是否会等同于“分裂”,我们拭目以待。

第6章结束语

分叉,分裂,真是傻傻分不清晰啊。

分叉是否等于分裂这真的需要时间来证明,比特币之所以一直在承受着压力,这是加密货币社区变得成熟,并吸引更广泛的用户及投资者的又一步,至于比特币分叉后币价是涨是跌,更多还是由市场来决定!

温馨提示:文章不代表币圈子立场,不构成任何投资建议,谨防风险!本文来源于币圈子网站,转载请注明出处!侵权必究!
相关阅读
扩展阅读