最近,比特大陆正在筹备比特币现金(BCH)的分叉事宜,令BCH这几天价格大涨,BCH也因此受到瞩目。
我们都知道,数字货币中最广为人知的比特币,以及区块链2.0代表以太坊,都曾经发生过分叉事件。分叉,其实是与区块链不可篡改这一特点背道而驰的行为。那么,什么是分叉?为何要分叉?分叉对于区块链又会产生怎样的影响呢?
一、什么是分叉?
区块链是一个分布式账本,一般被认为不可篡改。但在区块链发展的历程当中,难免受到技术上的一些限制,比如区块大小过于饱和、确认速度变慢、程序漏洞,等等。面对这些技术上的问题,社区必须要达成共识,来对区块链系统进行升级、拓展或者修补。
在这一过程中,“不可篡改”其实就已经成为了伪命题。分叉(fork),是对区块链的共识协议进行修改,使得修改后的区块链,运行规则不同于旧链。
其实,分叉是一种自然而然的结果,因为在通常情况下,分叉是对区块链的一种完善和保护。通过分叉这种方式对区块链进行维护、优化、拓展,虽然也因违背“不可篡改”这一原则而受到争议,但只要通过了社区共识,基本上并没有什么实质上的改变。
如果无法达成共识,那便会产生新链。
分叉又分为硬分叉和软分叉。就如同由旧版本修改升级过后的一个新版本,但有的新旧版本能够兼容,有的新版本无法兼容旧版本,能兼容的为软分叉,无法兼容的则为硬分叉。
2014年,以太坊上最大的一个项目the DAO出现漏洞,招致黑客攻击,被盗走大量以太币。为了保护整个公链上的生态,以太坊创始人决定在社区内发起“是否进行分叉”投票,最终以太坊以多数票成功进行了分叉。
这一次分叉为硬分叉,但由于并未获得所有成员的认同,以太坊分裂出了一条新链,即为现在的以太坊,这是数字货币史上的第一次有影响力的分叉,引发了一轮对于区块链不可篡改和去中心化的讨论。
2017年,比特币因为扩容之争,最终将1M大小的区块链扩容至2M,因此分叉了比特币现金(BCH),并由此引发了比特币的分叉狂潮。
二、分叉的原理
区块链的共识协议被修改,被修改的协议无法向旧区块链兼容,而旧节点也无法认可新节点产生的区块链,旧节点和新节点因此在不同的区块链上运行。这一变化即为硬分叉。
区块链是一个软件,故而硬分叉首先发生在新的客户端上。由于新的客户端修改了原有的规则,不被旧客户端所兼容;这时,区块链上的部分新节点开始在新客户端网络上运行,产生的交易被旧节点拒绝,旧节点从而断开与新节点及其交易的连接,区块链网络便出现分叉。
在这种情况下,新客户端的矿工们会基于新规则进行挖矿,并挖出同样基于新规则的区块,而旧版本依然在旧规则下处理交易、产生区块。如此下去,新的区块和旧的区块分道扬镳,便造成了这个区块链的分叉。
很明显,这里的硬分叉是由于新旧版本的兼容,同时也是对新旧区块链共识的不一致造成的。
软分叉,即被修改的协议能够向旧区块兼容,旧节点能够接纳新节点产生的区块,新旧节点仍然能够在同一区块链上运行。
所以,一般情况下,软分叉并不会产生新链。为了能够向前兼容,只能在原有的代码基础上进行修改,而不能增加的新的字段,这令软分叉对于区块链的升级和优化十分有限。然而,软分叉看起来简单,在实际的技术操作上却要比硬分叉复杂得多。
两者相比,硬分叉通常是扩展共识协议,而软分叉则是紧缩共识协议,这也是硬分叉不能兼容旧链而软分叉可以的根本原因。
三、分叉的优缺点
分叉是对共识协议的修改,可以弥补原有协议中的漏洞,根据区块链的发展状况对规则进行调整,对整个系统进行升级和维护。
比如比特币由于区块大小不堪重负,通过分叉修改区块大小,解决了拓展问题上的燃眉之急;而以太坊进行分叉,则是出于保护区块链生态,并且夺回被黑客转移走的以太币。可以说,分叉是一种兼顾区块链延续性和扩展性的方法。
但分叉始终都处于一种争议之中,即它违背了不可篡改的原则,引发了人们对于去中心化的质疑。在区块链现下的情况,即使分叉能够解决延续性和扩展性这两大棘手难题,但依然不被看作是良方。
在技术上,硬分叉要实现并不难,但在社区共识方面说难很难,说简单也很简单。以太坊的“迭代计划”中就有拜占庭和君士坦丁堡两大分叉计划,这是社区达成共识的方案,并不会因此产生新链。
而如果未能达成共识,则会产生出新链和新币,如同比特币的疯狂分叉。这种分叉还衍生出了IFO这个新概念,Initial Fork Offering,即分叉币的首次发行。分叉币会成为原有币种的竞争对手。
但更严重的情况是,硬分叉有分裂区块链生态的风险,这是分叉技术受到争议的最大原因。
软分叉对于生态的影响相对较小,但不仅技术上有一定难度,还容易“吃力不讨好”。由于软分叉只能在原有的代码上进行修改,使得升级空间有限,同时代码将因此变得更加复杂,产生BUG的概率会更大,不利于未来的维护。
总体而言,分叉弊大于利。对于延续性和扩展性的解决方案,还是另辟蹊径为好。
文章来源:BB财经bbcaijing,转载请注明出处!