最近,关于中央银行数字货币dcep ( digital currencelectronicpayment )的新闻相继出现。 Facebook对libra数字货币的影响,以及政府将块链定位为核心技术自主创新的重要突破口。 在中央银行数字货币研究所的穆长春对DCEP和libra的分析比较中,我对DCEP的顶级设计很感兴趣,但目前有关DCEP的报道都是基于宏观。
作为技术人员渴望了解DCEP与分块链的对应点,仔细阅读横断面的数字货币系统的专利后,作为技术人员或分块链的员工查看DCEP的技术细节。
从数字货币系统的专利来看,DCEP没有采用分块链技术,感觉是以中央银行为中心的系统。 其实,最终权利和义务是平等的,中央银行承担着法币兑换的义务,这个记账的权利当然也可以理解为他应该承担。 当然,从一些自由主义者的角度来看,这种做法并不纯粹,而是缺乏决策。 但是,去中心化的不是银弹,不能对他寄予希望来解决所有的问题。 相反,是否选择中心化需要与当前场景的主要矛盾一致,如果公平或透明诉讼成为主要矛盾,则选择中心化是一种好的解决方法,但在当前许多领域,效率需求是主要矛盾,因此在这些场景中选择中心化的效果
其次,本文根据数字货币系统的专利,从DCEP的特点、实现的详细情况、离线支付的场合进行重点介绍。
DCEP的特点
DCEP的特点主要表现在两个方面,一是金融特征,一是技术特征。 专利主要阐述了技术特点,金融特点主要来源于穆长春在公开课上的报道。
对于金融特色的替代方案M0,DCEP首先替代M0,即替代现金,因为m-1、m-2已经被数字化,所以m-0也是相对完整的对中央母亲资金的监控。 另外,从现金开始,因为现金只是承担着货币的功能,对社会的影响不是很大。
双重运营模式是指上层是人行横道对商业银行,下层是商业银行或商业机构对平民。 也就是说,商业银行横向交付100%的准备金,横向交付与商业银行同额的DCEP,接着用户用现金和存款等将DCEP兑换成商业银行。 如果横跨者直接面向平民,理论上也是可能的,横跨者必须面对全中国的所有消费者,他必须设计一个满足用户体验和高性能要求的系统,显然横跨者不擅长这样做,所以最好的方法是由市场经济决定的,也就是面向用户的一方
论技术特点
该块指的是DCEP应该设计满意的一些特征,这些特征类似于基于块链(如BTC )的虚拟货币概念。 当然,比起与BTC等虚拟货币的概念相似,满足这些基本特征的是数字货币。 安全性-此请求可以防止任何一个业务更改或非法使用数字货币,这反映在对DCEP使用的监管中,并且可以中止某些非法交易。 不可重复的费用—这意味着只能使用一次数字货币,而且容易检测到重复的费用。 对于数字货币来说,这是基本的特性,因为一旦现金被数字化,数据的副本是不可避免的,例如,一个用户在100张DCEP上买了电影票,但是复制并消耗同一张DCEP时,同一张数字货币将重复使用 BTC在UTXO中实现了双花防止,Ethereum、libra在交易的seq中实现了双花防止。 DCEP采用了与UTXO相似的方式,这里的UTXO和BTC的UTXO的区别将在下面的文章中介绍。 现金是难以伪造的特性,物理上只能保证这些。 控制匿名性意味着即使商业银行和商户结盟也不能跟踪DCEP的使用,即除DCEP的发行方(人行横道)以外的其他结构不能跟踪用户的购买行为。 终于可以摆脱一部分隐私泄露的问题了。 不得伪造——众所周知,除发行人外,不得伪造。 现金由物理防伪手段保证。 对DCEP来说,做法简单,只有用中央银行的密钥签名的才是真正的DCEP。 说起来,在谷歌揭露量子计算的新闻之前,货币圈是各种各样的自我启发,感觉BTC被破解,量子计算真的出来了。 他的攻击目标即使不是核武器,也处于中央银行的水平,货币圈真的很重视自己。 公平性―支付过程公平,保证交易双方的交易过程成功还是失败,更恰当的是满足交易的原子性。 互换性这表示DCEP的发行和流通环节,应尽量参照现金的发行和流通。
DCEP实现详细信息
这里的实现细节,主要对上述特性进行说明。
货币模型
根据目前专利的研究,基本确定了DCEP是类似于UTXO结构的货币模型。 DCEP发行模式有三种方式(在此为了简单将中央银行的发行数字货币称为d货币),例如在中央银行的发行总量为100元、最小面为1点的情况下,中央银行根据发行10000张面额为1点的d货币的用户的具体的退款金额生产, 例如,如果一个用户通过转账获得12.34元的d货币,则中央银行发行了面额为12.34的d货币,由于流通中的实际货币面额,这与当前的实际现金最接近,例如中央银行发行的面额为100、50、20、10、5、1元等d货币,在后续的流通过程中是这样的
对于UTXO结构来说,这与BTC大不相同,UTXO代表未支出的交易,在BTC中代表你已有的馀额。 例如Alice将BTC交给Bob,如果对Bob来说不使用这个BTC,Bob就有1 BTC的UTXO,像现金一样Bob拿到纸币,如果不使用的话就成为你的钱。 鲍勃是怎样证明他有UTXO的? 简单来说,有关解开UTXO密钥的是谁、这个UTXO是谁、有哪个密钥、如何打开密钥,可以查询P2PKH、P2SH等信息,在下文中进行详细介绍。 DCEP通过注册中心完成UTXO的功能,下面详细说明如何做。
系统的核心要素
中央银行的DCEP系统主义功能是向法定数字货币的资金转移,由中央银行和各商业银行共同运营。 总的来说,DCEP的核心要素是一种货币、两个类库和三个中心。 一种货币:这里的一种货币是中央银行发行的法定数字货币,也就是说只有中央银行发行的这种法定数字货币才能转移到系统中。 如上所述,由于中央银行的秘密密钥签署的是法定数字货币,所以我们的电子钱包等内置中央银行的公开密钥,检验数字货币是否是从中央银行发行的。 两个库:两个库是发行库和商业银行库,这两个库是数据库。 例如,基于数字货币的发行总量,中央银行如上所述使用密钥签名生成对应于总量的数字货币,并将该数字货币存储在中央银行的发行库中。 如果某商业银行需要提取一定数量的数字货币,则相应的数字货币将被传送到该商业银行的商业银行库。 也就是说,数字货币从发行库移动到银行库。 应该注意的是,用户从商业银行提取数字货币是数字货币从银行仓库进入电子钱包过程中流通的一个环节。 三个中心:三个中心共有两种类型,一个是注册中心,另一个是认证中心。
注册中心主要管理数字货币的整个生命周期,包括打印、转移、销毁、回收等过程。 他主要有两块表,一块是数字货币权利登记表,另一块是交易流水表。 该权利登记表的作用是记录某面额的数字货币属于谁(如下图所示),每当数字货币转移时,在中央银行的登记中心对对应的数字货币的所有者进行变更,通过该表实现权利查询。 这里的关键是注册中心确定用户有多少钱。
认证中心分为CA认证和IBC认证两种。
CA认证主要用于相对高级的机构,IBC认证则用于个人。 在此引入认证中心的原因是,当用户或机构开始转移DCEP时,需要用他/她的私钥签名,即,转移的有效性是通过签名来保证的。 在一般意义上,在BTC、Ethereum、或Libra中,私有密钥是由用户自己创建并保存的,并且用户的地址是通过一系列运算( Hash、checksum )等从与私有密钥相对应的公共密钥获得的方式的优点在于资产账户和私有密钥自然地相连接,因此具有私有密钥 但是在DCEP中,由于具有监督这一特性,资产的归属和私有密钥是分开的,即,中央银行在用户注册了DCEP钱包后,通过认证中心向钱包用户分配私有密钥,用于证明该私有密钥是这个用户,该用户拥有数字货币 这里重要的是,用户的私钥由中央银行生成。
并且,在此简单地介绍IBC认证,IBC ( identity-based cryptographic,基于身份的加密系统)是基于身份的加密系统还是非对称的私有密钥系统,其与CA认证的最大差异不需要证书,用户id,例如移动电话号码, 以邮件地址等作为公开密钥,ibc认证中心根据用户id生成对应的私有密钥,用户id自身是公开密钥,因此,能够通过用户id确认身份的有效性,所以不依赖于证书和证书管理系统。 当然,此时,中央银行的公开密钥和用户的私有密钥、证书数据是重要的,因此需要将此数据存储在SE区域。
通过一种货币、两个类库和三个中心的介绍,您可以了解DCEP的一些顶级设计原则,然后将具体场景结合起来,一次性实现顶级设计逻辑。
DCEP的具体方案说明
在货币模型中提到了关于DCEP面额的3个方案,在此以第三固定面额进行介绍。
打印
与纸币的印刷过程相比,DCEP的印刷实际上是生成中央银行签名的数字序列,在此基于数字货币系统的专利,介绍如何生成这个成分的足够的数字。 中央银行的主密码和面额为1,5,10,20,50,100,分别生成6个基本密码。 这六个加密密码分别用于不同面额的数字货币。 混列算法生成系统随机数,该随机数与纸币的冠字号相同。 与步骤1中生成的基本加密密码进行随机数加密,生成加密密码。 此加密密码实际上支持特定冠字大小的数字货币。 中央银行用密钥签署加密密码,产生了新的法定数字货币。
下图显示了打印过程
用户登录
现简单介绍一下注册过程,商业银行系统对连接中央银行的认证中心和注册中心。 用户下载对应的商业银行的电子钱包APP用户,在APP的注册页中注册相关的信息,例如姓名、身份证书号码、移动电话号码、住址等信息,将移动电话号码注册为IBC的公开密钥,IBC在完成唯一性验证后,IBC生成该用户的私有密钥。 用户登录后,将下载用户的私钥和中央银行的公钥数据并将其存储在SE区域中。
提取
在此介绍用户通过商业银行帐户提取法定数字货币(简称d货币),例如用户从自己的工商银行帐户取150元,兑换成d货币。 用户登录钱包APP,选择“提取数字货币”,选择工商银行,然后输入折算为银行帐户的数字货币金额。 商业银行验证此请求的合法性:验证帐户密码、用户帐户资金是否足够以及商业银行银行库的d货币是否足够。 在合法性验证通过后,商业银行从该用户的商业银行账户减去250元,从银行库支出D100,D50 (D100表示面额为100的d货币),并将这些信息传送给中央银行的数字货币系统。 中央银行数字货币系统在接受商业银行数字货币系统的请求后,进行发送来的D100和D50是否属于该商业银行、对应的签名验证等。 验证通过后,注册中心将变更商业银行送来的d券所有者信息,将工商银行所有者变更为其用户,记录对应的交易流程。 完成完整操作后,将成功处理的信息返回商业银行。 商业银行向用户的手机终端发送d券时,用户的手机终端有D100和D50。 需要注意的是,你有没有这张150元的d票,是由注册中心决定的,而不是你的手机保管这张150元的d票。
关于双离线支付场景分析
与支付宝等电子支付相比,DCEP具有离线支付的特性。 这个特性非常重要,因为DCEP是现金的数字化特性,所以需要现金的特性,如果有一天发生巨大地震、战争等恶劣情况,互联网不能使用的话,预计DCEP如果不支持双离线支付,普通人就不能正常生活 因此,尽管出现由双重离线支付的场景的概率非常小,但是应当支持这种功能。
在数字货币系统的专利中提到了双重脱机支付的解决方案。 例如,a用户的电子钱包中有D100,如果a、b用户现在脱机,则需要向b用户支付D100。 a用户打开APP后,选择脱机付款功能,输入付款额和收件人信息,然后单击“付款”。 a用户用自己的秘密密钥签名上述信息,用NFC等近距离通信对收件人的移动电话号码和识别其他收件人的信息进行加密并传送。 b用户APP在接受加密的信息后,解密并验证d货币的合法性和金额是否相同。 此时,对于a、b用户来说,双离线支付已经完成,但是此时b未接收到实际从a交给d的货币,在APP接口中接收到的d货币应该不正常(不可用)。 然后,b用户的APP在进入在线状态后,将支付信息传送到商业银行的数字货币系统。 商业银行收到该支付信息后,在验证合法性后,将该信息发送给中央银行的数字货币系统。 中央银行数字货币系统在收到付款信息后,完成与在线付款类似的验证,然后更改所有者,将原属于a的d货币更改为b用户,并将结果返回商业银行。 当商业银行收到成功资讯时,系统会通知a、b使用者APP交易成功讯息,并启用b使用者收到的d币别状态。
因此,如果a转让给b,则a转让给b的d货币不会转让给c,直到b连接到网,该双重离线支付不能完成链支付。 总的来说,感觉这个解决方案只能用于暂时的脱机状况,例如在地下停车场或者网络不好的地方进行支付。
另外,在双离线的支付场景中,在用户利用某些漏洞实施双重花卉的情况下,在专利中是以事后追究责任的形式进行处理的。
为什么按DCEP
推进DCEP的理由是内部加强资金流动监管,提高金融稳定性,加强反腐败、反洗钱能力。 对外有利于人民币国际化,但人民币国际化不会因人民币数字化而成功。 国际化的背景必然是我国国力强,坚持以真理说服人。 但是,DCEP可以降低国际友人的使用门槛,随着中国消费者出国进行海外消费,在不久的将来,我们国际友人也可能不需要用手机号码登记钱包,开户。
不久的将来,自上而下地整理说服者,自下而上地通过消费者向国际友人使用人民币。