APP下载

中央银行数字货币研究:原型系统与技术解决方案*

2021-05-20柏语蔓

信息安全与通信保密 2021年5期
关键词:中央银行吞吐量共识

吴 狄,刘 亚,柏语蔓

(上海理工大学 光电信息与计算机工程学院,上海 200093)

0 引 言

自2009 年中本聪提出比特币[1]以来,互联网出现了大量基于区块链技术的电子现金系统——加密货币(Cryptocurrency),其使用区块链作为一种分布式账本技术(Distributed Ledger Technology,DLT),具有的去中心化、去信任化、公开透明、不可篡改及匿名等特性,受到全球各界人士的关注。

随着加密货币市场的扩大,基于加密货币的互联网现金支付业务需求急剧增多,但比特币等加密货币价值波动幅度大、货币政策固定、性能效率低下等问题无法满足交易需求,一些由私人部门发行的稳定币(Stablecoin)的加密货币出现,如Tether 与GUSD 等。稳定币指的是由私人部门发行的与法定货币挂钩的加密货币。它的发行方声称稳定币发行量与抵押的法定货币相等,从而令价格与抵押的法定货币(美元、人民币等)挂钩,达到“稳定”效果。利用稳定币,可实现类似使用法定货币的网络支付功能。但稳定币的价值与信用由私人部门担保,信任度较低且存在一定的安全风险,因此受到了不少质疑。

受此影响,各国中央银行及货币发行机构为了保护货币主权,同时基于推进货币政策、推广数字金融、保障金融稳定性、改善金融包容性、提升国内支付效率、提高跨境支付能力等因素[2],对发行以国家信用作为担保的数字化支付工具——中央银行数字货币(Central Banked Digital Currency,CBDC)展开了研究。根据国际清算银行的调查[3],超过80%的国家正在研发中央银行数字货币方案,其中绝大部分使用了区块链技术,并且部分国家已正式启用CBDC并投放到当地市场。

根据英格兰银行[4]、国际基金货币组织[5]及国际清算银行[6]的研究,各国货币当局发行CBDC 的主要动机可归纳为:

(1)保障国家货币主权;

(2)推进金融数字化;

(3)提高货币政策有效性;

(4)增强支付系统;

(5)改善普惠金融。

可见CBDC 有较大的社会意义,因而有较为宽广的研究前景。其中,我国对法定数字货币的研究起步较早。2014 年,中国人民银行成立了法定数字货币研究小组,并在2017 年设立了数字货币研究所,2018 年,时任中国人民银行行长的周小川在发布会上指出,我国法定数字货币研究项目名为DC/EP(Digital Currency/Electronic Payment),产品名为数字人民币(e-CNY)。DC/EP 由中国人民银行发行,遵循“一币二库三中心”架构,具有双层运营、M0 替代、可控匿名等特点。目前,DC/EP 已在深圳、雄安、苏州以及成都等地开展实况试点测试。

为方便研究,国际清算银行对CBDC 进行分类[7],根据CBDC 的使用对象,即此系统可由公众使用或只可由特定部门、组织、机构及企业使用,将其分为零售型CBDC(Retail CBDC,R-CBDC)及批发型CBDC(Wholesale CBDC,W-CBDC),其中零售型CBDC 的使用者极其广泛,所以又称为通用型CBDC(General-purpose CBDC,GP-CBDC)。各国政府与学界根据政治、经济及社会需求与实际结合情况,确定其可使用性并展开如下研究。

在国内研究工作方面,范一飞[8]讨论了在中国发行法定数字货币的法理依据以及架构。姚前提出了央行数字货币系统性框架[9],探讨了RSCoin 这一CBDC 原型系统的优劣[10],并对中国法定数字货币进行了构想并提出中国国家数字货币DC/EP 的设计要求[11]。邹传伟[12]对零售型CBDC 及批发型CBDC 的选择与设计进行了深入分析。狄刚[13]分析了数字金融技术体系中区块链技术的现状与挑战,并对其进行展望。

