咨询热线:400-123-4567
您当前的位置: PG电子 > PG新闻
  PGXW

PG新闻

PG新闻

pg电子官网:广东省金融科技学会

发布时间: 2024-01-01 次浏览

  根据货币形态、确权及转移方式的不同,央行数字货币技术路线的两个方向是Digital Object型(数字对象型央行数字货币)和记账货币。按照记账模型的不同,记账货币又进一步细分为Account-Account型、Account-NFT型、Account-UTXO型3类。文章在详细介绍4种央行数字货币设计方案的基础上,进一步讨论了不同方案的优劣。其中,Digital Object型央行数字货币虽然不利于央行对资金进行监管,但有利于保护公众隐私,可对所有货币持有者实现“无差异非歧视”,对现有金融体系的潜在影响可能更小。而在记账货币当中,Account-Account型货币因为仅记录账户余额,数据存储、交易处理压力更小,但劣势是不能支持同一账户不同交易的实时并发,可追溯性弱;Account-NFT型货币更能支持并发并具有可追溯性,但数据存储、交易处理压力更大,同时面临找零不便的问题;Account-UTXO型模型既能满足并发性,又可以通过“合成交易”使账户保持少量大额UTXO,避免交易时涉及多个UTXO,缓解交易处理造成的压力,一定程度上结合了Account-Account型货币和Account-NFT型货币的优点。

  作者中国银联股份有限公司 李艳丽;复旦大学应用经济学博士后流动站浦发银行博士后工作站 李庆祥

  近年来,央行数字货币受到了各国央行、金融市场、支付领域的广泛关注,国际清算银行(BIS)联合7国央行发布的报告(Group of Central Banks)显示,全球80%的央行正在研究央行数字货币,其中一半已经从概念发展到试验和试运行阶段。世界主要央行都表达了对央行数字货币的关注:美联储对央行数字货币的态度由2020年之前的冷淡变为积极,并于2020年2月表示正在研究央行数字货币,同年5月,数字美元基金会和埃森哲发布《数字美元项目白皮书》(Digital Dollar Foundation and Accenture),2021年4月16日,美联储表示研究数字美元是“优先级项目”;欧洲央行于2020年10月12日至2021年1月12日开展关于数字欧元的公共咨询;英国央行也于2021年4月宣布与财政部联合创建央行数字货币工作组;中国央行早在2014年便启动了数字货币研究,并于2020年开始试点。但目前看来,各国央行对于央行数字货币的发行动机和设计方案尚未形成统一的认识,从整体来看,全球央行数字货币的发展尚处于初级阶段。鉴于正在研究或正在测试的央行数字货币技术方案存在多种模式,本文将对央行数字货币可选的技术路线进行介绍并进一步探讨其优劣。研究一方面有助于理解不同央行选择特定技术路线的依据,为进一步优化中国央行数字货币设计方案、思考不同央行数字货币之间(尤其是当不同国家技术路线存在差异时)的衔接融合方案提供参考,另一方面为后续央行数字货币与其他支付方式的衔接融合提供参考。

  在央行数字货币技术路线可选项上,已有文献(Auer和Böhme,2020;Auer et al,2020;等)、央行报告、演讲等都作出了“基于账户”还是“基于代币”的分类,其中“基于账户”的货币的典型代表为存款,“基于代币”的货币的典型代表为现金。但部分学者(Lee et al,2020;Garratt et al,2020;等)认为“基于账户”和“基于代币”的分类容易引起混淆。本文也未采取上述分类,理由如下。

  一是存款本身是记账货币,而且其采用的记账模型是账户余额模型,即一个账户只记录一个存款余额,账户状态即为存款余额状态。将存款称为“基于账户”的货币,“账户”一词不知是强调了存款为记账货币这一特点,还是强调了存款记账时采用账户余额模型这一特点。

  二是现金本身具有实物形态,是一个可以被转移的对象,而且是“一个一个”,具有个体的概念。将现金称为“基于代币”的货币,“代币”一词不知是强调了现金作为实物货币这一特点,还是强调了现金具有个体概念这一特点。

  三是代币在加密货币社区在泛指归属权可以被转移的资产,这与其在央行中的语义存在差异,所以“基于账户”还是“基于代币”的叫法比较容易造成混淆。

  四是账户和代币两者的语义没有对立,例如现金也可以被账户记录,因此,用不对立的两个词去表达对立的技术选择方案,容易造成混淆。

  鉴于“基于账户”还是“基于代币”的分类容易造成混淆,本文采用“基于对象的货币”和“记账货币”的术语来表示央行数字货币可选的两条技术方案。其中基于对象的货币强调货币是一个可转移的对象;记账货币则依托于账本,就是账本上记载的信息片段。在具体介绍央行数字货币分类前,有必要对基于对象的货币、记账货币进行更深入的分析,以更好地展示分类下货币的特性差异。

  历史上,基于对象的货币仅表现为具备物理实体的货币,称为实物货币,但在数字时代,货币也可以是数字对象。类似于其他“数字对象”,作为数字对象的某个代币也可以像文件一样传输、下载,在不同客户端之间进行转移。因为“实物”一词通常指看得见摸得着的物理实体,故建议用“实物货币”代表不依托IT基础设施、以物理实体形式存在的货币,用“数字对象货币”代表依托IT基础设施、具备特定数字格式、可传输可下载的货币。数字对象货币是央行数字货币一种可能的方案,其将实物货币升级,从实物对象变成了数字对象,但货币确权和转移的方式与已有的实物货币相同。本文将实物货币和数字对象货币统称为基于对象的货币。

  在“基于对象的货币”的大类下,货币都是一个一个的,且自带“个体”属性。对相同面值的个体货币来说,支付功能的完成不强调个体之间的异质性,例如两个硬币可以设计得有差异,也可以完全无差异,都不影响支付的完成。但是在“记账货币”的大类下,货币不一定具有“个体”属性,而记账货币一旦具有“个体”属性则必须是异质性的个体。不具“个体”属性的货币代表为存款,存款账户只记录存款余额,这样的货币被以太坊称之为同质化代币①,这种货币不强调个体性和异质性,彼此无差异,可无限分割。而在“记账货币”下,货币也可以具备“个体”属性,而且不同“个体”之间必须是异质的,不然无法对货币在个体层面进行记账,例如以太坊定义的非同质化代币②,其具有唯一性、不可分割性和异质性。此外,比特币作为记账货币,其采用UTXO记账模型,每个UTXO也是非同质的个体。

  支付行为的核心在于货币的确权和转移,基于对象的货币与记账货币的分类依据是物理形态的差异,但是物体形态的差异决定了货币确权、转移方式的差异。刘昌用(2020)在对实物货币和记账货币的界定中指出了两者在确权及转移方式上的不同。对基于对象的货币来讲,以对象的持有进行货币确权(即现金在谁手里,谁就具有现金的所有权),以对象转移完成货币转移(即现金从张三到李四,现金所有权从张三转移到李四)。另外,对象确实可以被计入账户,但是记账不是确权本身,只是对确权结果的记录(因为用户手持100元现金,所以现金账户才被记上了100)。对记账货币来讲,则通过记账完成货币的确权与转移,账本某时刻的状态代表了不同账户对货币的持有(例如张三的存款账户余额状态为100元,表示张三持有存款100元,具有花费100元存款的权利),账本状态的更新代表了货币转移(例如张三转账给李四20元,则张三账户余额和李四账户余额分别减、增20元,相应权利发生转移)。理解记账货币的关键是理解“状态”和“状态转移”,交易或者支付的发生使账本从状态t0转变为状态t1,完成货币转移。由此可见,货币在形态上的差异(依托于客观可转移实体还是记账货币),实际上也是货币的确权和转移方式的差异。

  在“基于账户”和“基于代币”的二分法中,Kahn和Roberds(2009)将两者的不同归结为每个系统所需的验证信息类型的不同,指出“基于账户”的支付系统要求以付款人和收款人的名义持有账户,pg电子官网该系统是否成功取决于参与者是否能够验证账户持有者的身份;“基于价值存储”(即一般表述中基于代币的货币)的支付系统是支付客体(Payments Object,即代币)在付款人和收款人之间的转移,该系统是否成功很大程度上取决于收款人验证代币真伪的能力。实际上,货币所需验证信息的不同取决于货币是否为记账货币以及货币是否具有“个体”属性。

  交易发生时,可能需验证两件事:验证货币属于付款人,验证货币本身的真伪。一是“验证货币属于付款人”这一验证步骤与记账货币挂钩。对于基于对象的货币来讲,谁手持货币谁就拥有货币,进而“验证货币属于付款人”这一步骤被省略;对于记账货币而言,因为货币以账户为载体进行记录确权,需要验证货币属于付款人。“验证货币属于付款人”又被分成了两步:验证货币属于账户,验证账户持有人是付款人。在“验证货币属于账户”时,对于采用账户余额记账模式的货币来说,该验证过程异化为“账户余额是否大于所需转账数额”,对于“个体”概念的货币来说,该验证过程即验证某个具有特定标识的货币属于账户;在“验证账户持有人是付款人”时,实际上与更广泛的用户身份认证的验证方式保持一致,典型的有通过“账号(账户标识)+密码”来确定付款者身份和通过“私钥签名-公钥验签”来确定付款者身份。二是“验证货币本身真伪”这一步骤与货币是否有“个体”属性挂钩。不具备“个体”概念的货币(仅记录账户余额的记账货币)无所谓真伪,因为只记录了账户余额,但具有“个体”概念的货币必须鉴别真伪,对于基于对象的货币需要防伪技术来避免造假,对“个体”概念的记账货币,则必须鉴别某个货币的存在性即真伪性。

  根据确权和转移方式的不同,货币可分为基于对象的货币和记账货币两个大类,相应的央行数字货币技术路线的两个方向是Digital Object型(数字对象型央行数字货币)和记账货币,而按照记账模型的不同,记账货币又进一步细分为3类:Account-Account型(记账货币-账户余额记账模型,“-”前的Account代表记账货币,“-”后的Account代表账户余额)、Account-NFT型(记账货币-非同质化代币记账模型)、Account-UTXO型(记账货币-UTXO记账模型),本章将对以上央行数字货币的4种技术路线进行具体介绍。

  与现金最接近的方案是将央行数字货币设计为数字对象,且作为数字对象的某个代币可以像文件一样传输、下载,并在不同客户端之间进行转移。但是音乐、视频等数字对象的传输为复制操作(音乐、视频等数字对象的网络传输是复制操作,即客户端A把对象传给客户端B,等于客户端A复制该对象后把副本传给了客户端B,客户端A仍旧还持有原对象),而数字对象的货币需要具备物理上不可复制的功能,或者说在货币被转移至新设备后,原设备中不能再存在该数字对象。

  用户B向用户A进行支付,过程即为数字对象从用户B设备转移至用户A设备,通过对数字对象的持有来进行确权,确权的关键在于:验证该数字对象的线所示。

