一起来了解秉持敞开、众智、敏捷的现代研制理念,选用包容的技能道路,探究创立高吞吐量、低推迟和赋有弹性的CBDC买卖处理体系。

近年来,全球首要经济体的钱银当局不断加大对中央银行数字钱银(Central Bank Digital Currency,CBDC)的研制力度并取得了诸多阶段性作用。“汉密尔顿方案”(Project Hamilton)是美国波士顿联邦储备银行与麻省理工学院协作展开的CBDC立异研究项目(Digital Currency Initiative,DCI)。这项方案已持续展开数年,2022年2月3日,美国波士顿联邦储备银行发布题为“为央行数字钱银规划的高功用付出处理体系”(A High Performance Payment Processing System Designed for Central Bank Digital Currencies)的技能陈述,总结了汉密尔顿方案第一阶段发展。本文拟透过该陈述的首要内容,对美联储央行数字钱银原型体系进行简要分析。

汉密尔顿方案第一阶段的研究方针

汉密尔顿方案第一阶段的第一个方针是讨论CBDC体系的功用,即从技能上研制一种高吞吐量、低推迟和赋有弹性的CBDC买卖处理体系。详细功用方针包含两个方面:一是在5秒内完结99%买卖,包含完结买卖验证、买卖履行以及向用户承认买卖,处理速度与美国现有银行卡付出以及银行间即时付出体系的相应方针不相上下;二是根据美国现在现金和银行卡买卖量以及预期增长率,该体系每秒至少处理10万笔买卖,且能跟着后期付出量的增长不断扩展。

第二个方针是讨论CBDC体系的耐性。为坚持公众对CBDC的信赖,CBDC体系有必要确保服务接连性且资金可用。体系耐性的研究重点在于,当多个数据中心发生故障时,怎么确保体系访问不中断,数据不丢掉。

第三个方针是讨论CBDC的隐私保护。研制团队以为,最安全的隐私保护方法便是从买卖伊始就削减数据收集,因而在CBDC买卖体系中规划了一种尽量削减买卖数据留存的方案。

美联储数字钱银原型体系规划

币的方法:未花费的买卖输出(Unspent Transaction Output,UTXO)

汉密尔顿体系有三类参与者:买卖处理器(transaction processor)、发行方(issuer)和用户(user)。买卖处理器记载CBDC,并根据指令验证和履行相关买卖。同比特币一样,汉密尔顿方案选用UTXO的钱银表达式。CBDC仅能通过发行方的行为而进出体系,发行方铸币(mint)增加买卖处理器中的资金,换回(redeem)则削减买卖处理器中的资金。用户履行资金搬运(transfer)操作,以原子方法变更资金一切权,但存储在买卖处理器中的资金总额不变,改变的是资金的权属。用户运用其数字钱包的公钥/私钥来处理和签署买卖。资金搬运买卖进程中,运用付款方的未花费资金便是买卖输入(input),生成新的未花费资金便是买卖输出(output)——包含收款方和找零给付款方的未花费资金。一项有用买卖有必要坚持平衡:买卖输入值之和须与输出值之和相等。

未花费资金界说为三元组utxo:=(v,P,sn)。其间,v为金额,P为安全锁锁头(encumbrance predicate,可以理解为持有者公钥),sn为序列号(serial number)。发行方的铸币操作会创立新的未花费资金,并将UTXO添加到买卖处理器存储的UTXO调集,而换回操作则从UTXO调集中删去已有的未花费资金,使其不行重复运用。发行方有必要为新铸UTXO挑选仅有序列号。将其设置为均匀随机数或单调递加计数器值(发行方铸造第i个UTXO时,会将其序列号设置为i)均可。

别离验证与UTXO紧缩

在汉密尔顿体系中,买卖处理器验证买卖的正确性,并通过删去输入和创立输出来履行买卖。验证分为买卖部分验证(transaction-local validation,无需访问共享状况)和存在性验证(existence validation,需要访问共享状况)。关于这种别离,汉密尔顿体系规划了专用组件——哨兵(sentinel),专门用于接纳用户买卖并履行买卖部分验证。部分验证内容包含:核实买卖格式正确;承认每个输入都有适用于其花费输出的有用签名;承认买卖坚持平衡(即输出之和等于输入之和)。如果买卖符合规范,哨兵将向负责存在性验证的履行引擎转发买卖,不然就仅向用户提示买卖错误。

存在性验证首要核验未花费资金是否存在。为了完结隐私保护,汉密尔顿体系将资金作为不透明的32字节哈希值存储在未花费资金哈希调集(Unspent funds Hash Set,UHS),h:= H(v,P,sn),而不是存储完好的utxo:= (v,P,sn),其间H是一个哈希函数,汉密尔顿体系运用了SHA-256算法。用UHS调集替换UTXO调集,不只有助于隐私保护,并且削减了存储要求并提高体系的功用。

