姚前:美联储数字货币原型系统简析
2022-05-09 13:10:10

近年来,全球主要经济體(tǐ)的货币当局不断加大对中央银行数字货币(Central Bank Digital Currency,CBDC)的研发力度并取得了诸多(duō)阶段性成果。“汉密尔顿计划”(Project Hamilton)是美國(guó)波士顿联邦储备银行与麻省理(lǐ)工學(xué)院合作开展的CBDC创新(xīn)研究项目(Digital Currency Initiative,DCI)。这项计划已持续开展数年,2022年2月3日,美國(guó)波士顿联邦储备银行发布题為(wèi)“為(wèi)央行数字货币设计的高性能(néng)支付处理(lǐ)系统”(A High Performance Payment Processing System Designed for Central Bank Digital Currencies)的技术报告,总结了汉密尔顿计划第一阶段进展。本文(wén)拟透过该报告的主要内容,对美联储央行数字货币原型系统进行简要分(fēn)析。


汉密尔顿计划第一阶段的研究目标

汉密尔顿计划第一阶段的第一个目标是探讨CBDC系统的性能(néng),即从技术上研发一种高吞吐量、低延迟和富有(yǒu)弹性的CBDC交易处理(lǐ)系统。具體(tǐ)性能(néng)目标包括两个方面:一是在5秒(miǎo)内完成99%交易,包括完成交易验证、交易执行以及向用(yòng)户确认交易,处理(lǐ)速度与美國(guó)现有(yǒu)银行卡支付以及银行间即时支付系统的相应指标不相上下;二是根据美國(guó)目前现金和银行卡交易量以及预期增長(cháng)率,该系统每秒(miǎo)至少处理(lǐ)10万筆(bǐ)交易,且能(néng)随着后期支付量的增長(cháng)不断扩展。

第二个目标是探讨CBDC系统的韧性。為(wèi)维持公众对CBDC的信任,CBDC系统必须确保服務(wù)连续性且资金可(kě)用(yòng)。系统韧性的研究重点在于,当多(duō)个数据中心发生故障时,如何保证系统访问不中断,数据不丢失。

第三个目标是探讨CBDC的隐私保护。研发团队认為(wèi),最安全的隐私保护方法就是从交易伊始就减少数据收集,因此在CBDC交易系统中设计了一种尽量减少交易数据留存的方案。


美联储数字货币原型系统设计

币的形式:未花(huā)费的交易输出(Unspent Transaction Output,UTXO)

汉密尔顿系统有(yǒu)三类参与者:交易处理(lǐ)器(transaction processor)、发行方(issuer)和用(yòng)户(user)。交易处理(lǐ)器记录CBDC,并根据指令验证和执行相关交易。同比特币一样,汉密尔顿计划采用(yòng)UTXO的货币表达式。CBDC仅能(néng)通过发行方的行為(wèi)而进出系统,发行方铸币(mint)增加交易处理(lǐ)器中的资金,赎回(redeem)则减少交易处理(lǐ)器中的资金。用(yòng)户执行资金转移(transfer)操作,以原子方式变更资金所有(yǒu)权,但存储在交易处理(lǐ)器中的资金总额不变,变化的是资金的权属。用(yòng)户使用(yòng)其数字钱包的公钥/私钥来处理(lǐ)和签署交易。资金转移交易过程中,使用(yòng)付款方的未花(huā)费资金就是交易输入(input),生成新(xīn)的未花(huā)费资金就是交易输出(output)——包括收款方和找零给付款方的未花(huā)费资金。一项有(yǒu)效交易必须保持平衡:交易输入值之和须与输出值之和相等。

