(中国财政科学研究院研究生院,北京100142)
近年来,基于区块链的各类系统应用层出不穷,纳斯达克交易所推出了基于区块链的LINQ系统,支持私募股权的发行、登记、转让等业务。R3区块链联盟与全球40多家金融机构合作推出Corda平台,支持证券结算、债券回购等金融服务,并可以满足数据隐私等法律合规要求。加拿大央行的Jasper项目①、欧洲央行和日本央行的Stella项目、新加坡央行的Ubin项目②纷纷试点上线,数字货币被尝试用于商业银行之间的结算业务。此外,区块链技术还在投票选举、艺术品鉴定、产品溯源、实时会计、数字版权保护等传统行业,尝试推动技术变革和流程再造[1]。
“区块”(Block)是区块链系统最基本的存储单元,也是分布式系统协同管理各计算节点业务处理能力的桥梁和纽带。每个区块不但记录着经过确认和处理的业务申请信息,还包含着前一个区块的散列值。由于哈希值的计算特性,修改任意区块内任意的数据记录都会造成该区块及后续所有区块的哈希值发生变化。同时,全网同步功能确保每个数据节点都保存着一份完整的数据账本(Ledger)。块链结构和数据同步特性使得区块链系统天然具有 “历史数据防篡改”、“数据来源可认证”等优越特性,因此区块链可以被广泛应用于交易清算、凭证存管、数据共享等业务场景,可以有效克服业务实施过程中参与方众多、流程链条长、数据源头混乱等问题。
数据存储资源是确保业务系统顺利运行的核心资源。在传统的系统架构下,平台运营者可以完全控制并决定数据存储资源的供给。但是作为典型的分布式系统,区块存储容量的供给是由各个数据节点独立决策的。由于软件版本、本地缓存、网络环境等方面均存在差异,彼此独立的数据节点最终是否可以在区块存储供给方面达成均衡、一致的规律,是区块链平台的设计者、运营者和使用用户共同关心的问题。
在现有的研究成果方面,Houy(2014)借助规范式的分析方法证明,通过强制收取服务费用或限制区块大小,分布式系统可以用市场化的方式达成均衡,并确定区块存储空间的价格[2]。Rizun(2015)对数据节点的投入成本和运营收益进行了理论分析,并通过经验分析构建了区块链系统的需求供给曲线及其均衡状态[3]。Easley等(2019) 认为 “无用户付费”、“部分用户付费”、“所有用户付费”是比特币系统必经的发展历程,并且实证检验了随着业务申请的等待时间增加,不付费用户的比例会减小。随着不付费用户的离开,用户与数据节点之间会自动达成新的均衡状态[4]。Moser和Bohome(2015)借助排队理论构建了业务处理优先级模型,并实证检验了服务费用的高低对业务申请等待时间的影响[5]。
可以看出,前人的研究主要集中于服务费用的必要性、奖励模式的演变趋势以及对业务申请的优先级处理和影响等方面。但是尚未从系统运营的角度,对影响区块存储供给能力的因素给出全面分析。本文将重点研究区块链系统存储空间的供给能力模型及其影响因素,本研究具有以下几方面意义:(1)有利于合理规划业务应用场景。不同的业务应用对于信息存储需求各不相同。如证券交易、支付结算等业务的标准化程度较高,而在线签约、信息披露等应用因业务场景不同个性化程度较高。对区块存储空间供给能力的研究,有助于系统设计人员更加合理地规划各类应用场景的数据存储需求;(2)有利于建立稳定有效的激励机制。数据节点是业务处理和系统运营服务的提供方。区块存储空间的供给能力直接影响到数据节点每批次可以处理的业务申请的数量,进而影响到数据节点可以获取的服务费用收入。对区块存储空间供给能力的研究,有助于指导运营管理机构对激励机制进行评估和构建;(3)有利于提供更加透明可控的服务质量。用户是业务申请的发起方。通过提供适当的服务费用,用户希望其业务申请可以在期望的时限内得到响应和处理。对区块存储空间供给能力的研究,有助于用户掌握数据节点在运营过程中的共性策略,进而确保获得相对可控的服务质量。
在区块链系统中每个数据节点都需要通过共识机制,参与全网记账权的争夺或选举。工作量证明(Proof of Work,PoW)是目前最为成熟、应用最为广泛的共识机制,也是很多其他共识机制的底层基础。以PoW机制为例,全网最先找到符合难度值要求的工作量证明条件的数据节点将赢得新区块的创建权限。因此,在每一轮全网记账权竞赛或选举过程中胜出的数据节点,不但可以决定对哪些业务申请进行处理确认并将其装入新的区块,还可以决定新区块的存储空间大小。
伴随着新区块的创建,赢得全网记账权的数据节点还将同时获得两种形式的奖励:区块创建奖励和服务费用奖励。其中,区块创建奖励是为了鼓励数据节点参与共识而由系统给予的一次性固定金额奖励。服务费用奖励是由用户提供的、关于处理业务申请的服务对价,也是数据节点可以获取的可变收入。如何尽可能多地获取业务收入,是每个数据节点在运营过程中关注的核心策略。
理性的数据节点将会从以下两方面着手考虑:(1)优先选取服务费率③更高的业务申请进行处理;(2)在不超过系统参数的最大限制范围内,尽可能多地将业务申请放入新创建的区块。如果在区块中增加一笔业务申请的边际成本为零,那么数据节点会将所有业务申请全部纳入新创建的区块。但实际上在区块中增加业务申请记录的边际成本不可能为零。
更大的区块需要花费更长的时间才能被广播并同步到网络中的其他节点,而在这个过程中可能发生数据账本分叉等风险事件,并对赢得记账权的数据节点的期望收入造成损失。因此,数据节点不可能通过无限制地扩大区块存储容量来获取更多收入,运营管理者也不可能通过无限制地扩大区块存储容量来提升系统承载能力。作为理性的决策者,数据节点必须合理控制区块存储容量的大小,并选择合适的业务申请装入新区块,以便实现可变收入最大化。
“区块孤立”是指这样一种场景:数据节点A在全网范围内率先找到了工作量证明条件,并陆续向其他数据节点广播通知新创建的区块。由于数据节点之间的网络带宽不可能无限大,所以新区块的全网同步过程需要一定的时间。在新区块的同步过程中,如果另外一个尚未获知新区块的数据节点B也找到了工作量证明条件,那么全网范围内将有两个数据节点同时对外发布新区块的广播信息。如果区块链系统的网络范围很大,一部分数据节点可能会先接收到节点A创建的新区块,而另一部分数据节点可能会先接收到节点B创建的新区块。此时,数据账本就会出现分叉现象(Fork)。
一旦出现数据账本分叉,不同的数据节点就会在不同的数据链条上继续开展全网记账权的竞赛。根据 “最长链原则”,在区块链系统的后续运行中,如果节点A所在的数据链条被其他更长的数据链条超过,节点A创建的区块及其后续区块都将成为 “孤立区块”(Orphaned Block)并被绝大多数的数据节点丢弃[6]。为了避免出现 “双重支付”风险,节点A所获取的区块创建奖励和服务费用奖励也将被系统取消。
每个节点寻找工作量证明条件的过程都是完全独立的事件。假设经过了x个时间单位的计算,节点m在全网范围内率先找到了工作量证明条件。新区块向全网的广播和同步过程需要额外花费的时间为τ。节点m创建的新区块在广播同步过程中出现风险的概率可由下式表示:
其中,L-m代表节点m以外其他节点找到工作量证明条件所需花费的时间。根据现有文献,数据节点找到工作量证明条件的累积概率服从指数分布形式[7,8]:
其中,T是每轮记账权竞赛的平均持续时间。将式(2)代入式(1)后,整理可得:
考虑到区块孤立事件的风险,赢得全网记账权的数据节点m的期望利润可以表示为:
在不考虑区块孤立风险的情况下,数据节点m在每轮记账权竞赛中可以获得的期望收入是V。数据节点的期望收入由区块创建奖励R和服务费用奖励F两部分组成。其中,区块创建奖励固定不变,而服务费用奖励F由服务费率ρ和区块存储空间的大小Q共同决定。数据节点m赢得该轮次记账权竞赛的概率由节点自身的计算能力hm与全网计算能力的总和H的比值决定。
在新区块的同步过程中,业务数据检查、工作量证明验证、网络传输等环节都需要耗费时间。但是,相比于处理器的运算速度,网络传输过程所消耗的时间资源更多。其他环节的时间延误可以暂且忽略不计。新区块的网络同步延时τ=Q/B,其中Q代表新区块的存储空间大小,B代表节点m的网络传输速率。
不论是否能够赢得记账权,数据节点m在每轮次竞赛中都必须支付一定的运营成本C。其中,cm代表单位时间内单位计算能力的运营成本(包括硬件设备的折旧成本和电力能源的消耗)。
为了获取更多的服务费用收入,数据节点倾向于将更多的业务申请纳入新区块。但是,区块孤立事件的风险会对数据节点的期望利润造成影响。存储容量越大,新区块同步所需的时间就越长,发生区块孤立事件的概率就越高。反之亦然。如果新增加的服务费用收入不足以抵消区块孤立风险可能带来的业务收入损失时,数据节点就会根据自身的资源配置和外部环境对区块存储空间的供给进行权衡。
作为理性参与主体,数据节点将以 “期望利润最大化”作为目标。本文使用区块存储空间Q对上述数据节点期望利润的表达式进行一阶求导,可得:
这里,ρ0代表期望利润最大化时,数据节点可以接受的最低服务费率,即区块存储供给时的边际成本。在确定新区块的存储容量时,数据节点会将业务申请的服务费率与存储空间供给的边际成本进行比较。如果业务申请的服务费率高于边际成本ρ0,那么数据节点会选择将相关业务申请放入新区块中,直至达到系统设定的最大参数限制,以便进一步提高期望利润;反之,如果业务申请的服务费率低于边际成本ρ0,那么数据节点将会拒绝把相关业务申请放入新区块,以避免由于区块存储空间过大而可能造成的风险损失。
根据上述分析,我们提出如下假设:
H1:业务申请的服务费率对数据节点的区块存储供给存在正向影响。
即业务申请的服务费率越高,数据节点愿意提供的区块存储容量就越大;反之,业务申请的服务费率越低,数据节点愿意提供的区块存储容量就越小。
本文主要借助比特币系统的历史运营数据,对上一节的假设进行检验。
作为广泛部署的公有链应用,比特币系统先后经历了起步、壮大、成熟等发展阶段。从比特币系统的发展历程来看,两类事件可能会对系统运营造成影响或干扰。第一类事件是 “区块创建奖励调整”。2012年11月,比特币系统的区块创建奖励从最初的50比特币缩减为25比特币。2016年7月,比特币系统的区块创建奖励从25比特币缩减至目前的12.5比特币。区块创建奖励调整对比特币系统运营数据的影响主要体现在两个方面:(1)比特币的汇率价格会因为供求关系变化而剧烈波动;(2)区块创建奖励对服务费用奖励具有替代作用,早期过高的区块创建奖励可能会干扰业务申请的服务费率对区块存储供给能力的影响。第二类事件是 “数据账本分叉”等异常事件。2013年3月,比特币系统在升级过程中由于程序缺陷④而发生意外分叉并最终回退。2017年,比特币系统也发生过两次数据分叉⑤。数据账本分叉事件影响了区块链系统的稳定运行,会对相关参与方的业务收入带来损失,还会对比特币持有者的价值期望造成冲击,进而造成比特币汇率的大幅波动。
在选择样本区间时,应尽量避免上述两类事件对运营数据可能带来的干扰。综合来看,本文计划对比特币系统2018年的运营数据进行采样。每天随机抽取10个区块,共抽取3650个区块作为样本数据。本文所有数据均来源于Blockinfo网站。
本文将被解释变量设置为 “区块存储容量”,即单个区块所提供的存储空间,包括区块头和数据体两部分。数量单位是 “KB”(千字节)。解释变量是 “区块平均服务费率”,即按单位存储空间核算的每个区块的平均费率水平,数量单位是“BTC/MB”(比特币每兆字节)。
控制变量主要包括以下两项:区块中包含的交易总笔数,数量单位是 “笔”;区块中包含的所有交易申请的成交总规模,数量单位是 “BTC”(比特币)。
由于比特币系统提供的运营指标非常有限,本文无法按照理论模型的要求,获取到 “网络带宽”等更加细致的特征数据。为了避免 “遗漏变量偏差”可能导致的内生性问题,本文选用工具变量(IV)方法评估内生解释变量(区块平均服务费率)对被解释变量(区块存储容量)的影响。
选取“比特币当日汇率价格”和“比特币前30日平均汇率价格”作为工具变量,数量单位都是“美元/比特币”。比特币汇率价格取自Blockinfo网站发布的数据⑥。当业务申请的处理需求与区块存储的能力供给之间处于相对稳定的状态时,服务费用的实际价值基本保持不变。业务发起方会根据比特币的汇率价格,动态调整以比特币计量的服务费率水平。即本文选取的工具变量与内生解释变量高度相关,但与被解释变量的误差项之间基本保持不相关。初步判断上述工具变量的选择符合要求。
本节所有的主要变量及其定义汇总如表1所示。
表1 主要变量定义
为了检验区块平均服务费率对区块存储空间供给的影响,本文构建了以下的两阶段最小平方回归(2SLS)分析模型:
在一阶段回归过程中,区块平均服务费率sat-Blk是内生解释变量,工具变量是比特币的当日汇率价格exchange和前30日平均汇率价格exchange30;在二阶段回归过程中,被解释变量是区块存储容量BkSize,内生解释变量是区块平均服务费率satBlk,外部控制变量是区块内的成交总规模EstVol和区块内的交易总笔数NumTrans。
本文最关心的是一阶段回归过程中工具变量的有效性,以及二阶段回归过程中内生解释变量的响应系数的正负方向及其显著性。
根据上一节中的变量界定,相应变量的基本特征如表2所示。
表2 变量基本特征
值得注意的是,样本数据中存在个别平均服务费率为0的区块,这些区块中没有承载任何交易申请。被解释变量(区块存储容量)和解释变量(区块平均服务费率)的直方图如图1所示。可以看出,区块存储容量集中分布在1000KB~1300KB的范围内,区块平均服务费率的分布相对集中。
作为工具变量,比特币当日汇率价格和前30日平均汇率价格的变化趋势如下图所示。可以看出,2018年初比特币的价格波动非常剧烈,在随后的时间段内价格变化相对平缓。此外,前30日平均汇率价格曲线相对于每日汇率价格曲线更加平滑。
根据前文的变量定义和模型构造,本文借助两阶段最小平方回归(2SLS)的方法针对平均服务费率对区块存储容量的影响进行实证检验。检验结果如表3所示。
在第一阶段的回归过程中,工具变量exchange和exchange30的回归系数都在1%的显著性水平上显著。同时,F统计量的值是291.43,Adj R2值是0.6018。
在第二阶段的回归过程中,内生解释变量sat-Blk的回归系数在1%的显著性水平上显著,并且回归系数是正数。外部控制变量NumTrans的回归系数分别在1%的显著性水平上显著。同时,Wald统计量的值是3109.11,R2值是0.506。
通过实证检验可以看出,本节最初提出的假设命题成立。区块平均服务费率与区块存储容量之间存在显著的正向影响关系。即区块平均服务费率越高,区块存储容量越大;区块平均服务费率越低,区块存储容量越小。
图1 区块存储容量和区块平均服务费率直方图
本文分别从工具变量过度识别和弱工具变量两个角度,对工具变量方法的有效性进行检验,以便确保回归结果的有效性。在过度识别检验过程中,Hansen J Statistic统计量的卡方值是0.030155(p=0.8621),接受过度识别的原假设,即工具变量满足外生性。在弱工具变量检验过程中,Minimum Eigenvalue Statistic=2530.45,大于常规阈值10,说明工具变量与内生解释变量的相关性较高,即通过了弱工具变量的检验。
图2 比特币汇率价格曲线(2018年)
本文通过理论建模和实证检验的方法,研究并分析了区块链的存储供给能力及其影响因素。虽然新区块创建等的运营管理工作是由各个数据节点独立决策的,但均衡状态下业务申请的服务费率对数据节点的区块存储供给能力具有显著的正向作用关系。即业务申请的服务费率越高,数据节点越有动力扩大区块存储容量的供给水平。反之亦然。
在前面的分析过程中,本文始终假设 “有足够多的新业务申请到达区块链系统”这个前提条件可以得到满足,即区块链系统 “始终能够维持适度拥塞的状态”[9]。而且,比特币系统的实际运营状况也完全满足上述前提条件。但是,现实中其他业务应用的用户使用需求很容易受到周期性或临时突发事件的影响。在业务需求相对平淡的时期,数据节点仍然需要参与共识机制并维持新区块的产生。仅仅依靠服务费用收入本身,可能无法覆盖数据节点的运营成本。因此当业务需求不足或者出现需求波动时,区块存储供给模型及其相关结论可能会受到需求环境变化的影响。
此外,还应注意到,区块创建奖励对服务费用奖励具有一定的替代作用。通过式(5)可以看出,区块创建奖励R越高,数据节点提供区块存储的边际成本ρ0就越高。但是,适度的区块创建奖励有助于区块链系统在均衡状态下达成共识,并且有助于维护数据账本的一致性[10,11]。因此,在应用本文的有关结论时,还需要关注区块创建奖励的水平及其对服务费用奖励的影响。
区块存储容量的供给涉及区块链系统的核心资源保障和业务稳定运营。未来,区块链技术将在证券交易、在线支付、银行结算、信息披露、实时会计、凭证存管、数据共享等领域得到越来越广泛地应用。针对区块存储空间供给能力的研究,有助于区块链应用的设计人员更加科学合理地规划业务场景,有助于区块链平台的运营机构提供更加稳定、有效的激励机制,有助于区块链系统的用户享受到更加透明、可控的业务服务。
表3 区块平均服务费率对区块存储容量的影响分析(2SLS)
注释:
①Project Jasper:Are Distributed Wholesale Payment Systems Feasible Yet? 资料来源: http://www.bankofcanada.ca/wp-content/uploads/2017/05/fsr-june-2017-chapman.pdf.
②Project Ubin: Central Bank Digital Money using Distributed Ledger Technology, 资料来源 https://www.mas.gov.sg/schemes-and-initiatives/Project-Ubin.
③即单位存储空间(如每字节)可以收取的服务费用。
④运行新版本的数据节点所发布的区块被运行老版本的数据节点视为无效,并拒绝接受。
⑤分别是因为各方针对 “区块大小调整方案”和 “修改工作证明算法方案”存在严重分歧。
⑥blockchain.info网站对各个主要的数字货币交易所的每日分时数据进行汇总,并按权重计算得出比特币每日的参考汇率价格。