在国外研究工作方面,CBDC 这一概念于2016 年由Broadbent 提出[14]。Danezis 等人[15]提出了第一个CBDC 原型系统RSCoin,随即各界展开了CBDC 的研究,其结构、模式及设计思想对各国的CBDC 研发有一定启发。Wüst 等人[16]针对CBDC 的隐私保护问题提出了PRCash的CBDC 原型系统。Adrian 等人[17]从全球金融系统角度对稳定币、CBDC 与跨境网络支付进行了研究及对比,并表达了对CBDC 发展的乐观态度。Boar 等人[3]则发起了一项针对全球主流国家的货币当局与CBDC 相关情况的系列研究,对各货币当局进行了问卷调查,总结了这些国家CBDC 的发展现状。在零售型CBDC 这一领域,Kiff 等人[18]对当前的零售型CBDC 进行了包含技术、金融、政策以及相关法律的调查。Auer 等人[19]则针对技术层面,分析了主流国家的零售型CBDC 采用的相关技术以及面临的问题。而在批发型CBDC 这一领域,国际清算银行支付与市场基础设施委员会[20]对全球批发型CBDC 的发展现状进行了总结,其中给出了批发型CBDC 所需技术特点。

当前,学界对CBDC 的综述大多基于政策、经济与法律的角度进行论述,而对于CBDC 原型系统与解决方案所采用的技术的具体研究仍需填补。

1 中央银行数字货币

1.1 概述

中央银行数字货币这一概念由英格兰银行于2016 年提出[14],随后国际清算银行对CBDC的概念进行了进一步的明确。

根据国际清算银行提出的定义[6],中央银行数字货币具有三个特性:

(1)数字化;

(2)由货币当局发行并担保其价值;

(3)支持用户间点到点交易;

CBDC 所需的技术应具有以下特点:

(1)中心化。CBDC 仅能由中央银行或其授权的商业银行及金融机构发行,不可由非授权的个人或组织发行。

(2)高吞吐量。CBDC 需要有足够的吞吐量以满足社会交易需求。

(3)一定的隐私保护性。CBDC 要具有一定的隐私保护特性,保障使用者的隐私(如交易对象、交易金额等)不被窃取。

(4)可监管。CBDC 要可监管,符合现行法律法规,保障金融安全,防止洗钱等金融犯罪。

(5)点对点交易。CBDC 需支持点对点支付,满足使用者交易需求。

1.2 分类

国际货币组织根据使用对象、结构特点和采用的技术对CBDC 进行分类,具体如下:CBDC 可以根据使用对象不同分为批发型与零售型;根据交易范围不同分为国内型和全球型;根据结构特点分为直接型、间接型和混合型;根据采用的技术模型分为基于账户模型和基于交易模型。本小节将简单介绍每一类型CBDC 的特点。

1.2.1 批发型CBDC 与零售型CBDC

批发型CBDC 一般对使用者资质有较为严格的要求,主要面向货币当局、银行及其他金融机构,不向普通民众提供服务。此类型CBDC通常用于证券交割、财政结算及企业转账等,交易金额往往十分巨大,交易频率相对较低。目前批发型CBDC 项目包括加拿大的Jasper 等。

零售型CBDC 可提供给政府、企业及普通民众使用,中国的DC/EP 即为此类型的CBDC。零售型CBDC 单笔交易金额相对较低,交易频率较高,可作为新型普遍支付手段,用于补充或替代传统现金支付。

1.2.2 国内型CBDC 与全球型CBDC

国内型CBDC 原则上只允许境内人员持有,并且只允许在发行国境内交易。例如,中国的DC/EP、乌拉圭的Billete Digital 与柬埔寨的Bakong 等。

全球型CBDC 允许全球人员持有,支持跨境交易。例如,新加坡的Ubin、泰国的Inthanon 等。

1.2.3 直接型CBDC、间接型CBDC 与混合型CBDC

直接型结构由中央银行与用户组成,属于单级结构。用户资金存储在中央银行,资金由中央银行确保,交易由中央银行处理。

间接型结构由中央银行、中介机构(一般为商业银行)及用户组成,属于二级结构。中介机构向用户提供支付服务,用户与中介机构通信,资金存储在中介机构,交易由中介机构处理。中央银行负责记录中介机构总账,不保障用户资金,不掌握用户交易记录。

混合型结构与间接型结构类似,也由中央银行、中介机构以及用户组成。不同于间接机构的是用户与中介机构通信,资金存储在中央银行,交易由中介机构处理。中央银行负责保障用户资金,并且持有用户交易记录副本。

1.2.4 基于账户模型的CBDC 与基于交易模型的CBDC

基于账户模型的CBDC。账户模型(Accountbased)与银行账户模式类似,每个地址被视为一个账户,存在保存地址对应数据(如金额等)的全局状态。每个交易仅依赖现有状态,不依赖其他交易。目前,冰岛的Rafkróna 与巴哈马的Sand Dollar 等皆采用此模型。