为了进行存在性验证,体系需要预先将通过部分验证的买卖转换为使用于UTXO哈希调集的买卖,该进程被称为紧缩(compaction)。详细而言,由哨兵核算输入UTXO的哈希值,并将输入UTXO与输出安全锁和价值一起,导出输出UTXO的序列号,然后核算输出UTXO的哈希值,然后将这两个哈希列表发送给保存UHS的买卖处理器,进行存在性查看和履行。

存在性验证与UHS交换

假定某买卖现已过买卖部分验证并进行了紧缩转换,买卖处理器将按如下方法更新UHS调集:查看UHS调集是否存在一切买卖的输入UTXO,如果有输入UTXO缺失,那么中止进一步处理,不然,处理持续进行;买卖处理器从UHS调集中删去该买卖的输入UTXO对应的UHS,并将新创立的与输出UTXO对应的UHS添加到UHS调集中。上述一删一增的操作被称为交换(swap)。

高功用架构

为完结高吞吐量、低推迟以及高容错性的买卖处理,汉密尔顿方案规划了两种架构。第一种是原子服务器(atomizer)架构,体系运用排序服务器为一切买卖创立线性的历史记载。第二种是两阶段提交(two-phase commit,2PC)架构,体系并行履行数笔无抵触买卖(即那些不会付出或收到同笔资金的买卖),而不创立一起排序的买卖记载。

在这两种架构中,UHS都可完结跨服务器分区,提高吞吐量并不断扩展。履行单笔买卖通常涉及多个服务器,每种架构运用不同技能和谐一笔买卖在多个服务器中的一起使用。中心化的原子服务器架构运用Raft协议对一切来自于哨兵验证过的更新排序,然后将这些更新使用于全体系。2PC架构则运用分布式一致节点来履行原子买卖和可串行化所需的锁定,运用不同资金的买卖不会抵触,可以并行履行;一旦某有用买卖的资金被承以为未花费,买卖就能接连进行,可一起批量处理多笔买卖。

汉密尔顿方案第一阶段的实验结果

汉密尔顿方案在第一阶段开发了两套完好的核算源代码或代码库。一个是中心化原子服务器架构的代码库,每秒可以处理大约17万笔买卖,其间99%的买卖尾部推迟不到2秒,50%的买卖尾部推迟为0.7秒。由于原子服务器无法跨多个服务器进行分片,因而尽管可以将原子服务器状况机中的功用简化为只对一小部分买卖进行输入排序和去重,但该架构的体系吞吐量仍有限。也便是说,对有用买卖进行强排序的规划会限制吞吐量。另一个是2PC架构的代码库,每秒可以处理170万笔买卖,其间99%的买卖可在1秒之内完结,50%的买卖尾部推迟不到0.5秒,远高于设定方针需要达到的每秒10万笔买卖的基本要求。此外,2PC架构若添加更多一致节点,还可进一步提高吞吐量,且不会对推迟发生负面影响。

以上代码现已开源,汉密尔顿方案称之为“开源央行数字钱银项目(OpenCBDC)”,目的是促进CBDC研制协作。

比较分析

与电子现金(E-cash)的比较

1982年,美国核算机科学家和密码学家大卫乔姆(David Chaum)发表了一篇题为《用于不行追寻的付出体系的盲签名》的论文。论文中提出了一种根据RSA算法(RSA algorithm)的新密码协议——盲签名(blind signature)。运用盲签名构建一个具有匿名性、不行追寻性的电子现金体系,这是最早的数字钱银理论,也是最早可以落地的实验体系,得到了学术界的高度认可。其间有两项关键技能:随机配序和盲化签名。随机配序发生的仅有序列号可以确保数字现金的仅有性;盲化签名可以确保银行对该匿名数字现金的信用背书。

汉密尔顿方案选用了与E-cash相似的思路:一方面,通过大局仅有且每次买卖都需要体系验证的序列号,确保钱银(UTXO)的仅有性;另一方面,选用中央处理模式,并运用加密算法完结体系的安全与抗进犯性。但汉密尔顿方案克服了E-cash的缺乏。在大卫乔姆建立的E-Cash模型中,每个运用过的E-Cash序列号都会被存储在银行数据库中。跟着买卖量的上升,该数据库就会变得越来越庞大,验证进程也会越来越困难。而汉密尔顿方案通过别离验证和紧缩处理,尽或许削减买卖处理器的存储核算压力,并运用分片技能和高功用架构,然后大幅提升买卖功用。

简言之,已花费的买卖输出与未花费的买卖输出,是两种相反相成的规划思路。后者优化了前者面临的数据无限膨胀的问题,这也是比特币逾越E-Cash的精华地点。

与比特币的比较

与比特币相似,汉密尔顿方案对币的规划也选用了UTXO模式。但二者的区别在于:比特币的区块链存储了一切UTXO信息;而汉密尔顿方案没有选用区块链模式,币不行简单追溯,且其买卖处理器并未存储UTXO明细信息,仅存储UTXO的哈希值。尤其是,汉密尔顿方案的信赖根底与比特币的分布式一致机制彻底不同,其平台将由可信赖的中心机构管理,一致算法仅用于和谐体系中各分区服务器的一起性,更类似于第三方付出后台的分布式体系规划。