pg电子官网:广东省金融科技学会(图1)

  Account-Account型央行数字货币的特征符合以太坊ERC20代币标准,这类货币的特征如下:Account-Account型货币完全同质、互相可替代、无限可分,这决定了该类型货币可以设置任意转账精度,不过实际中由于货币计量单位最小到分,故转账最大的小数点位数为两位;Account-Account型货币不强调个体概念,转账时只关注转账总金额;在Account-Account型记账模式下,最小“状态”单元在账户级别,账本跟踪的是每个账户的账户余额,即账户的全局状态,账户状态构成了账本状态;交易通过作用于账户状态完成账户状态转移,进而完成账本状态转移。

  交易222表示用户B③(账户地址bb75a980)向用户A(账户地址14c5f8ba)支付134.65元,交易只涉及转账总金额,交易只改变账户全局状态(即账户余额),账本也只跟踪账户全局状态。例如交易前账户14c5f8ba的状态是“账户余额20¥”,交易使账户状态发生转移,交易后账户14c5f8ba的状态是“账户余额154.65¥”,每个账户的账户余额状态构成了账本状态。交易验证(或者确权)的关键在于:验证账户余额大于转账金额,对账户持有人进行身份认证,如图2所示。

pg电子官网:广东省金融科技学会(图2)

  NFT是Non-Fungible Token的缩写,借用了以太坊ERC721代币标准中非同质化代币的概念。将央行数字货币设计为彼此非同质的NFT是可选的设计选项,Account-NFT型央行数字货币的特征:货币具有个体概念,每个货币(或称NFT)都具备独一无二的身份信息(tokenId),NFT之间非同质、彼此不可互相替代;每个NFT都不可再分割,这决定了NFT不能进行任意精度的转账,其精度依赖于NFT的面值设计,取决于最小面值NFT;其最小“状态”单元在单个NFT级别,账本跟踪了单个NFT的状态,单个NFT状态构成了账户状态和账本总状态;交易通过作用于单个NFT的状态完成货币转移,单个NFT的状态是指该NFT目前属于哪个地址(账户)。

  交易001表示用户B(账户地址bb75a980)向用户A(账户地址14c5f8ba)支付100元,交易通过用户B对用户A发送代币CY000001和代币CY000002完成,此操作的记账本质是通过交易将上述两个代币的状态从“属于地址bb75a980”变为“属于地址14c5f8ba”,这体现为总账本中每个代币状态的更新。而在账户层面,交易体现为每个账户所持代币的变化,账户状态或者说账户余额即为账户中所有代币面值的总和。例如交易前地址14c5f8ba对应的账户中只有代币CY000003和CY000004,账户余额为20¥;交易后账户14c5f8ba增加了CY000001和CY000002两个代币,账户余额为170¥。交易001验证(或者说确权)的关键在于:验证代币CY000001和代币CY000002为合法代币且属于账户bb75a980,验证用户B是账户bb75a980的持有人,如图3所示。