基于交易模型的CBDC。交易模型(Transactionbased)又称为代币模型(Token-based),由中本聪于比特币中提出,与现金模式较为相近。在此模型中,每个地址被视为一个交易,不存在如账户、钱包及余额等概念,取而代之的是存在未使用的交易输出(Unspent Transaction Output,UTxO)列表。每个UTxO 与现金一样,包含金额与使用条件。不同的是,现金可以重复使用,UTxO 在使用一次后即被移出UTxO 列表,无法再次使用。目前,新加坡的Ubin 与巴西的Digital Fiat Currency 等采用此模型。

2 CBDC 原型系统

为了解决比特币等加密货币的低吞吐量、去中心化和无法动态调整货币政策等缺陷以满足CBDC 需求,2016 年英国央行英格兰银行与英国伦敦大学学院合作提出了第一个CBDC 原型系统——RSCoin[15]。作为由货币当局提出的第一个CBDC技术原型,RSCoin具有一定的典范性,引起各界的广泛关注。针对其存在的问题与可改进的方向,学术界提出了各种改进的CBDC 技术原型,如UFCBCoin[21]、AFCoin[22]、PRCash[16]等,为各国CBDC 研究与开发带来启发。

2.1 RSCoin

2016 年,Danezis 等人在英格兰银行的建议下提出了第一个CBDC 原型系统RSCoin,具有高吞吐量、低算力消耗与支持动态货币政策等特点,能较好地满足货币当局对数字法定货币的设计需求。

(1)结构特点

RSCoin 采用类似比特币的基于交易模型(又称为基于UTxO 模型)。它使用双链结构,分为由高级区块(Higher-level Block)组成的高层链和由低层区块(Lower-level Block)组成的低层链。高层链由中央银行管理,负责货币供应、货币政策调整与交易对账;低层链作为交易总账,通过多个由中央银行授权的各个商业银行所负责的被称为“薄荷糖(Mintette)”的节点群组记录进行具体交易,每个薄荷糖群组(Mintettes)只负责部分数据。

用户在提交交易时,无论在验证阶段或提交阶段,均需要用户去与该阶段对应的含2f个节点的薄荷糖群组中至少f+1 个节点进行通信,通信次数较多,造成通信成本高的问题。

(2)共识机制

RSCoin 使用两阶段提交(Two-Phase Commit,2PC)共识作为低层链中分布式记账共识机制。2PC 共识分为验证阶段和提交阶段。在验证阶段,用户需获取所使用的资金对应UTxO 所在Mintettes 中过半数Mintette 的签名认证;在提交阶段,用户将交易及上一阶段中取得的资金证明提交至转账地址所属的Mintettes,若此Mintettes中过半数节点验证通过并签名,则完成共识并写入低层区块。

(3)交易流程

由于RSCoin 使用两层结构,属于间接型模型,因此用户在交易中不直接与中央银行通信,而是与所属的商业银行构建交易。

假设Alice 需要给Bob 转账,转账金额为v,则交易流程如下:

①Alice 构建转账申请, 选取使用的UTxO,通过寻址服务查询该UTxO 对应的薄荷糖群组m与Bob 对应的薄荷糖群组n。

②进入验证阶段。Alice 构建一个交易Tx,包含对该UTxO 的资金证明并附上用户自身签名Sign(Alice),将其发送至群组m中所有mi。

③mi在收到Alice 的资金证明后,对其进行独立核验。首先,检查资金是否属于群组m管理,即此UTxO 是否在群组m的未使用交易输出列表utxo中。其次检查金额,最后检查Alice用户签名。若核验无误,将UTxO 从utxo中移除,添加至用于防止“双花”攻击的已验证的交易输出列表pset中,最后在资金证明后附上mi自身签名Sign(mi)发还给用户。

④群组m中有2f个薄荷糖节点,若Alice取得其中f+1个薄荷糖节点的签名,则完成验证阶段。

⑤进入提交阶段。Alice 将资金证明及上一阶段收集到的f+1个Sign(mi)组成的Tx',分别发送至群组n中所有薄荷糖节点nj。

⑥nj在收到Alice 的交易与资金证明后,对其进行独立核验。首先检查Bob 是否属于群组c管理。其次检验Sign(nj)是否合法,如果合法,将此交易输出加入已验证交易列表txset中,将资金证明加上nj自身签名Sign(nj)发回用户。

⑦若群组n中过半数节点都完成验证,则群组n将此次交易写入低层区块,交易结束。

(4)优缺点

在优点方面,首先RSCoin 吞吐量较高,据文献[15]给出的测试数据可达2000TPS;其次它具有部分中心化的特点,中央银行通过控制高层链管理货币发行;最后,它可以实现动态货币政策,中央银行可通过高层链发行、销毁货币及进行其他货币政策调整。