未花(huā)费资金定义為(wèi)三元组utxo:=(v,P,sn)。其中,v為(wèi)金额,P為(wèi)安全锁锁头(encumbrance predicate,可(kě)以理(lǐ)解為(wèi)持有(yǒu)者公钥),sn為(wèi)序列号(serial number)。发行方的铸币操作会创建新(xīn)的未花(huā)费资金,并将UTXO添加到交易处理(lǐ)器存储的UTXO集合,而赎回操作则从UTXO集合中删除已有(yǒu)的未花(huā)费资金,使其不可(kě)重复使用(yòng)。发行方必须為(wèi)新(xīn)铸UTXO选择唯一序列号。将其设置為(wèi)均匀随机数或单调递增计数器值(发行方铸造第i个UTXO时,会将其序列号设置為(wèi)i)均可(kě)。

分(fēn)离验证与UTXO压缩

在汉密尔顿系统中,交易处理(lǐ)器验证交易的正确性,并通过删除输入和创建输出来执行交易。验证分(fēn)為(wèi)交易局部验证(transaction-local validation,无需访问共享状态)和存在性验证(existence validation,需要访问共享状态)。对于这种分(fēn)离,汉密尔顿系统设计了专用(yòng)组件——哨兵(sentinel),专门用(yòng)于接收用(yòng)户交易并执行交易局部验证。局部验证内容包括:核实交易格式正确;确认每个输入都有(yǒu)适用(yòng)于其花(huā)费输出的有(yǒu)效签名;确认交易保持平衡(即输出之和等于输入之和)。如果交易符合标准,哨兵将向负责存在性验证的执行引擎转发交易,否则就仅向用(yòng)户提示交易错误。

存在性验证主要核验未花(huā)费资金是否存在。為(wèi)了实现隐私保护,汉密尔顿系统将资金作為(wèi)不透明的32字节哈希值存储在未花(huā)费资金哈希集合(Unspent funds Hash Set,UHS),h:= H(v,P,sn),而不是存储完整的utxo:= (v,P,sn),其中H是一个哈希函数,汉密尔顿系统使用(yòng)了SHA-256算法。用(yòng)UHS集合替换UTXO集合,不仅有(yǒu)助于隐私保护,而且减少了存储要求并提高系统的性能(néng)。

為(wèi)了进行存在性验证,系统需要预先将通过局部验证的交易转换為(wèi)应用(yòng)于UTXO哈希集合的交易,该过程被称為(wèi)压缩(compaction)。具體(tǐ)而言,由哨兵计算输入UTXO的哈希值,并将输入UTXO与输出安全锁和价值一起,导出输出UTXO的序列号,从而计算输出UTXO的哈希值,然后将这两个哈希列表发送给保存UHS的交易处理(lǐ)器,进行存在性检查和执行。

存在性验证与UHS互换

假定某交易已通过交易局部验证并进行了压缩转换,交易处理(lǐ)器将按如下方式更新(xīn)UHS集合:检查UHS集合是否存在所有(yǒu)交易的输入UTXO,如果有(yǒu)输入UTXO缺失,那么中止进一步处理(lǐ),否则,处理(lǐ)继续进行;交易处理(lǐ)器从UHS集合中删除该交易的输入UTXO对应的UHS,并将新(xīn)创建的与输出UTXO对应的UHS添加到UHS集合中。上述一删一增的操作被称為(wèi)互换(swap)。

高性能(néng)架构

為(wèi)实现高吞吐量、低延迟以及高容错性的交易处理(lǐ),汉密尔顿计划设计了两种架构。第一种是原子服務(wù)器(atomizer)架构,系统利用(yòng)排序服務(wù)器為(wèi)所有(yǒu)交易创建線(xiàn)性的历史记录。第二种是两阶段提交(two-phase commit,2PC)架构,系统并行执行数筆(bǐ)无冲突交易(即那些不会支付或收到同筆(bǐ)资金的交易),而不创建统一排序的交易记录。

