比特币在自然演进的叙事中,经常会出现“比特币分叉”,对于“比特币分叉”,不少朋友对其中的成因、逻辑以及影响理解并不是很深入。为此,我通过通俗易懂的描述为大家提供一些思路,希望能对大家进一步理解“比特币分叉”提供一些参考。

实际上,从严格意义上来讲,“比特币分叉”的正确说法是“区块链分叉”,只是缺乏对区块链相关知识的了解,部分人在理解比特币时容易停留在字面意思,忽略其底层技术区块链发挥的重要作用,导致在遇到“比特币分叉”等一些概念时,很难结合底层技术去理解它的深层内涵。

比特币的分叉史(一文了解什么是比特币分叉)(1)

从技术的角度来看,区块链是比特币的核心底层技术之一,所以,我们在日常中谈到的“比特币分叉”,其分叉的并不是比特币,而是在“分叉”比特币的底层代码库。

更确切的说,是在分叉“比特币区块链代码库”,至于最终是否真正意义上实现了“分叉”,要根据最初的“分叉”动机以及后期结果是否分叉出了新链来综合判定。

另外一个难以理解的是,因为区块链的特性,比如比特币,因为它具有分散的特性,所以比特币的分支并不是以中央为中心的,这就造成了它的分支,比如协议的升级、区块的扩容,比如,为了达成一致而产生的分支,比如,黑客攻击,不可预测的系统漏洞等等。

不过,虽然分叉原因多种多样,但区块链最终“分叉”的结果只有两种,分叉成功和分叉失败。为了便于理解,我们可以以后期是否产生新链来区分分叉是否成功。

若分叉成功,则有新链产生,原有的一条区块链变成不兼容的两条区块链各自运行;若分叉失败,即没有新链产生,原有的一条区块链依然是一条区块链。

也就是说,真正意义上的分叉成功需要满足两个条件:第一,有新链产生;第二,有一定的用户(社区力量)支持,两者缺一不可。需要强调的是,这里所说的“分叉成功”或“分叉失败”和推动分叉的最初动机或最终结果没有必然联系。

举个例子,比特币首次分叉时,支持大区块的开发者把区块扩容到8M,同时分叉出的新链BCH和BTC独立运行,这就是真正意义上的成功分叉;

又比如,比特币遭到了黑客的攻击,为了保证系统的安全,开发者必须修改密码,或者更新系统,否则,一旦有被人为的破坏,那么比特币就会丧失信誉。

像这样的基于社区一致的代码修补和系统更新是一种普遍的技术更新,不会产生新的分叉,但是我们不能说它是“失败的”,因为开发者的目的是更好地维持比特币的运转。

“分叉成功”或者“分叉失败”只是在分开讨论“区块链分叉”时,为了更好地了解和区别,把它归为“分叉失败”。

没有前面的说明,我们很难理解比特币分叉的含义,特别是那些刚入门的区块链新手。

比特币的分叉史(一文了解什么是比特币分叉)(2)

下面我们来看下学界对“区块链分叉”的解释。

区块链分叉:导致原区块链分叉成两个各自独立的区块链。这可能由硬分叉,软分叉或其他原因造成。

硬分叉:放宽区块有效性的共识规则,以致以前认为无效的区块链现在被认为是有效的,现有节点需要升级才能整合到新的硬分叉区块链。

软分叉:收紧区块有效性的共识规则,以致以前认为有效的一些区块现在被认为是无效的,现有节点不一定需要升级也可以整合到新的软分叉区块链上。

这是怎么回事?本文以抖音、快手等常见 APP软件为例进行了详细的例子。事实上,除了区块链本身具有的去中心化、匿名、不可篡改等特性之外,类似于抖音、快手之类的区块链应用,都属于一款应用。

只不过,抖音、快手等 APP,都是采用了网络技术,而区块链则是加入了区块链技术。想通了这个道理,再去了解一下“区块链的分叉”,就容易多了。

众所周知,抖音等主流应用程序往往会因为添加新功能、改版界面、修复 BUG等原因而进行更新,而区块链上的区块链分叉,就跟抖音、快手等 APP的更新一样。

我们先从APP版本更新的角度来看“区块链分叉”。

首先,我们假定有一个与抖音相似的 APP软件A, A并不是一个公司,而是一群人共同开发的,这些人既是开发者,也是使用者,他们拥有公司的所有战略决策权,如果要修改 A软件,必须得到大多数开发者的支持。

在共同推进 A软件的发展过程中,为了使 A能够更好地发挥作用,往往要对 A进行修改,这既包括了开发者的主观推动力,也包括了其他开发人员所不能预料到的因素。

比特币的分叉史(一文了解什么是比特币分叉)(3)

其中几种主要情况如下:第一种情形:一些参与开发 A的开发人员觉得 A软件太过卡顿,需要增加一个让 A更容易使用的特性,而对于这个建议,其它开发人员也表示赞同。

所以,所有的开发人员一起对 A进行了更新,最后得到了A1版本, A的A1版本兼容,可以让用户选择使用任何一个。

在这个过程中,A1的性质没有变化,就像 A一样。以后,A1软件由于各种原因进行了多次升级,A2,A3,A4,A5等不同的版本,而后面的版本仍然与以前的版本兼容, A软件继续发展。

