01 分叉
熟悉Github的人应该知道,一套代码的质量有多个衡量维度,Fork就是其中之一。分叉其实就是这里所说的Fork,也就是复制并加以修改应用。在这里我们以比特币为例,解释下分叉是怎么回事。
要了解分叉,我们首先需要了解比特币。中本聪曾公布了一套开源软件,并将这套软件构件在P2P(Peer to Peer,这里的P2P不是网贷的那个P2P)网络上。这套软件内涵特定的算法,而通过大量的算法计算,比特币得以产生。
P2P网络的去中心化特性和密码学算法特性可以保证比特币不会被认为制造,而比特币的总量一定,也使得比特币具有极强的稀缺性。
随着比特币越来越为人所知,比特币的交易越来越大,比特币网络原本的区块容量变得不够用。这时候,比特币网络的参与者就提出了各种各样的解决方案。
这些解决方案在复制了比特币原有的代码特性的基础上,修改了部分代码,并以此产生了一套新的代码。而这一套代码,就叫做比特币的分叉。
更为直观的表达为:
比特币分叉主要是为了解决拥堵和扩容问题。不同的团队针对这些问题在比特币现有网络的基础上提出了新的解决方案,这就是分叉。在分叉的过程中,又有新的币产生,这些币就叫分叉币。
当然了,并不是所有的分叉都会产生新的币。软分叉就基本不会产生新的数字币。那么软分叉又是什么呢?
02 软分叉和硬分叉
我们经常会听说硬分叉和软分叉,那他们代表的是什么意思呢?在这里仍然以比特币为例。
软分叉指区块链网络系统版本或协议升级后,旧的节点并不会意识到比特币代码发生改变,并继续接受由新节点创造的区块,新老节点始终还是在同一条链上工作。
硬分叉指比特币区块格式或交易格式(共识机制)发生改变时,未升级的节点拒绝验证已经升级的节点产生的区块,然后大家各自延续自己认为正确的链,所以分成两条链。
软分叉和硬分叉都"向后兼容",这样才能保证新节点可以从头验证区块链。
向后兼容是指新软件接受由旧软件所产生的数据或者代码,比如说Windows 10可以运行Windows XP的应用。而软分叉还可以"向前兼容"。
向前兼容是指旧软件接受由新软件所产生的数据以及代码,比如你用Word 2013保存的文档,假如仍然可以用Word 2011打开,就是一种“向前兼容”。
到这里你可能会问,既然硬分叉产生了两条链,是不是就一定会产生新的代币呢?
答案是否定的。
部分区块链网络在分叉了之后,负责打包的节点也将同步进行升级,随着越来越多的节点升级到新的链上,原有的链很有可能因为没有人维护而被废弃掉。
而到底会不会有新的代币产生,这就取决于团队分叉的目的了。
03 分叉的案例
BTC在这些年的发展中经历了很多次硬分叉,也产生了很多的分叉币。其中最成功的莫属比特大陆团队主导的BCH分叉,而以太坊网络上产生的硬分叉却是史上最经典的。
2016年,The DAO项目被黑客攻击,损失了约6000万美元的ETH。为了追回被盗的资产,以太坊团队采取了分叉的方式。自此,以太坊分裂出了两条链,原链(ETC)和新的分叉链(ETH)。
后来的发展证明这是一次成功的分叉,毕竟ETH已经成为市值第二的加密货币,到现在依然有很多人会误以为ETC是ETH的分叉币。