不足的是,RSCoin 论文[15]中未提及高层链的设计与对账、货币政策调整等功能的实现,也未说明同一Mintettes 内各Mintette 的数据同步机制。此外,现有RSCoin 系统存在着用户通信成本高、未保护交易隐私数据等可改进空间。

总之,RSCoin 作为第一个CBDC 原型系统,具有一定的开创性及启发性,有较好的借鉴价值,其设计思想及理念对其后各国CBDC 研究及设计产生了一定影响。

2.2 UFCBCoin

为解决RSCoin 中交易通信次数较多,造成用户通信成本高的问题,Han 等人提出了基于RSCoin 进行改进的CBDC 原型系统UFCBCoin。

UFCBCoin 基于RSCoin 改进而来,其结构与共识机制方面与RSCoin 大致相同。而在交易流程中,UFCBCoin 引入了“代表机制”,对通信流程与机制进行了修改,以减少用户通信量。用户在两阶段提交共识机制的验证阶段与提交阶段均可随机选取对应薄荷糖群组中的一个节点为代表,由此节点代表用户与群组内其他节点进行通信,如获取其他节点对资金证明的签名等。最后将此阶段的验证结果一次性返回给用户。通过代表机制,将部分用户与薄荷糖节点的通信转移为薄荷糖节点之间的通信。在恶意节点数量较多的情况下,UFCBCoin 与RSCoin 总体通信量较为接近。在一般情况下,UFCBCoin 中群组与用户的通信量大幅度低于RSCoin 中群组与用户的通信量,减少了用户通信成本。

2.3 PRCash

RSCoin、UFCBCoin 等CBDC 原型系统侧重探讨中央银行数字货币的模型、结构、共识机制、通信机制及吞吐量,不涉及对交易隐私的保护,存在隐私泄露问题。而且有些国家监管机构对交易金额有一定限制,如美国要求公民若在一个周期内接受现金超过10000 美元则需向美国国家税务局申报,并且CBDC 一般认为与现金等价,应被纳入同等管理范畴。但已有的原型系统未实现监管机制,未能完全满足当局对CBDC的需求。

针对这些问题,Wüst 等人提出了旨在解决隐私保护与监管控制问题的CBDC 原型系统PRCash。此系统提出了一个利用零知识证明进行基于承诺的交易监管机制,通过使用类似Mimble-wimble 协议[23]的方式隐藏交易隐私(交易对象、交易金额)并使匿名交易具有不可链接性,以及采用可验证的伪随机标识符及范围证明实现限制一个时间周期内单个用户匿名交易金额。

(1)结构特点

假定PRCash 部署于标准的许可区块链中,区块由货币当局、监管机构与相关金融机构共同维护。在系统中,定义了四类角色:

①发行者:由货币当局担任,负责发行货币。

②监管者:由监管机构担任,负责监管用户交易,如控制一个时间周期内匿名交易金额上限等。

③验证者:由中央银行授权的商业银行或金融机构担任,负责验证用户交易。

④用户:由持有货币的消费者、企业或政府机构担任,作为交易的发起方和接收方。

(2)共识机制

在共识机制方面,验证者负责记录交易总账。验证者采用实用拜占庭容错(Practical Byzantine Fault Tolerant,PBFT)共识机制以保证账本同步。

(3)交易流程

在交易流程方面,用户可选择发起两种类型的交易:匿名及非匿名。在匿名交易中,用户需提供证明,证明其在一个时间周期内接收的匿名交易货币少于法定限额,若用户可提供此证明,则可实现匿名交易;若用户超过法定交易额度,无法与监管者通信获得此证明,则无法发起匿名交易。而在非匿名交易中,PRCash 提供了混币服务,保障其隐私安全。在吞吐量方面,由于采用了零知识证明与同态加密等复杂算法,在有16 个验证者的模拟环境下吞吐量约为480TPS,大幅度低于RSCoin 及UFCBCoin。

(4)优缺点

优点方面,PRCash 实现了一定程度的隐私保护与监管机制,满足货币当局对CBDC 的需求。缺点方面,目前PRCash 采用的零知识证明技术计算成本相对较高,导致吞吐量相对较低,仍需改善。

总体来看,PRCash 是一个与其他CBDC 原型系统“正交”,着重于隐私保护及监管控制的原型系统,有较高的研究价值。

2.4 AFCoin

AFCoin 是由Tian 等人提出的意在实现一个基于账户模型的类RSCoin 的CBDC 原型系统。

