分叉风险是什么原因()

近日,比特币现金硬分叉事件闹得沸沸扬扬,而与此同时,虚拟货币的价格雪崩。除了认为比特币现金的硬分叉是币价大跌的重要原因之外,“硬分叉”和“算力大战”,也引发了整个行业的讨论。在此,链法律师团队尝试从法律角度,对区块链硬分叉进行分析。

什么是硬分叉

众所周知,在区块链系统中,矿工通过匿名共识机制将交易记录打包并纳入区块链的末端,在区块链系统的初始状态,所有的节点运行同样的软件,遵循着同样的共识协议。

这时,如果一部分节点更新了共识协议,系统中就会同时出现使用新协议的用户和维持旧协议的用户,我们姑且称之为新节点和老节点。

硬分叉指的是当系统中新用户协议与老用户协议不兼容,老节点无法接受新节点挖出的全部或部分区块,这种情况下,老节点会按照旧协议维护着区块链,而新节点所打包的区块会形成另外一条链,也就是说在某个时间节点,区块链由一条链分叉为两条,这便是硬分叉。

通俗地说,硬分叉可以理解为原本在一起的矿工因为理念的分歧分为两个团体,然后各自做各自的事情的,如果需要打个比方的话,这有点类似于1825年美国民主共和党发生内讧后分为国家共和党和民主党。

我们认为对于区块链硬分叉的问题可以从两个维度进行分析:

一个维度是开源代码的修改问题;另一个是法律行为理论的角度。

BTC是一个开源的软件项目,从BTC分叉出来的BCH也延续了这一特性。

开源软件是指使用了开源软件许可协议的的软件。软件许可协议包含在软件中,它约定了许可人和被许可人的权利义务,而开源软件许可证是指经过开放源码组织(OSIA)批准的软件许可证。根据《计算机软件保护条例》第十八条第一款之规定:“许可他人行使软件著作权的,应当订立许可使用合同。”我们认为,软件许可证在法律性质上相当于软件许可使用合同。

开源软件许可证具备以下特征:

第一,授予所有人使用、修改及发布开源软件的权利;

第二,要求修改者以开源许可证发布其修改后的软件,亦即源软件的许可证要求该软件的修改者发布其演绎作品的完整源码,且必需同样以以开源许可证来发布;

第三,所有的开源许可证中都包含有这个无担保(No warranty)条款,这主要是因为开源软件的开发者通常都会将软件免费提供给所有人使用,所以无力承担担保责任。(参见:车璐,《开源软件法律问题研究》,湖南大学2007年硕士学位论文,第4页以下)

基于开源软件的上述特征,我们不难得出以下推论:

所有基于开源区块链代码演绎出的新作品均需要以开源形式发布,这意味着开源区块链项目的分叉风险不可避免,因为任何人都有权对开源区块链代码进行修改且不得阻止他人对其修改后的作品进行再次修改。

然而,正如此次BCH硬分叉(可能)导致其价格大跌一样,分叉意味着算力的分散和区块链性能的降低,这必然会打击投资人的信心。理由在于区块链系统里三个不同的想法——区块链的安全性、挖矿生态系统的健康程度,以及货币的价值在相互作用。

上述三者之间的循环依赖关系,并形成了一个“自举过程(bootstrapping)”,这一自举过程可以通俗解释为听到虚拟货币的人越多,感兴趣挖矿的人就越多;挖矿的人越多,人们就会对区块链的安全越有信心,因而更多挖矿活动在进行。(参见:(美)纳拉亚南等,《区块链:技术驱动金融》,中信出版社2016年版)

因此,从这个角度而言,分叉对区块链社区是有害的,它会损害所有社区成员的利益。

既然分叉危害巨大,而开源软件的特性导致修改共识协议难以避免,那么是否有其他方式可以防范这一风险呢?在当前法律制度对此问题没有明确规定的前提下。我们尝试根据法律行为相关理论来分析其可能性,并将这一新问题转化为民法中的违约责任和侵权责任问题。

区块链基于共识而生,而这种共识可以理解为一种共同行为。

民法理论中的共同行为是指当事人多个方向相同的意思表示趋于一致而形成的法律行为。

有学者用共同行为来解释公司的设立行为及章程,并提出:“在共同行为中,不仅各行为人意思表示内容相同,意思表示方向一致,而且,各行为人的意思表示均指向一个特定的目标实体或者关系实体。”(韩长印:《共同法律行为理论的初步构建——以公司设立为分析对象》,载《中国法学》2009年第3期,第79页。)

根据上述理论,可以认为,在区块链系统中,所有节点共识所指向的关系实体为区块链,或者说是区块链社区。基于共同行为理论,我们认为,在区块链社区设立成立之初,发起人可以通过共同行为达成一种类似公司或社团章程的共识,该共识以“不分裂社区或损害社区利益”为主要内容和原则并可以约定违反共识时的责任。从理论上而言,共识对所有接受共识者、区块链社区、及后续加入区块链社区的人均产生拘束力,且其成立和生效会产生多元的权利义务关系。此类共识的建立有助于社区或社员在他人损害其利益时维权。

在建立不得分裂社区共识的前提下,对于不履行共识约定义务的人,其应承担的责任有两重:

第一重是向区块链社区承担因不履行义务而产生的法定责任。

第二重是向区块链社区其他成员承担的责任。若共识中另有有关义务违反的明确约定,则应依据该特约向其他社区成员承担约定责任;若协约无特殊约定,但行为人的过错行为造成了社区成员的直接损害,则前者可能要对后者承担侵权责任。

综上所述,根据共同行为理论,在区块链系统中对于违反共识的当事人,其对社区应当承担何种责任由法律规定,而目前的问题有两点:

第一是由于立法滞后,并无法律规定违反约定者应承担何种责任;

第二是区块链系统中的关系实体亦即区块链社区并无实体法上的资格,具体的责任应向谁承担难以确定;而另一方面,行为人违反区块链社区的基本规则,对用户造成损害的,用户可以提起侵权之诉,要求行为人予以赔偿。

(作者:链法,内容来自链得得内容开放平台“得得号”;本文仅代表作者观点,不代表链得得官方立场)