在这两种架构中,UHS都可(kě)实现跨服務(wù)器分(fēn)區(qū),提高吞吐量并不断扩展。执行单筆(bǐ)交易通常涉及多(duō)个服務(wù)器,每种架构使用(yòng)不同技术协调一筆(bǐ)交易在多(duō)个服務(wù)器中的一致应用(yòng)。中心化的原子服務(wù)器架构使用(yòng)Raft协议对所有(yǒu)来自于哨兵验证过的更新(xīn)排序,然后将这些更新(xīn)应用(yòng)于全系统。2PC架构则利用(yòng)分(fēn)布式共识节点来执行原子交易和可(kě)串行化所需的锁定,使用(yòng)不同资金的交易不会冲突,可(kě)以并行执行;一旦某有(yǒu)效交易的资金被确认為(wèi)未花(huā)费,交易就能(néng)连续进行,可(kě)同时批量处理(lǐ)多(duō)筆(bǐ)交易。


汉密尔顿计划第一阶段的实验结果

汉密尔顿计划在第一阶段开发了两套完整的计算源代码或代码库。一个是中心化原子服務(wù)器架构的代码库,每秒(miǎo)能(néng)够处理(lǐ)大约17万筆(bǐ)交易,其中99%的交易尾部延迟不到2秒(miǎo),50%的交易尾部延迟為(wèi)0.7秒(miǎo)。由于原子服務(wù)器无法跨多(duō)个服務(wù)器进行分(fēn)片,因此尽管可(kě)以将原子服務(wù)器状态机中的功能(néng)简化為(wèi)只对一小(xiǎo)部分(fēn)交易进行输入排序和去重,但该架构的系统吞吐量仍有(yǒu)限。也就是说,对有(yǒu)效交易进行强排序的设计会限制吞吐量。另一个是2PC架构的代码库,每秒(miǎo)能(néng)够处理(lǐ)170万筆(bǐ)交易,其中99%的交易可(kě)在1秒(miǎo)之内完成,50%的交易尾部延迟不到0.5秒(miǎo),遠(yuǎn)高于设定目标需要达到的每秒(miǎo)10万筆(bǐ)交易的基本要求。此外,2PC架构若添加更多(duō)共识节点,还可(kě)进一步提高吞吐量,且不会对延迟产生负面影响。

以上代码已经开源,汉密尔顿计划称之為(wèi)“开源央行数字货币项目(OpenCBDC)”,目的是促进CBDC研发合作。


比较分(fēn)析

与電(diàn)子现金(E-cash)的比较

1982年,美國(guó)计算机科(kē)學(xué)家和密码學(xué)家大卫·乔姆(David Chaum)发表了一篇题為(wèi)《用(yòng)于不可(kě)追踪的支付系统的盲签名》的论文(wén)。论文(wén)中提出了一种基于RSA算法(RSA algorithm)的新(xīn)密码协议——盲签名(blind signature)。利用(yòng)盲签名构建一个具备匿名性、不可(kě)追踪性的電(diàn)子现金系统,这是最早的数字货币理(lǐ)论,也是最早能(néng)够落地的试验系统,得到了學(xué)术界的高度认可(kě)。其中有(yǒu)两项关键技术:随机配序和盲化签名。随机配序产生的唯一序列号可(kě)以保证数字现金的唯一性;盲化签名能(néng)够确保银行对该匿名数字现金的信用(yòng)背书。

汉密尔顿计划采用(yòng)了与E-cash相似的思路:一方面,通过全局唯一且每次交易都需要系统验证的序列号,保证货币(UTXO)的唯一性;另一方面,采用(yòng)中央处理(lǐ)模式,并利用(yòng)加密算法实现系统的安全与抗攻击性。但汉密尔顿计划克服了E-cash的不足。在大卫·乔姆建立的E-Cash模型中,每个使用(yòng)过的E-Cash序列号都会被存储在银行数据库中。随着交易量的上升,该数据库就会变得越来越庞大,验证过程也会越来越困难。而汉密尔顿计划通过分(fēn)离验证和压缩处理(lǐ),尽可(kě)能(néng)减少交易处理(lǐ)器的存储计算压力,并利用(yòng)分(fēn)片技术和高性能(néng)架构,从而大幅提升交易性能(néng)。

简言之,已花(huā)费的交易输出与未花(huā)费的交易输出,是两种相反相成的设计思路。后者优化了前者面临的数据无限膨胀的问题,这也是比特币超越E-Cash的精髓所在。

与比特币的比较

与比特币相似,汉密尔顿计划对币的设计也采用(yòng)了UTXO模式。但二者的區(qū)别在于:比特币的區(qū)块链存储了所有(yǒu)UTXO信息;而汉密尔顿计划没有(yǒu)采用(yòng)區(qū)块链模式,币不可(kě)简单追溯,且其交易处理(lǐ)器并未存储UTXO明细信息,仅存储UTXO的哈希值。尤其是,汉密尔顿计划的信任基础与比特币的分(fēn)布式共识机制完全不同,其平台将由可(kě)信任的中心机构管理(lǐ),共识算法仅用(yòng)于协调系统中各分(fēn)區(qū)服務(wù)器的一致性,更类似于第三方支付后台的分(fēn)布式系统设计。

在防止双重花(huā)费、无重放攻击等威胁方面,比特币采用(yòng)的是工作量证明机制(Proof of Work,PoW),而汉密尔顿计划的设计则依靠哈希算法,且高度依赖发行方和交易系统的安全可(kě)信。具體(tǐ)来说,对于汉密尔顿交易处理(lǐ)器中的每次转移,其UTXO输出的序列号都是经过哈希算法处理(lǐ)后所确定,只要从原始铸币交易开始的序列号是全局唯一的,后续递推得到的每个UTXO序列号也将均具有(yǒu)全局唯一性,不会与过去或未来UTXO集合中的任何其他(tā)项重合。序列号的全局唯一性不仅是一个技术细节,而且可(kě)达到两个效果。一是无双重花(huā)费。互换操作会将UTXO永久标记為(wèi)已花(huā)费。由于序列号是唯一的,因此任何UTXO只能(néng)被花(huā)费一次,且在花(huā)费后不能(néng)被重建。二是防止重放攻击。因為(wèi)每筆(bǐ)交易都对应着具有(yǒu)全局唯一性的一个或多(duō)个UTXO输入,其签名将覆盖整个交易,包括相关的所有(yǒu)输入和输出。因此,一个交易的签名对除此交易外的其他(tā)任何UTXO(包括未来创建的UTXO)都无效,而且,交易无法被复制,同一筆(bǐ)交易也不能(néng)被多(duō)次执行。汉密尔顿计划设计的风险点在于:中心机构是否一定可(kě)信?发行方铸币的序列号是否全局唯一?交易处理(lǐ)器是否足够安全从而可(kě)保证存储的UHS集合不被篡改?

简言之,虽然比特币和汉密尔顿计划都使用(yòng)了UTXO的数据模型,但汉密尔顿计划维护的是一套中心化的哈希登记系统,而比特币维护的是一套分(fēn)布式的區(qū)块链哈希登记系统。

其他(tā)比较

汉密尔顿计划的技术报告引用(yòng)了筆(bǐ)者在2018年國(guó)际電(diàn)信联盟(ITU)法定数字货币焦点组第二次会议上的工作论文(wén)。该论文(wén)主要是对数字人民(mín)币原型系统的综述,核心思想為(wèi)“一币、两库、三中心”的技术架构(《中國(guó)法定数字货币原型构想》,见《中國(guó)金融》2016年第17期),以及基于银行账户与数字货币钱包分(fēn)层并用(yòng)的双层业務(wù)架构(《数字货币和银行账户》,见《清华金融评论》2017年第7期)。

