05.08 聊聊区块链背后存在的问题(一):分叉

近年来,比特币和区块链逐渐成为新风口,受到创业者、资本家和市场的青睐。一方面,比特币的价格不断高涨,一度突破2万美元,另一方面区块链融资成爆发式增长,根据猎豹全球智库区块链研究中心发现,2017年,全球ICO融资金额高达350亿元,而2017年全球区块链行业的传统风险投资融资额约50亿左右,ICO融资额是传统风险投资融资额的7倍。

但是,无论比特币和区块链如何变化,归根结底它们都是软件系统。既然是软件,那么就会存在Bug或者安全漏洞。只不过没有人发现时,人们都不知道。

聊聊区块链背后存在的问题(一):分叉

何为“分叉”?

虽然很多人热衷于比特币和区块链,但是不一定注意到,它们本身就是一种实验性的软件。区块链是一个个的区块数据,通过区块的哈希值串联起来形成一个链条般的账本数据。但是,区块数量不断增加,如果增加一个新区块A时,软件进行升级增加一些新东西,那么会发生什么呢?

聊聊区块链背后存在的问题(一):分叉

如果新区块生成的时候,新版本也发布,并且新版本增加了之前版本不能识别的数据结构,此时部分用户升级了新版,部分用户还没有升级,这些新旧版本的软件仍然在各自不停的挖矿、验证、打包区块,这样就会出现分叉。

平时,大家都会使用各种App客户端。它们都是中心化的系统,数据存储集中,版本管理集中,因此对升级有很好的控制。但是,区块链本身是一种分布式、去中心化结构,一旦新版本出现,有的人没有升级,就会出现分叉。

聊聊区块链背后存在的问题(一):分叉

分叉的情况可以分为两类,一是新版本节点认为老版本节点发出的区块/交易合法,2新版本节点认为老版本节点发出的区块/交易不合法。

硬分叉和软分叉?

并且,“分叉”还分为硬分叉和软分叉。

硬分叉:当系统中出现了老版本的协议,并且和前版本不同兼容时,老节点不承认新节点挖出的全部或部分区块而导致同时出现两条链的情况。

软分叉:老节点不能发现新协议的变化,从而继续接受新节点用新协议所挖出的区块,这种情况称为软分叉。

聊聊区块链背后存在的问题(一):分叉

目前,业界已经出现了分叉事件。2017年8月1日,由ViaBTC领导的矿工团体创建一个比特币分叉——Bitcoin Cash(简称BCC或BCH)。这次分叉,让大量的比特币持有者凭空的增加了一种新的数字货币(BCH)。

其次是以太坊的分叉事件——The DAO项目。由于自身漏洞,导致黑客窃取了价值6000万美元的以太币。2016年7月,以太坊开发团队通过修改以太坊软件的代码,在第1920000个区块强行把The DAO及其子DAO的所有资金全部转到一个特定的退款合约地址,从而“夺回”黑客所控制的DAO合约币。

但是由于部分矿工不认同这个修改,于是形成两条链:以太坊(ETH),以太坊经典(ETC)。不过有趣的是,原本持有以太币的人,发现自己又有了相同数量的ETC。

以上事件的发生,不仅暴露了区块链本身的安全问题,而且还会带来很严重的后果。

在下一篇文章,笔者将会阐述了区块链的另一大问题:51%的攻击!(备注:部分内容参考《白话区块链》 蒋勇)。


分享到:


相關文章: