比特币核心钱包(bitcoin core)是一款开源软件,是对比特币规则进行讨论和争议的焦点。这款软件由极为宽松的开源(open source)许可证——MIT许可证认证。只要注明版权声明和许可声明,就可以将该软件用于各种用途。比特币核心钱包是目前运用最为广泛的一款比特币软件。即便不利用它进行软件开发,许多人也会通过研究它来了解比特币的规则。在构建其他比特币软件时,人们会借鉴其规则定义部分的内容,包括判定交易和区块的有效性。
比特币核心钱包实际是比特币的规则手册。通过研究比特币核心钱包及其相关解释,可以了解到在比特币系统中真正有效的内容。
比特币改进方案
任何人都可以通过“提交请求”(pull requests)按钮,帮助比特币核心钱包进行技术改进,这一过程在开源软件(open-source software)世界极为常见。若想对软件进行更大的改动,特别是对协议进行修改,则可以通过一个较为正式的叫作比特币改进方案(Bitcoin Improvement Proposal,简称BIP)的流程来实现。因此,如果你有意通过技术改变来改进比特币,你可以把你的想法写下来,根据比特币改进方案的要求,与其他文件一起公开发表。这会触发比特币社区就你的方案进行讨论,并决定下一步行动。虽然任何人都可以提交正式方案,但正如所有开源项目(open-source project)一样,这存在学习曲线。
BIP以编号序列形式发布,每项方案有一名拥护者,负责宣传方案、协调讨论活动并努力促成方案在比特币社区向前顺利开展或实施。
我们上面所说的内容适用于对技术更改的方案。事实上,也存在一些BIP,或者只是为了提供信息,传播关于比特币的知识;或者将之前仅在源代码中明确的部分代码进行标准化。而其他一些BIP侧重流程,讨论比特币社区如何决策事项。
总之,除了包含规则手册中的内容外,BIP还包含方案、制定和讨论规则变更的流程。
比特币核心钱包开发人员
要了解比特币核心钱包的作用,我们需要了解比特币核心钱包开发人员所发挥的作用。原始代码的作者是中本聪(Satoshi Nakamoto),我们在7.4节还会介绍。现在,中本聪本人已经不再活跃,但还有一群开发人员在维护着软件。有数百名开发者在为这个项目写代码,但只有少数几个人拥有对核心钱包数据库的“调配”(commit)权限。这些核心钱包的首席开发人员持续维护该软件,并决定哪些新代码可以加入软件新版本中。
这些人的权力有多大?从某种意义上说,他们的权力是很大的,因为他们对代码做出的规则改变终将呈现在比特币核心钱包中,这些规则会默认被遵守。这些人写下比特币事实上的规则手册。但从另一个角度来看,他们根本就没有什么权力。因为这是一款开源软件,任何人都可以复制、修改它(随时创建一个比特币分叉)。因此,如果首席开发人员的表现不被社区接受,社区可能走向不同的方向。
可以这么想,首席开发人员就像在引领游行队伍前进。他们在队伍的最前面,当他们拐弯时,队伍一般会跟着他们拐弯。但是如果他们试图把队伍带入灾难性的境地,那么队伍中的其他成员可能会选择不同的方向。这些首席开发人员可以敦促社区,但是,如果他们试图把系统带入不被社区接受的技术方向,他们并没有正式的权力,来迫使人们跟随他们。
现在来思考一下,作为系统的使用者,如果你不喜欢它的规则或系统运行的方式,能够做些什么,并与集中式货币(如法定货币)进行比较。在集中式货币系统中,如果有异议,你有权退出,也就是说,你可以不用它。你必须想办法把持有的货币卖出,然后移居到使用另一种货币的地方。有了集中式货币,退出是你的唯一选择。
在比特币系统,你当然也有权退出,但是,因为它作为开源系统(open-source system)运行,你就有了对规则进行分叉的权利。也就是说,你、你的朋友和同事可以选择运行一套不同的规则,而且,通过对规则进行分叉,走向与首席开发人员不同的方向。与退出相比,分叉赋予用户更多的权力,像比特币这样开源系统的社区比完全集中系统的社区拥有更多权力。所以,虽然首席开发人员看似一个拥有控制权的集权式实体,事实上,他们并不拥有一个完全集权式管理人员或软件所有者所拥有的权力。
规则分叉
创建软件分支或规则分叉的一种方式是,以新的创世区块创建新的区块链。人们经常通过这种方式来创建另类币,我们将在第10章谈到这个问题。现在,我们来谈谈对规则的另一种分叉,这种分叉不仅对规则进行分叉,还对区块链进行分叉。
在第3章中,我们谈到了硬分叉和软分叉之间的区别,这里我们谈的是硬分叉。当对规则有分歧时,区块链中会有分叉,导致两个分支。其中一个分支在规则A下有效,而在规则B下无效,反之亦然。矿工一旦在两种不同的规则下操作,他们就无法合并到一起,因为每个分支都将包含在另一规则下无效的交易或区块。见图7.2。
图7.2 货币中的分叉
注:如果规则的分叉导致区块链的硬分叉,那么货币本身就会分叉成两种新货币。
我们可以把分叉前的货币看作比特币,深受人们认同和喜爱的比特币。分叉之后,出现两种新货币,符合规则A的货币A和符合规则B的货币B。分叉时,每一个持有一个比特币的人得到一个货币A和一个货币B。分叉后,货币A和货币B开始分开运行,而且它们可能会独立运行。这两者的规则还可能以不同方式继续发展。
需要强调的是,不仅仅是软件,或规则,或实现规则的软件分叉了,货币本身也分叉了。这个有趣的现象只可能发生加密数字货币中,却不能发生在传统货币中,因为传统货币并不允许用户将货币进行分叉。就目前我们所了解的情况,不管是比特币还是任何另类币,尚未以这种方式分叉过,但确实存在这个奇妙的可能。
人们会对这样的分叉做出何种反应呢?这取决于分叉的原因到底是什么。第一种情况是,进行分叉的原因并不是对规则存在异议,而是想创建一种另类币。如果想创建一种与比特币规则类似的另类币,有些人会通过将比特币的区块链分叉的方式来实现。这对比特币社区来说并不构成真正的问题,另类币单独运行,与比特币主分支和平共存,一些人偏好比特币,另一些人更偏好另类币。但是,正如之前我们说过的,截至目前,还没有人通过将比特币或现有另类币的区块链分叉的方式来创建新的另类币,他们一般都通过新的创世区块来创建。
一个有趣的情况是,如果分叉的原因是人们对比特币的未来发展存在分歧,换言之,比特币社区内部发生叛乱,因为一些成员认为自己对系统如何运行有了更好的想法,决定脱离出去。在这种情况下,两个分支成为对手,会争夺市场份额。货币A和货币B都会努力说服更多商家接受它,让更多人购买它。每种货币都想成为“真正的比特币”。它们都声称自己是合法的,并将对方描述成一个怪胎,这可能会引发一场公关之战。
结果很可能就是某一分支胜利,另一分支则渐渐消失在人们的视线中。这种类型的竞争往往指向某一方向。一旦人们认为这两个分支中的某一个更合法并获得了更大的市场份额,网络效应会越来越明显,而另一种货币将成为一种利基(niche)[1]货币并将最终消失。获胜方的规则和管理架构将成为比特币事实上的规则和管理架构。
[1] (商业用语)是指针对企业的优势细分出来的市场,这个市场不大,而且没有得到令人满意的服务。产品推进这个市场,有盈利的基础。在这里特指针对性、专业性很强的货币。——译者注