汉密尔顿计划当前的整體(tǐ)架构可(kě)以表达為(wèi)“一币,一钱包,一中心”。一币指的是数字美元,即中央银行签名发行的以UTXO数据结构表达的加密数字串;一钱包是指个人或单位用(yòng)户使用(yòng)的数字货币钱包,也是存储用(yòng)户公私钥的载體(tǐ);一中心是指交易登记中心,记录存储数字货币未花(huā)费交易资金的哈希值,完成数字货币产生、流通及消亡全过程的权属登记。

在数字货币设计方面,两个原型项目都强调加密数字串的货币属性和央行负债的属性。在流通环节,两个项目都以钱包為(wèi)主要载體(tǐ),强调用(yòng)户对数字货币的拥有(yǒu)和操作权限。在交易确权登记方面,两个项目都设计了交易登记中心,也设计了“网上验钞机”。总體(tǐ)来说,两个原型项目在设计理(lǐ)念层面有(yǒu)相通之处,均采用(yòng)了中心化加密货币思路,交易处理(lǐ)“一次一密”,充分(fēn)考虑了数字货币的安全性。技术路線(xiàn)又(yòu)不囿于區(qū)块链技术,既吸纳了其中的先进成分(fēn),又(yòu)摈弃了可(kě)能(néng)的技术堵点。两个项目不同之处在于,汉密尔顿计划第一阶段没有(yǒu)探索中介的技术角色以及如何实现用(yòng)户隐私与合规性的平衡;筆(bǐ)者提出的数字货币原型系统则考虑和设计了中介机构的角色,并提出认证中心和登记中心分(fēn)离的设计思路,既可(kě)实现隐私保护又(yòu)能(néng)满足监管合规要求。值得一提的是,汉密尔顿计划通过层层哈希计算,在登记服務(wù)器存储的是交易信息的哈希,而不是明文(wén)信息,降低了系统开销,在隐私保护的考虑上更為(wèi)精细。


结  语

总體(tǐ)而言,汉密尔顿计划第一阶段的原型设计并不是一个完整的系统,不具备一个有(yǒu)效CBDC所需的全部功能(néng),尚不能(néng)达到实际应用(yòng)标准。后续汉密尔顿计划将继续探索CBDC的实现路径,不断提高系统的安全性、可(kě)审计性、可(kě)编程性、合规性、互操作性,完善离線(xiàn)支付功能(néng),明确中介机构的角色,增强抵御内部攻击、拒绝服務(wù)攻击、对抗量子攻击的能(néng)力。汉密尔顿计划给各國(guó)央行数字货币研发提供了两个重要的启示。

一是技术的包容性。汉密尔顿计划在设计CBDC过程中,并不囿于某一技术路線(xiàn)。它不仅充分(fēn)吸收了E-cash、比特币等加密货币的优点并规避了可(kě)能(néng)的缺点,而且有(yǒu)效吸纳了分(fēn)布式系统的高性能(néng)、高容错架构设计。由此表明,CBDC设计的选择不应画地為(wèi)牢,无须将思路限定在某一技术框架或领域。

二是技术的开放性。目前各國(guó)CBDC的试验基本上是比较秘密的“曼哈顿工程”,而汉密尔顿计划则秉持开放、众智、敏捷的现代研发理(lǐ)念,主动将第一阶段代码进行了开源,创建了OpenCBDC项目并在github上公开。目前,汉密尔顿计划仍积极寻求外界对开源代码库的贡献以及吸纳新(xīn)的工作组成员,旨在与各方一起共同推进CBDC研发。汉密尔顿计划这种开放式创新(xīn)模式,无疑值得各國(guó)在CBDC研发实践中加以學(xué)习借鉴。


来源:中國(guó)金融杂志(zhì)/姚前(中國(guó)证监会科(kē)技监管局局長(cháng))

相关热词搜索:美联储,数字货币

上一篇:金融科(kē)技赋能(néng)农村金融高质量发展的思考
下一篇:丁晓东 《个人信息保护法》的比较法重思:中國(guó)道路与解释原理(lǐ)(上)