基于这一点, A软件的更新过程可以被看作是“软分叉”,因为在经过了过度的分割之后,它依然是一个区块链,而不会出现新的分支,这就是所谓的“区块链分叉失效”。

第二种情形:目前有一批参与开发 A的人员表示,已经进入了影视时代,那么 A软件可以将所有的文字都换成视频格式,既能满足用户的需求,又能提高A软件的竞争能力,但这些人的建议却遭到了其他开发者的强烈抵制。

从那以后,两组开发者就分道扬镳了,一组继续发展 A,一组是在 A上开展出来A1。同时,A1和A的数据不兼容,A1的数据无法被 A所识别,所以两个不同的数据都是独立的。

也就是说,从分裂的那一刻开始,原来的A软件彻底分裂成了两个不一样的软件——A和A1,从此两个软件独立运行,各自发展。

如果将第二种情形中的 A所做的修改与区块链相对应,则可以将其视为“硬分叉”,因为区块链在过度分割后,会产生新的分支,并拥有自己的拥有者,也就是所谓的“区块链分叉成功”。

第三种情形:目前,参与开发A的开发人员都致力于使 A变得更加强大,并且获得了广大用户的认同。还有一批人也希望能研发出类似 A的软件,恰好 A的代码是开放源码,人人都能得到,于是有些人只需要稍微改动一下,或者干脆把 A的代码拷贝出来,就能制作出一款 A,还有其他成千上万的软件,比如 B, C, D, E, F等等。

然而,新研发出来的软件,不是 A,就是“翻版” A,所以支持的人寥寥无几。这些软件,大部分都是在市场上销声匿迹,变成了一种没有任何价值的软件,也有一小部分,通过推广、登录各大应用程序,获得了一小撮人的支持。

如果把通过复制或修改代码创建的A、B、C、D、E、F等成千上万款软件开发的过程映射到区块链上,这个过程就可以看作是区块链分叉中的“硬分叉”,因为区块链应用经过分叉后分叉出了新链。

但大多数人并不认同它的价值,因为没有人会去支持它,这就导致了区块链的分裂,这需要两个前提:一是新的链条诞生;第二,需要一定的使用者(社群)支持,也就是“区块链分叉失败”。

比特币的分叉史(一文了解什么是比特币分叉)(4)

那么,为什么同样的软件A就能得到庞大用户的支持并认可它的价值,通过代码复制或修改创建的A、B、C、D、E、F等软件却没有那么多人支持,价值也得不到认同呢?

我们将视线再拉回到以比特币为代表的加密货币身上来做进一步解释。

众所周知,尽管比特币和其他加密货币都是软件,但它们也是以金钱为基础的,跟抖音、快手等普通的 APP完全不同。

比特币、以太坊等不同的发行方式,都是一种新的货币,在抖音、快手等平台上,如果继续“硬分叉”,就像抖音和快手一样,我们可以使用一次或者多次的更新,而在比特币和以太坊等加密货币中,我们的份额会被分成两份甚至更多。

当然,如果单纯从技术角度看,A软件和分裂出来的A、B、C、D、E、F等众多软件是没有本质区别的,都是一些编码的代码库,即使通过复制或修改代码库做了一些改动,那这些软件还是一些编码的代码库。

区块链软件与之唯一不同的是,在价值认同上,人们愿不愿愿意承认它的价值,这种人们是否愿意主动赋予这些软件代码价值的关键因素,就在于区块链的“共识机制”。

也就是说,对于某区块链的“共识机制”,你认为它是有价值的,那么它就有价值,你认为它没有价值,那么它就一文不值。

这也解释了为什么一模一样的区块链项目的代码,在技术上是完全一样的东西,但在价值认同上却天差地别。

例如,中本聪创造的比特币区块链网络,其代币比特币可以达到几万美元一枚,其他开发者复制比特币的代码创建的新链,其代币却一文不值。

造成这种结果的主要原因是,通过复制比特币代码创建出来的代币,其投机属性已经远远超过了其本身的价值存储功能或应用价值。

从价值存储功能角度来说,严格意义上讲,无论哪个公链,硬分叉让“一份钱花两次”这已经是自身机制存在的巨大漏洞,是对自身区块链网络的主动“攻击”。

即使是基于“社区共识”进行的硬分叉,也是对自身“共识机制”的破坏,而重新复制创造相同的新链,等于是默认让同一种代币可以花三次、四次、五次……如此一来,新链代币所谓的价值存储功能早已无从谈起,投机属性暴露无遗。

另外,从应用的角度看,在同样的“共识机制”下,人们拥有两套相同的“共识机制”是没有任何意义的。

比特币的分叉史(一文了解什么是比特币分叉)(5)

上述案例基本上包括了一些主要的区块链分叉案例。对新手来说,对区块链分叉的成因、逻辑和可能造成的后果,有助于在不断变化的市场环境下,认清事物的发展规律,降低由于舆论的影响而造成的错误判断。

至于其他的分叉,基本上都是一样的,就不多说了,你们可以根据自己的理解,来分析一下区块链分叉的成因、逻辑和可能造成的后果,会对区块链有很深刻的认识。

,