(1)结构特点

AFCoin 由数个智能合约构建,可以在以太坊及如Quorum、Hyperledger Iroha 和Clique 等兼容以太坊结构以及以太坊虚拟机分布式账本技术解决方案上部署。AFCoin 包含三种角色:

①中央银行:负责货币发行,向商业银行提供货币。

②商业银行:负责管理用户在商业银行账户中的数字货币。

③用户:作为交易发起方及接收方。

(2)共识机制

在共识机制及吞吐量方面,由于AFCoin 可在兼容以太坊虚拟机的不同平台上运作,而各平台的架构(公链、许可链或私有链)与共识机制(PoW、PoS、PoA 或PBFT 等)的不同导致可缩放性差异极大,因此,吞吐量则由使用的技术解决方案决定。

(3)交易流程

在交易流程方面,根据交易双方地址归属状况分为两种交易:同行交易与跨行交易。

在Alice 地址与Bob 地址同属CMB1 的同行交易情况里,Alice 向Bob 转账,CMB1 直接将Alice 账户余额减去相应金额,将其加到Bob 账户中,完成交易。

而在Alice 地址与Bob 地址分属CMB1 与CMB2 的跨行交易情况里,Alice 向Bob 转账,Alice 首先需要向CMB1 申请交易,CMB1 在校验交易后,减去Alice 账户相应金额,向CMB2转账。CMB2 在收到交易并确认后,增加Bob 的余额,完成交易。

(4)优缺点

AFCoin 的主要优点是适用于当前主流的“中央银行—商业银行”二元模型的混合型CBDC架构,其本质为基于Solidity 的智能合约,可快速部署于各类成熟的分布式账本平台。缺点则是基于账户模型较难保护交易隐私,而且未对吞吐量进行实际测试。

总体来说,AFCoin 作为第一个基于账户模型的CBDC 原型系统,因基于以太坊导致其适用性比较强,有一定参考意义。

3 技术解决方案

RSCoin、UFCBCoin、PRCash 及AFCoin 这些原型系统,为各国研究CBDC 带来了参考与思路,并为CBDC 开发提供了结构、交易流程及安全等各方面的经验与启示。在实际CBDC 开发过程中,考虑到安全性、可维护性及技术成熟度等工程因素,各国通常选择现有企业级分布式账本技术平台作为实现CBDC 的技术解决方案。如新加坡金融管理局的Project Ubin,由数字化新加坡元、国内银行实时结算系统(Real Time Gross System,RTGS)、基于分布式账本技术的券款对付(Delivery versus Payment,DvP)、跨境结算支付系统、跨境支付和跨境券款对付系统六个阶段组成。Project Ubin 自2014 年开始第一阶段,目前完成第五阶段,使用了Quorum 与Hyperledger Fabric 作为其技术解决方案。加拿大银行的Project Jasper 是基于Corda 开发的批发型CBDC 项目,用于国内银行间支付结算。此外,加拿大银行与新加坡金融管理局进行合作,提出了一个跨境支付系统项目Project Jasper-Ubin。柬埔寨国家银行的Project Bakong 是柬埔寨政府提出的区块链支付系统,作为一个零售型CBDC项目,意在取代部分现金交易并且减少美元在柬埔寨国内的流通,此项目应用Hyperledger Iroha作为技术解决方案。下面对表1 中的技术解决方案按其采用的模型进行分类,分别对其结构特点、共识机制、吞吐量、智能合约支持及隐私保护状况进行分析,并对比各个技术解决方案的优缺点。

表1 CBDC 技术解决方案

3.1 Quorum

Quorum 是由摩根大通于2016 年提出的基于以太坊Geth 分支的开源企业级分布式账本技术平台[24]。

(1)结构特点

Quorum 采用基于账户模型,由Quorum节点与隐私管理器(Private Manager)组成。Quorum节点除了拥有以太坊节点大部分功能外,还实现了权限控制、可插拔的共识机制、私有状态存储等功能。隐私管理器由交易管理器(Transaction Manager)与被称为“飞地(Enclave)”的加密解密模块件组成,负责实现私有交易、部署私有合同等功能。Quorum 节点只与预设的Quorum 节点列表中其他节点通过P2P 协议进行连接,并通过HTTPS 协议连接隐私管理器。

(2)共识机制

Quorum 支持Raft 共识、IBFT(Istanbul BFT)共识及PoA(Proof-of-Authority,权威证明)共识作为共识机制。使用者在部署Quorum 时,根据实际需求选择其中一个作为共识机制。