pg电子官网:广东省金融科技学会(图3)

  Unspent Transaction Output(UTXO),译为“未花费交易输出”,是比特币所采用的记账模型,与传统账户余额的记账模型相差较大,现结合图4进行详细介绍。

pg电子官网:广东省金融科技学会(图4)

  UTXO产生和使用过程如下:交易编号为002号的交易为创世交易,此为货币发行交易,在这个交易中,“输入”部分没有引用前面产生的UTXO(即没有引用前面的“输出”),而是由系统直接生成新输出,放在002号“交易输出”部分,这笔“交易输出”就被称之为是用户B的未花费输出,即用户B拥有该UTXO,而该UTXO由“交易编号002”和“输出所在序号0”唯一确定。

  交易编号为111号的交易为普通交易,此时输入为已经产生尚未花费的UTXO,输出(生成)新的UTXO。具体地,用户B使用属于其地址的两个UTXO作为交易输入,即UTXO(交易编号002,序号0)和UTXO(交易编号033,序号1),并生成3个新的UTXO,分别是UTXO(交易编号111,序号0)、UTXO(交易编号111,序号1)、UTXO(交易编号111,序号2),分别代表用户B转账14.8元给用户A,转账1.47元给用户C,同时为自身找零1元。

  结合Zahnentferner(2018)等文献的介绍,UTXO特点如下:UTXO产生于交易的输出,新交易会引用前面交易的输出作为新交易的输入,所有输入总金额与输出总金额相等(若不考虑支付给矿工的费用);根据需要可产生任意面值的UTXO;UTXO作为交易输入被花费时只能全部被花费,如果转账金额小于输入所引用的UTXO的面值,通过产生新UTXO进行找零;UTXO只能被花费一次,花费掉的UTXO标记为已花费,不能再次使用;UTXO不能保存状态,其只有两个状态(已花费、未花费);一次交易可以引用多个UTXO,并产生多个UTXO;一个交易内可完成多对多转账(不同交易输入可分别来自不同账户,只要证明特定输出属于某账户,且提供该账户正确签名即可;交易输出也可同时输出至多个账户)。

  结合上述UTXO特点,需要注意的是,使用UTXO记账时,账户可以自己对自己转账,将账户内多个小额UTXO合成一个大额UTXO,这一操作可以解决UTXO面额任意给交易处理带来的计算复杂度问题,且使用大额UTXO远比使用小额UTXO更方便、更高效。转账时,如果账户只有小额UTXO,则需要在多个小额UTXO中选择哪几个用于转账,因UTXO面值任意,系统只能通过查询每个UTXO的具体信息来确定UTXO的面值,这被以太坊称为“价值盲症”(Value-blindness)。“价值盲症”意味着在决定使用哪几个UTXO进行转账时,只能够低效地挨个搜索,挨个相加,这增加了交易处理的计算量。而当账户持有大额UTXO时,则不需要再选择需用于转账的UTXO,只需使用已有的大额UTXO生成用于转账的UTXO和找零UTXO即可。所以,在UTXO记账模型下,使用“合成交易”将多个小额UTXO合成大额UTXO是有利的。

  交易111表示用户B(账户地址bb75a980)同时向用户A(账户地址14c5f8ba)和用户C(账户地址xb67o90v)分别转账14.8¥和1.47¥,并对自己找零1¥。交易通过花费已有UTXO(UTXO1和UTXO2)并生成新UTXO(UTXO3、UTXO4、UTXO5)完成,该过程体现为总账本中已有UTXO状态从“未花费”变为“已花费”,并记录新产生的UTXO状态为“未花费”。在账户层面,交易体现为每个账户所持UTXO的变化,账户全局状态即为账户中所有UTXO的面值总和。交易111验证(或者说确权)的关键在于:验证UTXO1和UTXO2曾被生成且尚未被花费,验证UTXO1和UTXO2属于账户bb75a980,验证用户B是账户bb75a980持有人,如图5所示。

