分享百科

分叉

比特币分叉

什么是分叉?


由于协议规则的变化或更新,区块链分裂成两个独立的分支。指向同一个父块的2个区块被同时生成。某些部分的矿工看到其中一个区块,其他的矿工则看到另外一个区块,这导致2种区块链同时增长。分叉又分为软分叉和硬分叉。

软分叉

软分叉大体分为两种:

1.旧节点接受新区块,新节点也接受旧区块。

2.旧节点接受新区块,新节点不接受旧区块。

对于第一种来说,这种情况并不会导致分叉,因为这种升级并没有改变区块的格式。P2SH的升级就是这一类。

对于第二种来说,我们又要分两种情况讨论:

  • 如果新节点的算力超过50%,这个时候虽然旧节点会在新区块上挖矿,但是由于新节点不接受旧区块,导致新节点不会在旧区块上挖矿。再加上新节点的算力较大,那么最终最长链一定是由新区块组成的链。而且,这条最长链是双方都认为合法的一条。旧节点在这个时候,出于自身利益的考虑,也会升级成新节点——这就是软分叉的最好结果。
  • 如果新节点的的算力不足50%,这个时候由于新节点不会在旧区块上挖矿,所以即便新节点先挖出了几块矿,但是后面肯定会全都是旧区块。然后,新节点会认为只有新节点的才是合法的,而旧节点虽然认为两条都合法,但是新区块的那条算力不足导致不是最长链,所以它仍旧会选择原来那条。

硬分叉

硬分叉则为:旧节点不接受新区块

这里我们还是分两种情况讨论:

  • 如果新节点的算力超过50%,那么无论新节点能不能接受旧区块,链都会自然分为两条,一条只有旧区块,一条只有新区块。新节点不能接受新区块这种情况很好理解,即便算力不超过50%,也会分成两条链,无非是一边用户多,一边用户少而已。新节点能接受旧区块时,新节点虽然接受有旧区块的链,但是因为只要有了新区块旧节点就不会在上面挖矿,所以最终会还是会分成两条链,一条只有旧区块,一条只有新区块。
  • 如果新节点的算力不超过50%,对于新节点不能接受旧区块的情况,结果和上面的分析一样会分裂成两条链。而对于新节点接受旧区块的情况,这与第二种软分叉的第一种情况正好相反,也就是升级失败。此时最长链为旧区块为主导,新节点失去了话语权。

值得注意的是,硬分叉不等于分裂!因为硬分叉只代表新旧节点会分成两条链,但是不代表两方的节点永远分道扬镳。双方仍旧可以放弃自己的阵营加入对方,只不过其中的一条链会被废弃,这些区块会变成孤块。这并不可怕,这种暂时性的分叉在比特币的世界几乎每天都在发生。

分叉的历史


分叉历史

BTC、BCH、BSV的诞生始末

自2009年1月3日比特币诞生以来,从最初的仅在极客圈子流行到逐渐走进大众视野,用户群体不断扩大,交易量也不断增加。由于比特币系统中每一个区块大小限制为1MB,每个块内可存储的交易十分有限,从而限制了整个交易的吞吐量。比特币网络开始出现拥堵、手续费过高、交易长时间无法打包等情况。当时比特币每秒大约可以处理4-7笔交易,这与支付宝,PayPal等相比肯定是不足的。交易效率低使得BTC难以担负起现金支付的功能。

2015年,在比特币社区中出现了扩容的声音,矿工支持扩大比特币的区块来增加交易容量,而以核心开发者Core为代表的小区块者们认为这不能从根本上解决问题而主张用隔离见证和闪电网络的方式缓解比特币的拥堵问题。矿工,开发组,用户之间的博弈相对混乱,比特币社区围绕扩容问题争论了三年之久,社区矛盾逐渐无法调和,同时硬分叉的声音也愈演愈烈。

最终在2017年8月1日,矿工在区块高度 478558 执行硬分叉,6小时后,ViaBTC矿池成功挖出了第一个比特现金(BitcoinCash/BCH)的区块 (nr 478559),比特币社区自此一分为二 。比特币现金承接了比特币的交易数据,但是删除了隔离见证,区块上限升级为8M(后升级为32M),致力于通过链上扩容的方式解决比特币系统中区块拥堵和手续费高等问题,随后按照比特币 1:1 的比例向比特币持有者分发BCH。为完善系统,BCH每半年进行一次硬分叉,此后BCH历经几次升级,系统逐步走向稳定,市值进入加密资产前十。

2018年4月,BCH社区发布了中期发展路线图,表示将对BCH进行技术升级和完善。其中主要包括两个方面:一个是扩容,将区块大小变为32MB;一个是添加或重新激活几个比特币脚本操作码(op代码),以便让BCH网络拥有和以太坊一样的智能合约应用,从而扩展BCH的更多的应用。