(3)吞吐量

根据Arati Baliga 等人[25]针对Quorum 测试报告中的数据显示,Quorum 吞吐量都可达到约1400TPS。

(4)智能合约支持

因其基于以太坊Geth,因此Quorum 完全兼容基于Solidity 及LLL 等语言所开发的适用于EVM 的智能合约。

(5)隐私保护

Quorum 中的交易可分为公开交易与私有交易。公开交易通过全节点广播,与以太坊交易无太大分别。私有交易可选择参与的Quorum 节点,并且通过与隐私管理器通信将交易保存至链下,链上只保存加密后的Hash,实现对交易隐私的保护。并且,Quorum 中使用了ZCash 团队提出的zk-SNARKS 实现了零知识证明安全层(Zero-knowledge Security Layer,ZSL),在防止“双花”的前提下,对私有交易的交易对象、金额等敏感信息进行保护。

目前,新加坡金融管理局的Ubin、南非储备银行的Khokha 等项目采用Quorum 作为技术解决方案。

3.2 Hyperledger Iroha

Hyperledger Iroha[26]是Linux 基金会管理的开源企业级分布式账本技术平台,由Soramitsu公司于2016 年贡献给Hyperledger 项目。

(1)结构特点

Hyperledger Iroha 采用了基于账户模型,无原生数字货币,网络由多个对等节点组成。

(2)共识机制

Hyperledger Iroha 采用的是YAC(Yet Another Consensus)的共识机制。YAC 基于PBFT 进行改进,对系统中总量为3f个对等节点进行排序,采用前2f+1 个节点参与共识,若出现故障再采用剩余节点,在保障安全性与容错性的前提下提升了可缩放性。

(3)吞吐量

Hyperledger Iroha 主要贡献者Soramitsu 公司声称其吞吐量约为2000TPS[27]。

(4)智能合约支持

Hyperledger Iroha 使 用Burrow EVM 作 为 其虚拟机,保持了对Solidity 语言所编写的智能合约的兼容。

(5)隐私保护

Hyperledger Iroha 提供了基于角色的权限控制系统,使得使用者可以非常方便地进行细粒度权限管理。而且Hyperledger Iroha 支持多重签名交易与合约,便于设计业务的安全模型。

目前,柬埔寨国家银行采用其作为本国零售型CBDC 项目Bakong 的技术解决方案。

3.3 Hyperledger Fabric

Hyperledger Fabric[28]由Linux 联 盟 于2015年提出,是全世界使用最为广泛的企业级区块链平台之一。

(1)结构特点

Hyperledger Fabric 采用了基于账户模型,不存在原生加密货币。系统由一条或多条通道与分组服务节点组成。通道由统称为Peer 的对等节点组成,通道内数据构成一条区块链,每个节点可以从属于多个不同通道,仅能查看所属通道内的数据。对等节点可根据其功能分为确认节点(Committing Peer)、背书节点(Endorsing Peer)、领导节点(Leader Peer)与锚节点(Anchor Peer)等角色。所有节点都属于确认节点这一角色,负责接收新块、验证块中交易以及将其加入账本;而背书节点则是针对智能合约而产生的角色,每个拥有智能合约的节点都可成为此智能合约的背书节点;领导节点可由配置中静态指定或动态选举产生,负责从排序服务中获取交易数据并分发至其他节点;锚节点由通道配置中指定,负责跨通道通信。排序服务由排序服务节点组成,负责对有效交易进行全局排序,其后生成新块。

(2)共识机制

Hyperledger Fabric 支持使用单节点认证的Solo 协议、源于分布式共识的Kafka 协议或基于PBFT 的BFT-SMaRT 协议三种。使用者可根据实际状况,在配置中指定系统使用的共识机制。

(3)吞吐量

Hyperledger Fabric在实验状况下高达3500TPS[28]。此外,有学者提出FastFabric[29],声称可通过分离元数据、转移背书节点与记账节点至单独硬件等措施,将吞吐量提至20000TPS。另外,隋源等人还提出了将Hyperledger Fabric 与链下数据库进行结合的方案[30],在吞吐量方面表现较好。

(4)智能合约支持

Hyperledger Fabric 可使用Go、Java 与JavaScript三种语言编写被称为链码(Chaincode)的智能合约,并且根据Foschini 等人的测试报告显示[31],使用Go 语言开发的链码性能最好。

(5)隐私保护

