刘 辉
(中国财政科学研究院研究生院,北京 100142)
引 言服务响应模式是指应用系统按照某种既定的设计原则,对不同优先级的业务申请进行有效区分,并向其提供差异化服务处理能力的机制。服务响应模式与系统处理性能、数据存储效率等关键技术指标共同构成了应用系统规划设计的核心要素。对于基于区块链的应用系统而言,服务响应模式的设计具有特殊的重要性。这主要是因为以下两方面原因:
(1)对区块链系统的处理能力进行扩容是一项非常复杂的工程。根据CAP理论,以网络连接为基础的数据共享系统只能在“数据一致性”、“数据更新时的业务可用性”和 “网络分区规模”这3种特性中,有选择地实现其中两种[1]。传统架构下,由于分区数量有限,运营机构可以通过扩展数据库、应用服务器或网络设备的部署规模,快速提升应用系统的处理能力。而区块链是典型的分布式计算系统。在保障数据账本一致性的前提下,虽然 “扩大区块存储容量上限”、“缩短新区块创建间隔”等手段可以在一定程度上提升区块链系统的处理能力,但是随着部署范围的扩大,业务处理能力的扩容方案愈加复杂和困难。对于大规模的联盟链或公有链而言,情况更是如此。
(2)近年来区块链技术被广泛应用于市场基础设施和社会公共服务领域。在服务能力的供给方面,各类业务主体之间建立信任关系、网络互联、信息交换等的成本显着降低,环境变化对服务能力的生产和供给带来了巨大的创新和前所未有的挑战[2]。在服务能力的分配方面,块链存储结构和数据账本全网同步的特性,使得业务流程和处理结果变得更加公开透明、易于监督。基于相对有限的业务处理能力,如何在市场服务或社会公共服务的过程中确保服务能力分配的公平性和有效性,是监管部门和运营机构所关心的重要问题。
区块链系统中的每个节点都是独立参与平台运营的,并不存在统一负责业务调度的权威节点。如何在不同的业务申请之间区分优先等级、如何识别重要客户,是构建差异化服务响应模式的基础,也是开发设计人员和运营机构所关注的重点。
在成本效益的原则下,理性的数据节点如何对不同的业务申请提供服务响应,直接与区块链系统的交易激励机制密切相关。主流的区块链平台通常会向数据节点同时提供 “区块创建奖励”和 “交易费用奖励”两种激励[3]。所有的奖励都是通过加密货币的形式支付给数据节点的。其中,区块创建奖励是为了鼓励数据节点参与系统运行、维护共识机制,而由系统直接给予的奖励;交易费用奖励是业务用户根据情况需要,自愿支付给数据节点的服务对价。在数据账本记账权选举中胜出的节点,有权创建新的区块并将其写入数据账本;另外将同时获取到的区块创建奖励和交易费用奖励。可以看出,交易激励不但是业务用户对数据节点运行成本的额外补偿,而且还发挥着“标识”业务申请优先级的作用。交易激励对服务响应的影响,既体现了区块链系统业务处理能力的分配方式,又体现了均衡状态下数据节点的最优策略选择。
关于区块链系统的激励机制及其作用,国外学者已经做出了大量的研究。在工作量证明(PoW)模式下,适度的区块创建奖励有助于数据节点在均衡状态下达成共识,并且有利于保持区块创建服务的稳定性[4]。区块创建奖励会在加密货币体系内导致通货膨胀,因此当区块链系统步入成熟运营阶段之后,减小区块创建奖励是必然的趋势,交易费用奖励将逐渐成为数据节点的主要收入来源。保持适度的系统拥塞状态是交易激励存在的必要条件[5]。但是,在只提供交易费用奖励的情况下,系统运营可能面临各类安全威胁或合规风险。采用“自利挖矿”(Selfish Mining)①策略或 “弱合规”②(Petty Compliant)策略的数据节点,都将获取到更多收益[7]。可以看出,前人的研究主要侧重于分析激励机制对区块链系统运营稳定性的评估,而激励机制对区块链服务响应模式的影响却很少被考察,相关结论也缺少实证方面的支持。
Easley等 (2019)将排队原理应用于区块链系统的服务响应建模,并且证明了随着交易申请数量的增多,用户将从 “不支付交易服务费用”的均衡状态迁移至 “支付交易服务费用”的均衡状态[8]。本文将在相关研究基础上,构建多业务优先级场景下区块链系统的服务响应模型,并针对交易激励对服务响应的影响展开实证分析。
1 理论分析与假设提出以工作量证明 (PoW)机制为例,区块链系统对交易申请的处理流程大致如下:业务用户发起交易申请并向全网的数据节点进行广播,数据节点将接收到的交易申请缓存在本地存储池 (Pool)中,并自行决定将哪些交易申请放入拟创建的新区块。在被写入新区块之前,交易申请将一直处于等待处理的状态,直到因为超时而被清理。找到工作量证明条件之后,数据节点会将创建成功的新区块广播通知其他节点。其他节点对新区块中的交易申请进行验证,并对工作量证明条件进行检查。通过相关验证和检查后,新数据块就正式成为了数据账本的一部分,并成为下一个拟创建区块的 “父区块”。
1.1 相同优先级下的服务响应假设区块链系统有M个数据节点 (M≥2),每个节点都是理性的和风险中性的;假设每个数据节点的计算能力和网络带宽等环境条件都相同,并且所有节点始终保持在线活跃的状态;假设每条交易申请都占用相同大小的存储空间,所有的数据节点都同时接收到新的交易申请;假设每个新区块可以记录并处理B条交易申请,每个数据节点在单位时间内找到工作量证明条件的瞬时概率记作λ。由于所有数据节点都是独立工作的,因此单位时间内区块链系统可以提供的业务处理能力是λ·M·B。
业务用户发起的交易申请数量是区块链系统的外生因素。业务用户发起新的交易申请后,相关申请会通过广播的方式被同步至每个数据节点。假设有N个业务用户,单位时间内每个用户发起新交易申请的概率记作γ,则单位时间内区块链系统接收到的新交易申请的数量可以表示为γ·N。
当所有的交易申请都属于同一优先级时,为了保证服务响应的公平性,通常情况下数据节点将按照 “先进先出”的原则进行处理,即先进入存储池的交易申请,优先得到服务响应。如果单位时间内新发起的交易申请的数量小于区块链系统的业务处理能力,即γ·N<λ·M·B,则数据节点本地存储池的队列长度总是可以被控制在一个有限的范围内。根据 “Little法则”,存储池的最大队列长度是[8,9]:
新的业务申请到达数据节点后,在被确认和处理之前的平均等待时间为:
如果单位时间内新发起的交易申请的数量大于区块链系统的业务处理能力,即γ·N>λ·M·B,则存储池的队列长度将以γ·N-λ·M·B的速度持续增长下去。最终由于缓存资源耗尽,新产生的交易申请将无法继续进入数据节点的存储池,最终将无法得到数据节点的确认和处理。
1.2 不同优先级下的服务响应假设业务申请可以被划分为c个优先等级。当1≤y<x≤c时,我们认为第y类交易申请比第x类交易申请享有更高的优先处理权利。在多业务优先级场景下,数据节点始终会优先处理业务等级更高的交易申请。业务等级较低的交易申请,不论是存储池中已有的还是新产生的,都不会影响区块链系统对高优先级交易申请的服务响应。
用γi代表单位时间内用户发起第i类交易申请的概率,则新产生的第i类交易申请在得到服务响应之前的排队长度和平均等待时间分别可以表示为:
给定了单位时间内各优先级交易申请的产生概率γi,就可以通过迭代的方法,按照优先级从高到低的顺序依次求出各类交易申请在得到服务响应之前的排队长度和平均等待时间。
当单位时间内新发起的交易申请的数量大于系统的业务处理能力时,虽然从总体需求来看, 但是对于满足条件的、优先等级不低于i(即x=1,2,…,i)的所有交易申请,都会按照原有模式得到服务响应。对于优先等级低于i的交易申请,区块链系统将无法保证对其的服务响应。如果高优先级交易申请的处理需求持续增加,区块链系统将进一步缩小服务响应的业务等级范围 (即i减小);如果高优先级交易申请的处理需求有所减少,区块链系统将逐步扩大服务响应的业务等级范围 (即i增大),从而实现服务响应范围的动态调整与均衡。
1.3 假设的提出在区块链系统的运营过程中,每个数据节点都面临着成本和收入两方面的经济效益权衡。在成本方面,数据节点需要购置专用或通用的硬件设备,而且硬件设备的持续运行会消耗大量的电力能源。一次性设备购置成本和持续运营成本构成了数据节点的主要成本支出。在收入方面,区块创建奖励在相当长的时期内是固定不变的,可供数据节点自行选择的是将哪些交易申请放入新区块并获取相应的交易费用奖励。
虽然每个数据节点都可以自行定义服务响应策略,但是理性的数据节点会优先选取服务费率更高的交易申请进行处理。因此,在交易费用的激励作用下,服务费率自然而然地成为了区分不同业务优先等级的标识。基于上述分析,本文提出如下假设:
H01:交易申请服务费率对交易申请等待服务响应的时长存在影响。
服务费率越高,交易申请在得到服务响应之前等待的时间就越短;服务费率越低,交易申请在得到服务响应之前等待的时间就越长。
2 研究设计与实证结果经历了十多年的演进和发展,比特币系统目前已经成为最成熟的区块链平台之一。本文将借助比特币系统的运营数据,对上述假设进行检验。
2.1 样本选择与数据来源比特币的数据账本中记录着所有已经得到确认的交易申请记录。交易申请的确认时间就是其所在区块的创建时间,具体的时间戳信息被记录在区块的数据头部分。但是数据账本并没有提供相关交易申请到达区块创建节点的时间等字段属性,而交易申请的到达时间可能会随着数据节点的不同而有所变化。Blockchain.info网站提供了部分交易申请的到达时间记录,但时间范围仅限于最近1年左右。由于数据来源的限制,本文拟选取比特币系统2018年全年的交易申请进行后续的分析处理。
比特币系统每隔10分钟左右会生成1个新的区块,每天大约生成144个区块。每个区块可以记录3000笔左右的交易申请。考虑到数据量过大,本文对区块数据和交易申请记录进行随机采样。具体的采样处理原则如下:按照日期顺序每天随机抽取1个区块,然后从该区块中随机抽取10笔交易,最终形成全部的观察值。通常情况下,区块的第1条交易记录是系统给予数据节点的区块创建奖励,在对交易申请记录进行采样的过程中,需要将上述数据进行排除。本文所有数据均来源于Blockchain.info网站。
2.2 变量定义与模型设定本文将被解释变量设置为 “交易申请等待服务响应的时长”。通过计算交易记录所在区块的创建时间与交易申请到达数据节点的时间戳两者之间的差值,可以求出交易申请在得到服务响应之前的等待时间。数量单位是 “秒”。解释变量是 “交易申请的服务费率”,即在交易申请的发起方根据情况需要,自愿支付给数据节点的、按照单位存储空间核算的交易激励水平。数量单位是 “sat/Byte” (百万分之一比特币每字节)。
控制变量主要包括以下两项:交易申请确认当日的比特币汇率价格和前30日比特币平均汇率价格。以上两个控制变量的数量单位都是 “美元/比特币”。本文选取Blockchain.info网站发布的数据作为比特币汇率价格的来源③。
不同的数据节点可能采取不同的服务响应模式,而我们无法对每个数据节点的策略选择过程进行记录和观察;另外,区块链系统并没有针对存储池提供丰富的监控选项,因此可以利用的运营分析指标非常有限。为了避免 “遗漏变量偏差”可能导致的内生性问题,本文选用工具变量 (IV)方法评估内生解释变量 (交易申请的服务费率)对被解释变量 (交易申请等待服务响应的时长)的影响。
选取与区块统计信息相关的两项指标作为工具变量。一项是交易申请所在区块的 “成交总笔数”,数量单位是 “笔”;另一项是交易申请所在区块的 “成交总规模”,数量单位是 “BTC” (比特币)。
交易费用奖励是业务用户根据情况需要,自愿提供给数据节点的服务对价。当交易申请的处理需求与系统处理能力之间处于相对稳定的状态时,交易费用奖励的实际价值及其效用由服务费率和比特币汇率共同决定;另外,数据节点会依据存储池的运行环境动态调整服务响应模式,而成交总笔数、成交总规模等区块统计信息可以有效反映出数据节点做出决策选择时的历史环境。可以看出,本文选取的工具变量与内生解释变量高度相关,但与被解释变量的误差项之间基本保持不相关。初步判断上述工具变量的选择符合要求。
经过汇总,所有的变量定义如表1所示。
表1 主要变量定义
为了检验服务费率对交易申请等待服务响应的时长的影响,本文构建了以下两阶段最小平方回归 (2SLS)分析模型。
在一阶段回归过程中,交易申请的服务费率satB是内生解释变量,工具变量是交易申请所在区块的成交总规模EstVol和成交总笔数NumTrans;在二阶段回归过程中,被解释变量是交易申请等待服务响应的时长waittime,内生解释变量是交易申请的服务费率satB,外部控制变量是比特币当日汇率价格exchange和前30日比特币平均汇率价格exchange30。一阶段回归过程中工具变量的有效性,以及二阶段回归过程中内生解释变量的响应系数的显着性及其正负方向是本文所关心的问题。
2.3 描述性统计根据变量界定,通过对样本数据进行统计分析,相应变量的基本特征如表2所示。
表2 变量基本特征
通过表2可以看出,交易申请等待服务响应的时长和交易申请的服务费率的样本量都是3650个。其中,服务费率的最小值是0,说明一些交易申请虽然没有向数据节点提供服务费用④,但是仍然得到了服务响应。上述两个变量的直方图如图1所示。可以看出,交易申请的等待时长和服务费率的分布都比较集中。
外部控制变量包括比特币当日汇率价格和前30日平均汇率价格,样本数量为365个。在采样区间内,相关变量的变化趋势如图2所示。可以看出,2018年初和年末比特币的汇率经历了非常剧烈的波动,变化幅度高达30%左右。在2018年3月至11月期间,比特币的汇率价格相对平稳。另外,均值处理的结果使得前30日平均汇率价格的趋势曲线更加平滑。
工具变量的样本数量为365个。区块内的成交总笔数和成交总规模的直方图分别如图3所示。可以看出,成交总规模的分布相对集中,成交总笔数均匀分布于2500笔及以下区域,这说明比特币系统处于相对繁忙的状态。
图1 交易申请等待时长与服务费率的直方图
2.4 实证结果根据前文的变量定义和模型构造,采用两阶段最小平方回归(2SLS)的方法对业务申请等待时间的影响因素进行检验。表3详细展示了估计结果。
图2 比特币汇率价格变化 (2018年)
图3 区块内成交总笔数和成交总规模的直方图
在第一阶段的回归过程中,工具变量EstVol和NumTrans的回归系数都在1%的显着性水平上显着。同时,F统计量的值是95.54,Adj R2的值是0.2624。
在第二阶段的回归过程中,内生解释变量satB的回归系数为负,并且在1%的显着性水平上显着,控制变量exchange和exchange30的回归系数分别在5%和1%的显着性水平上显着。同时,Wald统计量的值是102.60,R2的值是0.0426。
实证检验的结果表明,本文提出的原假设成立。交易申请的服务费率与交易申请等待服务响应的时长呈现显着的反向作用关系。服务费率越高,交易申请等待服务响应的时间就越短;服务费率越低,交易申请等待服务响应的时间就越长。
2.5 工具变量检验为了确保回归结果的有效性,本文分别从工具变量过度识别和弱工具变量两个角度,对工具变量方法的有效性进行检验。在过度识别检验过程中,Hansen J Statistic统计量的卡方值是0.012058(p=0.9126),过度识别的原假设可以被接受,工具变量满足外生性条件。在弱工具变量检验过程中,Minimum Eigenvalue Statistic=36.4698, 大于常规阈值10。这说明工具变量与内生解释变量的相关性较高,弱工具变量检验的结果为通过。
3 结论与展望本文对区块链系统的服务响应模式进行了建模分析和实证检验。研究发现,虽然每个数据节点都是独立决策的个体,但是由于激励机制的作用,交易申请的服务费率在全局意义上发挥了 “标识”业务优先级的作用,并对交易申请等待服务响应的时长具有显着影响。交易申请的服务费率越高,业务优先级就越高,等待服务响应的时间就越短;交易申请的服务费率越低,业务优先级就越低,等待服务响应的时间就更长。
样本数据的局限性可能会对“交易申请等待服务响应的时长”的估计量造成影响。这主要是因为在创建新区块的过程中,数据账本并没有保存交易申请到达区块创建节点的时间戳,因此只能使用第三方节点的观察数据进行替代。考虑数据采样的随机性以及样本数量较多,上述替代不会对估计量带来明显的向上或向下的偏差。
表3 服务响应等待时间的影响因素分析 (2SLS)
目前,区块链技术已经被尝试应用于重构证券市场的基础设施。证券交易、登记结算、场外证券业务报告、证券市场监管等方案已经被广泛论证,有些甚至已经完成了场景改造和业务试点[10,11]。在社会公共服务方面,权益登记、投票选举、数字版权、分布式域名系统、安全时间戳服务器等业务领域已经成为区块链技术的应用热点[12,13]。但是,主流区块链系统在服务响应模式方面的设计普遍存在不足[14]。由于系统设计和策略管理的原因,甚至无法在全局范围内严格按照 “时间优先”的顺序处理交易申请。不合理的服务响应模式会造成重要业务申请的长时间等待,并给运营机构和业务用户带来负面影响,严重情况下甚至会导致业务和用户流失。
在确保流程公开透明和数据安全共享的基础上,市场服务和社会公共服务的监管部门和运营机构对业务处理能力的分配原则及其公平性有着更高的期望和更加严格的要求。对服务响应模式的关注和研究,有助于区块链技术在市场服务和其他社会公共服务领域的推广及应用。本文的研究结论为相关应用系统的设计开发和运营管理提供了重要参考。
注释:
①采用 “自利挖矿”策略的数据节点在找到工作量证明条件后不会立刻发布新区块,而是通过选择合适的时机再发布,以便获取更多收益。这会对其他节点的计算资源造成浪费并影响数据账本的一致性[6]。
②当数据账本出现分叉时,采用 “弱合规”策略的数据节点总是选择延续能使其收益最大化的分支,而默认的合规策略是 “按照区块的到达时间顺序,优先延续较早形成的分支”。采用“弱合规”策略的数据节点常常会被其他恶意节点利用,并对恶意攻击等行为造成偏离放大的效应。
③Blockchain.info网站对几个主要的数字货币交易所的分时汇率数据进行收集汇总。按照一定的权重配置,计算得出比特币汇率的参考价格。
④在本文选取的样本数据中,没有提供交易服务费用的交易申请只有1笔。