在避免双重花费、无重放进犯等要挟方面,比特币选用的是工作量证明机制(Proof of Work,PoW),而汉密尔顿方案的规划则依托哈希算法,且高度依赖发行方和买卖体系的安全可信。详细来说,关于汉密尔顿买卖处理器中的每次搬运,其UTXO输出的序列号都是通过哈希算法处理后所确定,只要从原始铸币买卖开端的序列号是大局仅有的,后续递推得到的每个UTXO序列号也将均具有大局仅有性,不会与过去或未来UTXO调集中的任何其他项重合。序列号的大局仅有性不只是一个技能细节,并且可达到两个作用。一是无双重花费。交换操作会将UTXO永久标记为已花费。由于序列号是仅有的,因而任何UTXO只能被花费一次,且在花费后不能被重建。二是避免重放进犯。由于每笔买卖都对应着具有大局仅有性的一个或多个UTXO输入,其签名将掩盖整个买卖,包含相关的一切输入和输出。因而,一个买卖的签名对除此买卖外的其他任何UTXO(包含未来创立的UTXO)都无效,并且,买卖无法被仿制,同一笔买卖也不能被多次履行。汉密尔顿方案规划的危险点在于:中心机构是否一定可信?发行方铸币的序列号是否大局仅有?买卖处理器是否足够安全然后可确保存储的UHS调集不被篡改?

简言之,虽然比特币和汉密尔顿方案都运用了UTXO的数据模型,但汉密尔顿方案保护的是一套中心化的哈希挂号体系,而比特币保护的是一套分布式的区块链哈希挂号体系。

其他比较

汉密尔顿方案的技能陈述引用了笔者在2018年国际电信联盟(ITU)法定数字钱银焦点组第2次会议上的工作论文。该论文首要是对数字人民币原型体系的综述,中心思想为“一币、两库、三中心”的技能架构(《我国法定数字钱银原型构想》,见《我国金融》2016年第17期),以及根据银行账户与数字钱银钱包分层并用的双层业务架构(《数字钱银和银行账户》,见《清华金融谈论》2017年第7期)。

汉密尔顿方案当时的全体架构可以表达为“一币,一钱包,一中心”。一币指的是数字美元,即中央银行签名发行的以UTXO数据结构表达的加密数字串;一钱包是指个人或单位用户运用的数字钱银钱包,也是存储用户公私钥的载体;一中心是指买卖挂号中心,记载存储数字钱银未花费买卖资金的哈希值,完结数字钱银发生、流通及消亡全进程的权属挂号。

在数字钱银规划方面,两个原型项目都着重加密数字串的钱银特点和央行负债的特点。在流通环节,两个项目都以钱包为首要载体,着重用户对数字钱银的具有和操作权限。在买卖确权挂号方面,两个项目都规划了买卖挂号中心,也规划了“网上验钞机”。总体来说,两个原型项目在规划理念层面有相通之处,均选用了中心化加密钱银思路,买卖处理“一次一密”,充分考虑了数字钱银的安全性。技能道路又不囿于区块链技能,既吸纳了其间的先进成分,又摈弃了或许的技能堵点。两个项目不同之处在于,汉密尔顿方案第一阶段没有探究中介的技能人物以及怎么完结用户隐私与合规性的平衡;笔者提出的数字钱银原型体系则考虑和规划了中介机构的人物,并提出认证中心和挂号中心别离的规划思路,既可完结隐私保护又能满意监管合规要求。值得一提的是,汉密尔顿方案通过层层哈希核算,在挂号服务器存储的是买卖信息的哈希,而不是明文信息,降低了体系开支,在隐私保护的考虑上更为精密。

结 语

总体而言,汉密尔顿方案第一阶段的原型规划并不是一个完好的体系,不具有一个有用CBDC所需的全部功用,尚不能达到实践使用规范。后续汉密尔顿方案将持续探究CBDC的完结途径,不断提高体系的安全性、可审计性、可编程性、合规性、互操作性,完善离线付出功用,明确中介机构的人物,增强抵挡内部进犯、拒绝服务进犯、对抗量子进犯的能力。汉密尔顿方案给各国央行数字钱银研制供给了两个重要的启示。

一是技能的包容性。汉密尔顿方案在规划CBDC进程中,并不囿于某一技能道路。它不只充分吸收了E-cash、比特币等加密钱银的长处并规避了或许的缺陷,并且有用吸纳了分布式体系的高功用、高容错架构规划。由此表明,CBDC规划的挑选不该画地为牢,无须将思路限定在某一技能框架或领域。

二是技能的敞开性。现在各国CBDC的实验基本上是比较秘密的“曼哈顿工程”,而汉密尔顿方案则秉持敞开、众智、敏捷的现代研制理念,主动将第一阶段代码进行了开源,创立了OpenCBDC项目并在github上公开。现在,汉密尔顿方案仍积极寻求外界对开源代码库的贡献以及吸纳新的工作组成员,旨在与各方一起一起推进CBDC研制。汉密尔顿方案这种敞开式立异模式,无疑值得各国在CBDC研制实践中加以学习学习。

作者|姚前「我国证监会科技监管局局长」

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注