Hyperledger Fabric 所采用的通道技术可将数据分割为多条链,通过创建通道实现一定程度的数据隔离。并且,Hyperledger Fabric 还提供了私有数据集(Private Data Collection)方案,通过将私有交易与状态写入私有数据库,仅在链与存储全局状态的数据库中存储私有数据的哈希值,实现在不需要建立通道的情况下保障交易隐私。

目前,新加坡金融管理局的Ubin、沙特阿拉伯货币局的Aber 与东加勒比中央银行发行的DXCD 等项目采用Hyperledger Fabric 作为技术解决方案。

3.4 Stellar

Stellar[32]是由Ripple 联合创始人Jed McCable等人于2014 年提出的开源区块链系统。

(1)结构特点

Stellar 采用账户模型,原生数字货币名为XLM。Stellar网络由多个被称为“恒星核心(Stellar Core)”的对等节点与连接恒星核心并向外界提供REST API 服务的网关“地平线(Horizon)”组成。

(2)共识机制

Stellar 采用恒星共识机制(Stellar Consensus Protocol,SCP),是联邦拜占庭协议(Federated Byzantine Agreement,FBA)的一个参考实现。

(3)吞吐量

根据Stellar 创始人Jed McCable 在采访中提供的数据显示[33],Stellar 在模拟环境下吞吐量最高可达4000TPS。

(4)智能合约支持

Stellar 只支持被称为恒星智能合约(Stellar Smart Contract,SSC)的非图灵完备智能合约。SSC 拥有支持多签名、阈值以及时间三种特性,通过在提交交易时设定约束条件从而生成智能合约。此外,Oleg Andreev 等人提出一个名为Slingshot[34]的项目,将零知识虚拟机ZkVM[35]接入Stellar 中,将交易中的公钥视为谓词,使Stellar 支持ZkVM 智能合约以使用零知识证明。

(5)隐私保护

Stellar 原生不支持私有交易。为弥补这一缺陷,有开发者提出了Starlight[36]方案,构建支付通道,从而实现私有交易。并且,前文中提到的Slingshot 项目不仅可以通过零知识证明对交易的对象与金额进行保护,还可以引入CoinJoin的变体方案对交易进行混币处理,从而提升交易的隐私安全性。

目前,乌克兰国家银行采用Stellar 的私有版本作为本国CBDC 项目E-Hryvnia 的技术解决方案。

3.5 Corda

Corda 是R3 联盟于2016 年提出的部分开源企业级分布式账本技术平台[37]。

(1)结构特点

Corda 基于交易模型,分为Corda 节点及公证池(Notary Pool)两大组件。Corda 节点负责存储交易信息,公证池负责共识机制以决定账本记录内容,由多个公证人(Notary)节点组成。

(2)共识机制

Corda 使用两类机制:使用基于Raft 的Copycat 协议或基于PBFT 的BFT-SMaRT 协议的有效性共识以保证交易的有效性;由公证人服务对交易进行检查避免“双花攻击”的唯一性共识。在Corda 中,必须同时通过这两类共识机制才可提交交易。

(3)吞吐量

根据Corda 官方提供的信息,Corda 可在模拟环境下达到1674TPS[38]。

(4)智能合约支持

Corda 智能合约使用Java 虚拟机(Java Virtual Machine,JVM),支持使用Java 与Kotlin语言编写。并且智能合约还支持法律散文(Legal Prose),即引入相关的法律条文作为依据,便于有关部门对交易与合约进行监管。

(5)隐私保护

Corda 使用Tear-off 技术。将交易的输入、输出、命令与附件构造为一棵默克尔树(Merkle Tree),预言机服务能查看交易的命令,公证服务只能查看交易的输入,实现了对交易的隐私保护。并且Corda 还提供了对诸如Intel SGX 等硬件安全模块的支持,将在飞地中处理的历史交易加解密运算放在可信计算硬件中执行,保障历史交易数据隐私。但Corda 的公证池服务依赖于R3 联盟,可能存在一定风险。

目前,加拿大银行的Jasper、加拿大银行与新加坡金融管理局联合开发的Jasper-Ubin、泰国银行Inthanon 都采用Corda 作为技术解决方案。

4 展望与总结

通过对原型系统与技术解决方案的分析,能较好地了解到当前CBDC 的发展现状。下文将对CBDC 未来发展方向进行展望,以及对本文的工作进行总结。

4.1 展望

(1)高交易吞吐量