然而自称中本聪的澳洲科学家CW明确反对该计划,他认为比特币在0.1版本就建立了牢固的基石,BCH需要做的仅仅是扩大容量和锁定协议,并宣称要”彻底锁死比特币底层协议并扩容至128MB”。为此成立一个名叫Nchain的项目,并于 2018年8月16日创建BSV节点客户端,扬言将在BCH协议上上实施名为Bitcoin Satoshi Vision(BSV)的分叉币,目标是恢复比特币原始协议。

在两大阵营唇枪舌剑几轮交锋之后,矛盾再次到达了极致,无法协调。2018年11月16日BCH正式硬分叉为BCHABC和BCHSV。这次分叉导致了共识分裂,主流币种暴跌。此后,BSV 在2019年 7 月 24 日进行了“硬分叉”,把区块大小从128MB提升到2GB,高于其他任何的区块链项目。并且升级之后的数天时间里,BSV链上成功挖出256MB大小的区块,刷新了公链挖出的最大区块世界纪录。自此,比特币阵营分为三个:BTC、BCH和BSV。

BCH再次分叉

2020年11月15日,BCH于区块高度661648正式硬分叉升级,分叉为Bitcoin ABC(简称BCHA)和Bitcoin Cash Node(简称BCHN)。本次分叉的原因是:BCH 的主开发团队BCH ABC坚持在11月升级中引入“基础设施融资计划”(IFP),它由部分大矿工发起,主要是为了解决开发团队面临的资金问题,要求将BCH区块奖励的8%拨给基础设施发展基金,作为BCH的关键开发资金使用,然而这遭到了多数矿工和社区的极力反对。BCH这次分叉属于利益之争,即矿工的利益和开发者的利益之争。

开发者收益来源是区块链项目普遍存在的问题。矿工在区块链生态里是明确的参与者和保护者,他们能够获得系统的通证奖励。而开发者承担了整个公链升级和完善工作,却无法直接从系统中获得收入,目前开发者一般是通过社区捐赠或是商业投资的方式获得报酬。

商业投资模式存在股东通过股份获得话语权来控制开发团队的风险,BCHABC团队为了保持自主独立性,拒绝了商业投资的方式,但依靠社区捐赠这种方式获得的资金体量有限,开发资金问题依然是笼罩在BCH发展前路上的难题。

BCHABC阵营:坚持推进捐赠计划,并在2020年2月18日发文宣布已经将相关代码添加到ABC版本0.21.0客户端内。同时也强调,这并非意味着矿工会损失8%的收入,由于难度调整,挖矿收入仅减少0.2%。

BCHN阵营:BCH早期开发者Freetrader牵头创建了名为BCH Node的全节点,并开发和发布了无IFP的BCHN 22.0节点版本,承诺维持BCH协议,不强迫矿工上交“矿工税”。

从分叉前最后一周的出块数据来看,84.2%的区块由BCHN社区挖出,由BCHA挖出的占0%。BCHN阵营对比BCHABC阵营在算力上占绝对优势。

饼图

最终,于2020年11月15日,BCH正式硬分叉为BCHA和BCHN。其中BCHN以绝对的优势胜出,并延续了BCH的基因。

分叉的影响

对持币者来说,若个人持有私钥,那么在分叉时只需等待(在分叉期间避免转账,因为可能会因重放攻击导致出现丢币的情况发生)。BCH硬分叉后,新链与原链拥有相同的交易数据、地址、私钥、交易方式。在硬分叉之前的一种币,会因为分叉而变成两种,只需要下载新链对应的钱包,并且把原链的钱包私钥导入,即可得到等额的新链币。

对矿工来说,BCHA因为收取“矿工税”而受到大多数矿工的唾弃,而BCH、BSV和BTC所使用的工作量证明算法都是SHA256,三个币种的算法共通,矿机共通,算力在三种密码货币网络间是流动的,矿工追求更高收益的动机使得BTC、BCH、BSV有着相近的挖矿日收益。因此,有着共同POW机制的BTC、BCH或BSV的算力或许会增强。

从算力和安全角度来说,如果分叉后分叉币价之和高于 BCH 本身的价格,就会吸引更多算力流入。如果分叉后两种分叉币的币价之和低于 BCH 本身的价格,就会增大算力的流出。同时,原本BCH的算力分流到两条链上,这会导致分叉链算力减少,相应也会导致51%攻击成本降低,此时区块链网络的安全风险也会变大。


参考文章:https://www.defidaonews.com/article/669122

✍️更新/纠错
登链社区