pg电子官网:广东省金融科技学会(图5)

  在对基于对象的货币与记账货币进行比较之前,需明确基于对象的货币也能被记录到账户,央行有能力通过记账对每个货币进行追溯,但央行不必多此一举地将央行数字货币设计成基于对象的货币之后再记账,可直接设计成记账货币,故后续讨论中基于对象的货币不考虑央行还要对其进行追溯的可能性,其运营模式等同于已有的现金。

  第一,央行数字货币在Digital Object型与记账货币中进行选择,体现了央行在隐私保护与加强监管之间的权衡。已有文章(Goodell et al,2021;Garratt和Van Oordt,2021;等)指出,现金的一个重要特性在于其对隐私的保护,与现金类似,Digital Object型货币可以允许各方在完全匿名的情况下达成交易,这一设计极大地保护了交易者的隐私,但可能会增加洗钱风险。与之相反,记账货币不管由谁来记账,都会产生数据,这些交易数据可以被用来构建个人画像、进行交易监控等,这带来隐私保护问题。因此,交易数据的收集、访问和使用应是记账货币设计中需重点考虑的问题。而记账货币不仅降低了反洗钱风险,而且还方便央行通过记账更全面地掌握宏观经济运营情况、更深入地了解金融机构资金流向,为制定相关宏观调控政策和金融监管政策提供参考。当然,记账货币下也可以匿名,但这里的匿名仅仅是记账时没有对账户实行“实名制”,即账户与个人身份信息进行了解绑,记账主体依然全面掌握每个账户的交易情况。

  第二,基于Digital Object型货币而构建的支付体系在流通环节“去中心化”,对所有货币持有者实现“无差异非歧视”;记账货币可能会造成货币与发行方或托管机构的捆绑,具备对不同账户持有人实行歧视的灵活性。Digital Object型货币与账户的解绑会为其带来“去中心化”优势,除了发行环节由央行统一发行以外,Digital Object型央行数字货币在流通环节是“去中心化”的,即不需要托管机构的介入,这意味着货币持有人不会被托管机构通过某些措施限制其货币使用。与之不同,记账货币如果由中心化机构进行发行并记账,则会为货币发行方或托管机构带来权利,例如微信余额可以通过设置“提现”功能,将用户限定在其生态之内。Digital Object型货币与账户的解绑还说明Digital Object型货币的使用不需要任何身份证明,故持有人不会因为“身份”而被区别对待,货币在不同持有人手中完全“无差异非歧视”;记账货币与账户进行了绑定,记账货币可根据账户的不同,对不同持有人实行歧视。

  第三,货币的物理形态会影响“货币本身持有成本”和“互操作成本”。Digital Object型货币相较于记账货币对现有金融体系的潜在影响可能更小。自央行数字货币概念提出以来,部分学者(Broadbent,2016;等)曾表达了对于“狭义银行”的担忧,认为由于数字化特性,在银行危机时刻,银行存款可能会快速、大规模地向央行数字货币转移,引发狭义银行。狭义银行的过程实际上是居民在不同资产(存款和央行数字货币)之间进行了重新配置,表现为在居民资产负债表的资产端,将存款换成了央行数字货币。不只是居民的资产负债表,商业银行资产负债表的资产端,也面临着央行数字货币与超储的相互转换,而商业银行在央行数字货币与超储之间的转换会影响货币政策的实施效果,例如央行意图通过对超储实行负利率(即欧洲央行和日本央行采用过的“负利率”政策)来促进商业银行放贷,但是如果商业银行能够在超储和央行数字货币之间进行低成本快速转移,那么仅针对超储实施的“负利率”政策将会失效。一个值得思考的问题是同样作为央行负债,现金为什么不会引发狭义银行,除了现金计息方面的设计外,另一方面的原因可能在于现金的物理形态天然增加了持有现金的成本和不便利性,增大了现金与存款、超储的“摩擦”(即互操作成本)。而这些成本的存在使得商业银行不会因为超储负利率就大规模持有现金,更不会用现金代替超储对企业发放贷款,企业极少接受现金贷款,居民也不会大规模持有现金。但是数字化会降低央行数字货币的持有成本以及与其他货币的互操作成本,一个典型的情况是,将央行数字货币设计为Account-Account型,此时如果不人为设计摩擦,央行数字货币与存款、超储只需要账户层面的划账就能完成互操作,成本极低。就Digital Object型货币和记账货币两者的比较来看,从物理形态上Digital Object型更接近现金,可能增大持有成本和互操作成本,减弱对现有金融体系的影响。

  此外,现金具有结算最终性和交易并发性,而记账货币结算最终性依赖于其是否为全额实时结算,交易并发性依赖于记账模型的选择。

  如前所述,记账货币通过维护和更新账本状态来进行货币的确权和转移,而不同记账货币的差异来源于账本所需跟踪或记录的具体数据的差异,这将对账本维护成本、交易处理成本、交易并发能力等多方面造成影响。

  在存储空间节约方面,Account-Account型要显著优于Account-NFT型和Account-UTXO型;而Account-NFT型对存储空间的占用可以被央行估计,Account-UTXO对存储资源的占用取决于UTXO的生成情况,如果系统生成大量小额UTXO则可能极大地增加存储资源消耗,但是如果通过“合成交易”来生成大额UTXO,则在状态存储方面,可以一定程度地节约存储资源。

  一是账本系统需要存储的数据包括状态数据和交易数据,“状态”记录了当前货币的归属,“交易”是前一个“状态”到下一个“状态”的转移函数。

  二是对于“状态”或“交易”的存储,Account-Account型更节约空间。原因在于:Account-Account型货币记录的是全局状态(即账户余额),Account-NFT型和Account-UTXO型跟踪单个NFT或单个UTXO状态,全局状态个数少于单个NFT或单个UTXO状态个数,故Account-NFT型和Account-UTXO型需存储的“状态”个数更多,并且每笔“交易”的信息量更多,占用更多存储空间。④此外,Account-NFT会有额外的“找零交易”需存储,Account-UTXO为了交易处理的高效,会有额外的“合成交易”需要存储。

  三是Account-NFT型和Account-UTXO型可以只存储“交易”,由“交易”数据可知NFT或者UTXO的“状态”。对于Account-Account型货币而言,“状态”和“交易”是分离的,例如一条交易信息“张三给李四转了300块钱”,凭此消息是无法得知“状态”(此时“状态”为账户余额即张三和李四各自账户余额)的,所以以太坊主链(以太币属于Account-Account型)除了存储“交易”外,还要通过stateRoot跟踪“状态”。与之不同,对于Account-NFT型和Account-UTXO型而言,“交易”信息包含了“状态”信息(此时“状态”为每个NFT或UTXO的状态),例如一条交易信息“张三把编号a的人民币转给了李四”,通过交易信息即可得状态信息。但对于Account-NFT型货币和Account-UTXO型货币而言,如果只存储“交易”数据,而不存储“状态”数据的话,会影响交易速度。因为在验证NFT当前属于某账户或验证UTXO未花费且属于某账户时,需要遍历所有交易数据才能确定NFT或UTXO的当前状态。为此,对于Account-NFT型货币和Account-UTXO型货币而言,同时存储“交易”和“状态”会带来好处。

  在交易处理压力方面,相同转账需求下,Account-Account型设计在处理交易时对系统造成的压力更小;Account-UTXO通过同账户多个小额UTXO的“合成交易”会降低交易处理的压力。原因在于以下几方面。

  一是验证工作量存在差异。同样一笔交易用户A向用户B转账125元,在Account-Account模型中,一笔交易只需验证一次“账户余额大于所转账金额”,再验证一次签名;而在Account-NFT型和Account-UTXO模型中,交易涉及几个NFT或UTXO就需要对所涉及的全部NFT或UTXO“验证”,包括“NFT或UTXO为合法NFT或UTXO”“NFT或UTXO属于该账户”,最后再对签名进行验证⑤;同样,账户持有大额UTXO会降低交易处理压力,因为交易只需花费该大额UTXO即可,不需分别验证多个小额UTXO。

  二是交易涉及计算量差异。在Account-Account模型中,只需要在账户余额大于转账金额的前提下就可直接改变账户余额状态,基本没有计算量。但是在Account-NFT型和Account-UTXO模型中,需要选择用哪几个NFT或UTXO用于转账。Account-NFT型可以像现金一样设计成几类标准面值,每个NFT有固定面额,可降低计算量,但在Account-NFT型下,找零的需求可能带来“找零交易”。与可以有固定面值的NFT不同,UTXO可以被生成任意金额,如果系统从众多小额UTXO中选择用于转账的UTXO,无疑会增加计算量(Zhang et al,2021),解决方案是将账户内多个小额UTXO生成大额UTXO,尽管增加了“合成交易”,但整体仍旧会提高交易处理效率,缓解交易处理压力⑥。

  在交易并发方面,Account-NFT型货币和Account-UTXO型货币有更高的交易并发潜力,但并发潜力的发挥还有赖于IT系统的承载能力⑦。针对并发潜力,部分文章(Zahnentferner,2018;Brian,2018)比较了UTXO记账模型和账户余额模型的差异,指出UTXO具有更高的并发潜力,而不同记账模型并发性的差异,关键还是在于不同记账模型下,账本跟踪的“状态”及交易作用的“状态”存在差异。在Account-Account模型中,交易作用于账户全局状态,而在Account-NFT型货币和Account-UTXO型货币中,交易作用于单个NFT和UTXO状态。在Account-NFT模型下,不管账户正在发生多少交易,只要这些交易都是发生在不同NFT上,交易之间就不会相互干扰,所有交易可以并发,这与现实中现金的使用非常类似;UTXO比NFT更加灵活,即使使用一个UTXO,也能同时完成对不同账户的转账。但在Account-Account模型下并不能做到这一点,A对B和C的转账必须一笔一笔排队进行,不能并行,因为A分别对B和C的交易都依赖于“A的账户余额”这个共享状态,在A对B转账后账本只有在确认更新完A账户获得新的全局状态后,才能进行下一步交易。其关键点在于,从“状态1”到“状态2”的更新只能通过一笔交易更新一次状态来实现。实际上,如果多笔交易同时作用于同一NFT,也不能并发,只不过转账时多笔交易作用于不同的NFT。而UTXO与NFT的不同之处在于,NFT的状态是“该NFT属于哪个地址”,所以交易对NFT状态作用时不能并发,多个交易作用于同一NFT时系统无法确定NFT将转移到哪个地址;但是UTXO不同,UTXO的状态是“未花费/已花费”,所以多个交易可以作用于同一个UTXO,多个交易可以同时将UTXO状态从“未花费”变为“已花费”,而彼此没有冲突。

  在智能合约应用方面,Account-UTXO型由于无法保存状态可能会制约其智能合约的应用,而Account-Account型和Account-NFT型货币都能保存状态,且Account-NFT型货币在智能合约的应用上可能具备更大的灵活性。智能合约的概念由Nick Szabo在1994年提出,其对智能合约的原有表述为“智能合约是执行合同条款的计算机化交易协议”,智能合约的基本思想是:现实中的各种合同条款都可以被嵌入到计算机硬件和软件,通过这种方式使得违反合同变得困难(Nick Szabo,1997)。故智能合约指的是对“合约”的“智能”执行,其“智能”之处在于只要满足触发条件,合约就会自发执行、自动响应。所以智能合约就是一段程序或者说代码,现阶段其像“if-then”语句一样工作,当“if”规定的触发条件被满足时,在无人干预的情况下,程序会自动执行“then”后面的动作。而就记账货币的交易执行来讲,智能合约“if”中规定的触发条件涉及账本所记录的“状态”应满足的条件,而智能合约“then”中所执行的动作则涉及对账本状态的更改。从触发条件的角度讲,账本跟踪个体NFT或个体UTXO状态相较于跟踪账户的全局状态具备更高的灵活性,因为从个体NFT或UTXO状态可以知道账户全局状态。但从全局状态无从得知个体状态,跟踪个体状态,既可以针对个体NFT或UTXO的独立状态进行智能合约设计,也可以针对多个NFT或UTXO的联合状态进行设计,这其中包含了针对账户中所有NFT或UTXO总额这一账户全局状态的设计。从合约执行角度讲,智能合约通过执行合同对状态进行更改,与不使用智能合约转账类似,合约执行的并发性也取决于系统跟踪了账户全局状态还是个体状态。尽管跟踪个体状态会为智能合约的使用带来更大的灵活性,但在加密货币实践中,以太坊(Account-Account型)相较比特币(Account-UTXO型)对智能合约的应用更为成功,原因在于比特币存在编程语言的局限性以及UTXO在状态保存方面存在局限性。以太坊白皮书(Vitalik,2013)对此进行了阐述:“即使没有任何扩展,比特币脚本本身就是对‘智能合约’的实践……比特币UTXO还可以由基于简单堆栈编程语言的更复杂的脚本所拥有……比特币脚本语言缺乏图灵完备性,限制了智能合约的使用。比特币脚本语言支持很大一部分计算,但其不支持所有功能,缺少的主要类别是循环,这样做是为了避免在交易验证期间出现无限循环。从理论上讲,这一障碍可以被克服,因为任何循环都可以通过简单地使用‘if’语句重复底层代码多次来模拟,但是这确实导致脚本在空间上的低效……比特币状态缺乏。一个UTXO要么花费要么不花费,这使得需要保持中间状态的多阶段合同的实施变得困难。这也意味着UTXO仅适用于建立简单的一次性合同,而不适用于构建更复杂的‘有状态’智能合约……”⑧。

  在可追溯性方面,Account-Account型货币所具有的同质化特点使其可追溯性较差,而Account-NFT型货币和Account-UTXO货币中NFT和UTXO的个体性、异质性令其可全程追溯,且对Account-NFT型货币进行追溯会更容易。只要有交易信息,就可得知货币的流向,所以记账货币都具备一定可追溯的功能,区别在于可追溯链条的长短和追溯的难易程度。对于Account-Account型货币而言,通过交易信息,可知账户B里有价值100元的货币来自于账户A,但是账户A的这100元来自哪里则无法继续被区分,因为一旦该笔钱转入账户A并与其他货币混合,账户内货币具有同质性,使得Account-Account模型下对货币只能向上追溯一个账户,追溯链条较短。当然,通过交易数据确实可以知道用户A账户的资金来源渠道,但是用户A用于给用户B转账的100元到底来自哪一渠道,没有针对性。结合前文所述可以知道,在Account-UTXO下,每一笔交易的输入实际上引用的是前面交易的输出,在比特币交易数据中,交易输入中的解锁脚本(scriptSig)与前面交易输出的锁定脚本(scriptPubKey)串联完成交易验证,因此,想要追溯一笔钱的来源,沿着UTXO链条就可以追根溯源到创世交易。如前文图4所示,交易111的交易输入向上追溯来自交易002的交易输出和交易033的交易输出,交易033的交易输入又来自交易012的交易输出,可依次向上追溯,直至创世交易。但由于一笔输出可能来自多笔输入,追溯不能只沿一条链进行,一个新的UTXO会追溯到多个创世交易,而且随着后续新UTXO的产生,链条会越来越长,追溯难度也越来越大。极端情况下,如果每次新进入账户的UTXO都会与原来账户已经存在的UTXO通过“合成交易”生成一个大额UTXO,那么这种记账模型很类似于Account-Account,此时确实也能追溯,但是向前会追溯至众多创世交易,追溯失去了针对性。但对Account-NFT型货币来讲,因为账本跟踪的就是单个NFT的地址,只要查看某一NFT的历次交易数据,就可对该NFT进行追溯。因此,就可追溯性而言,Account-NFT型央行数字货币更容易被追溯。

  总结来看,在记账货币当中,Account-Account型货币因为仅记录账户余额,数据存储、交易处理压力更小,具备成本和效率优势,但其劣势是不能支持同一账户不同交易的实时并发、可追溯性弱。与Account-Account型货币相比,Account-NFT型货币因为NFT具有个体性、异质性,更能支持并发、具有可追溯性,但数据存储、交易处理压力更大,同时面临找零不便的问题。而Account-UTXO型货币也面临数据存储、交易处理的压力,但如果通过“合成交易”将同一账户的多个小额UTXO生成大额UTXO,将有利于缓解UTXO记账模型的交易处理压力,同时UTXO能很好地支持并发,但其不能保存状态的特性可能不适用于构建复杂的需保持中间状态的智能合约。但从整体上看,Account-UTXO型模型结合了Account-Account型货币和Account-NFT型货币的优点,既能满足并发性要求,又可以通过“合成交易”使账户保持少量大额UTXO,避免交易时涉及多个UTXO,交易处理的压力小于Account-NFT型货币。

  根据货币形态、确权及转移方式的不同,央行数字货币技术路线的两个方向是Digital Object型和记账货币,而按照记账模型的不同,记账货币又进一步细分为3类:Account-Account型、Account-NFT型、Account-UTXO型。本文在对4种技术路线进行介绍的基础上,比较了不同技术路线的优劣,基本结论和启示包括以下两方面。

  一方面,全球央行对央行数字货币的设计方案存在不确定性,记账型央行数字货币可能出现,同时不应排除将央行数字货币设计为Digital Object型货币的可能。虽然货币的形态一直有实物货币和记账货币之分,但是就面向公众发行的公共货币来讲,其一直以实物货币的形态出现,故央行数字货币的方案之一是类比实物货币的确权和转移方式,设计成Digital Ojbect型货币。这一类型的数字货币与现有现金最为接近,其完全匿名性有利于保护隐私,并且其对现有金融系统的影响也可能最低,故不应排除将央行数字货币设计为Digital Ojbect型的可能。但随着央行数字货币的发展,还可能会出现记账型央行数字货币。从3种类型的记账货币来看,Account-UTXO型与传统Account-Account模型相比的优势在于并发能力更强,同时交易处理对系统的压力可能小于Account-NFT型。

  另一方面,无论央行数字货币选用哪种形态,其与现有货币形态的差距并不大。Digital Object型货币虽然是现金的数字升级,Account-Account型货币在记账模型上与存款一致,而Account-NFT型货币和Account-UTXO型货币是在记账模型上发生了变化,但仍是记账货币。故央行数字货币与其他支付方式的衔接融合方案可参考现有现金、存款与其他支付方式的衔接融合方式。其中,Digital Object型货币与其他支付方式的衔接可参考现金;记账型央行数字货币与其他支付方式的衔接,可参考不同银行存款之间的互操作,其重点在于实现不同账本之间的信息交互,使得不同账本基于同笔交易对账本状态进行正确更新。

  [7]刘昌用. 货币的形态:从实物货币到密码货币[J]. 重庆工商大学学报(社会科学版),2020(2):9-22.

  ①理解同质化代币可参考以太坊ERC20代币标准。在以太坊中,可以通过部署智能合约发行合约代币。为服务于合约代币的发行,以太坊给出了不同的代币标准,而代币标准定义了代币转账、代币授权等功能函数,合约会调用这些函数完成相关操作。以太坊ERC20标准定义了同质化代币交易中所需的功能函数。

  ②理解非同质化代币可参考以太坊ERC721代币标准,该标准定义了非同质化代币交易中所需的功能函数。

  ③实际情况下,用户不一定只拥有一个账户,且只有账户标识与用户身份信息进行绑定后,才能确定账户属于哪个用户,但为了便于理解,本文在介绍3种记账模式时,假设用户与账户地址是一一对应的关系。

  ④在这里,笔者分别举例说明。“状态”存储:假设一个账户A里存有3张100元钱,分别编号001、002、003,那对于“账户余额”进行存储,仅需存一条数据(账户地址:A;余额:300;),但要对每个NFT的状态进行存储,则需要存3条数据(NFT编号:001,所属账户:A;)、(NFT编号:002,所属账户:A;)、(NFT编号:003,所属账户:A;);如果通过“合成交易”令账户主要持有大额UTXO,则UTXO“状态”数据对存储空间的占用介于Account-Account型和Account-NFT型之间。“交易”存储:假设账户A向账户B转账125元,以Account-Account型货币进行交易的信息更简单,仅记录账户余额,在Account-NFT型、Account-UTXO型记账模型下将涉及多个NFT和UTXO从账户A到账户B的转移,交易信息量更大。

  ⑤在Account-NFT型和Account-UTXO模型下,签名粒度是可选的,即交易提交时,可能是对涉及到的每个NFT和UTXO进行单个签名,验签时每个NFT\UTXO单独验证;对于来自同一付款账户的转账,也可能是将交易涉及的全部NFT或UTXO信息汇总在一起进行签名,对整笔交易验签。

  ⑥在此本文只讨论UTXO这一记账模式对交易处理能力的影响。比特币确实采用了UTXO的记账模式,并且其每秒处理的交易笔数确实比较低,这与其采用的记账模型关系不大。拖累比特币交易处理能力的原因如下:第一,为了“去中心化”,交易打包环节,为保证新区块有足够时间在全网进行广播,保证全网交易数据一致,令比特币保持10分钟出一个区块,而区块受本身大小所限,所能包括的交易数量有限,故区块链在一定时间内处理的交易数量有限;第二,比特币不仅出块较慢,而且在交易打包进一个区块后,还不能认为转账成功,一般要等后续6个新区块产生后才能确认转账成功。

  该讨论的前提是记账货币实行全额实时结算,即账本会根据每笔交易实时更改账本状态,不涉及对多笔交易进行轧差后只将账本更改至最终状态的情况,且并发指的是同一账户多笔交易的并发。

  ⑦该讨论的前提是记账货币实行全额实时结算,即账本会根据每笔交易实时更改账本状态,不涉及对多笔交易进行轧差后只将账本更改至最终状态的情况,且并发指的是同一账户多笔交易的并发。

  ⑧UTXO本身只有“未花费”“已花费”两种状态,在状态存储方面存在缺陷,但这一缺陷可以通过额外的字段对合约所需状态进行存储来弥补。例如,针对资金的花费路径设计一份智能合约,该合约的目的是帮助银行掌握资金流向,如果银行贷出的某笔资金在5次流转之内,有70%进入了房地产领域,则银行会要求初始贷款人提前还款。那么智能合约要做的是记录资产流转次数与判别交易类型,如果次数在5次以内,且用于房地产交易,则记录该资金为流向房市资金。在这里,因为UTXO无法保存状态带来了困难:一方面,UTXO在一次花费之后就不再存在,所以不方便计数,难以判定该笔资金的流转次数;另一方面,新UTXO只有交易金额和当前账户信息,没有初始贷款人的账户信息,难以知道进入房市的资金最初来源于哪笔贷款。但是这一问题可以通过增加额外的字段对状态进行保存来解决,额外字段可以用来计数与保存之前资金所历经的账户。

 
友情链接
PG电子

扫一扫关注我们

热线电话:400-123-4567  公司地址:广东省广州市天河区88号
Copyright © 2012-2018 PG电子·(中国)官方网站 版权所有  xml地图  网站地图  备案号:吉ICP备15000260号-1