当前,主流公链系统如比特币交易吞吐量为7TPS,以太坊交易吞吐量为15TPS,EOS 交易吞吐量约为34TPS。相较于传统公链,CBDC原型系统及技术解决方案的吞吐量取得了极大提升,其中Hyperledger Fabric 的交易吞吐量为3500TPS,RSCoin 的交易吞吐量为2000TPS。但世界主流电子支付系统如中国网联的交易吞吐量约为92000TPS,峰值可达250000TPS,Visa交易吞吐量约为24000TPS。可见CBDC 技术解决方案与传统电子支付系统的吞吐量仍有较大差距,有可能无法满足现实交易需求。因此,可采取链上扩容与链下扩容,提高中央银行数字货币技术解决方案的交易吞吐量。

链上(On-chain)扩容指的是对区块链的结构、共识以及交易流程进行修改与优化,实现系统吞吐量的提高。链上扩容主要包含如下方面:

①共识机制改进

当前技术解决方案一般采用PBFT、Raft 等联盟链常用共识机制。可在平衡性能与中心化程度的前提下,对现有共识机制进行优化,加快交易验证速度,从而提升系统吞吐量。

②分片技术

区块链系统中一般将交易存放在一条区块链中。分片技术是指将交易数据按照一定方式存放在数条相对独立的链上,每条链称为一个分片。不同分片中的交易独立处理,可在一定程度上实现并行交易,提高系统吞吐量。

③有向无环图结构

传统区块链采用链式结构,各个节点仅能串行处理交易。而采用有向无环图(Directed Acyclic Graph,DAG)结构后,各个节点可并行处理不同交易,大幅提升交易吞吐量。

④无状态验证技术

无状态验证技术是指将交易中包含的凭证数据转移到区块链外,减少单笔交易大小,增加区块交易容量,达到提升交易吞吐量的效果。

⑤扩块

通过扩大区块大小,可增加每个区块包含的交易数量,从而提升交易吞吐量。

链下(Off-chain)扩容指的是在不修改区块链系统的前提下,将部分数据的处理过程从链上转移到区块链外进行,等待处理完成后将结果返回至链上,实现扩容。链下扩容主要包含如下方面:

①侧链

侧链是指在原有区块链外,部署额外的区块链系统。原有区块链称为主链,新部署区块链称为侧链。在主链上建立与侧链的锚定机制后,可将交易处理转移到侧链上,仅在主链上保存交易结果,并定期更新锚定结果,达到提升交易吞吐量的目的。

②状态通道

闪电网络等方案均属于状态通道技术。状态通道技术具体指在链外建立专门的交易处理通道,交易通过此通道进行处理,仅在链上存储通道的起始状态与最终状态,减少链上交易处理数量,实现吞吐量的提升。

③链下计算

链下计算是指将链上数据处理过程通过可信计算环境或者安全多方计算等技术转移至链下,仅在链上保存处理结果,从而减少系统处理时间,提升系统吞吐量。

(2)强隐私保护

CBDC 作为主权数字法定货币,应该对交易敏感信息(如交易对象、金额等)在符合监管规定的情况下进行一定程度的保护,保障使用者的隐私安全。现有技术解决方案均提供了一定程度的隐私保护,如Hyperledger Fabric 采用Channel 技术对交易信息进行隔离;Quorum 允许指定特定节点进行私有交易等。

①硬件层面

可在相关节点使用如Intel SGX、ARM TrustZone 等可信计算环境,防止隐私泄露。

②软件层面

首先,可参照部分技术解决方案,引入零知识证明、同态加密等技术,对交易敏感信息进行保密;其次,采用一定程度的混币技术,使得交易难以被追踪;最后,可使用安全多方计算(Secure Multi-party Computation,SMC)技术,使相关节点在不掌握交易隐私的前提下完成对交易的处理。

4.2 总结

中央银行数字货币是当前世界各国的数字金融研究热点之一,具有保障货币主权、推进数字金融、便于金融服务等特点,拥有广泛的应用前景。目前,中央银行数字货币的研究与应用仍处于初步阶段,绝大多数采用基于区块链分布式账本技术的技术解决方案。本文介绍了中央银行数字货币定义及概念,对当前发表的原型系统及采用的技术解决方案进行了综述,对其特点、模型、结构、共识机制及交易流程进行了阐述与分析;再对中央银行数字货币区块链技术解决方案的高交易吞吐量与强隐私保护两个发展方向进行了展望。

猜你喜欢

中央银行吞吐量共识
共识 共进 共情 共学:让“沟通之花”绽放
从纸币到虚拟货币的转变将增强中央银行的力量
论思想共识凝聚的文化向度
商量出共识
对建设现代中央银行制度的思考
理解现代中央银行制度
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
“慢养孩子”应成社会普遍共识