中国人民银行发行的法定数字货币,是现金货币的数字化,需要能够进行离线支付。但对于一个数字系统来说,离线支付是一个不小的难题。
央行所设计的DCEP,可以巧妙地通过利用密码学技术解决离线支付问题。
前文我们已经基本描述过DCEP的基础结构。
DCEP不同于账本模式,采用的是模拟真实货币的方式来进行的。其具体的支付行为不是通过记账而是通过货币所有权转换来完成。
而这就为离线支付提供了一个基础。
数字货币场景需要使用密码学来进行所有权验证,而基于密码学的所有权认证模式是不需要设备在线就可以完成的。因此,DCEP才可以进行离线支付。
基于数字证书的用户身份认证
实现DCEP离线支付的一个基础,就是要能在离线的状态下对用户的身份进行验证,保证交易双方的身份的正确性。
在账户体系的模式下,为了对用户身份进行验证,交易双方往往需要连接中心的服务器,依靠中心的服务器来对双方的身份进行认证。
这种模式实现简单,但是无法进行离线化。因为在这种模式下,交易双方必须在交易时在线。只有在线的设备,才能够连接中心服务器对数据进行验证。
而采用这种认证方式的原因,是每一次交易的对手方都可能是一个新的对手方。为了保证交易对手方身份的正确性,每次交易都要询问服务器对方身份是否正确。
在这种模式下,具体的认证流程如下:
想要解决DCEP离线支付的问题,第一步就要保证对用户的身份认证能够离线化完成。
所谓的离线化完成,就是保证用户在确认交易对手方时,不需要与中心服务器沟通,而是仅仅通过收到对手方的信息,就可以对其身份进行确认。
这种模式的实现,在DCEP中采用的是基于密码学的证书机制。
在对手方注册钱包的时候,会先把自己的公钥提交到认证服务器。认证服务器收到对手方提交的身份信息后,对身份信息进行核实,核实通过后,再向对手方颁发经过自己的私钥签名的数字证书。对手方收到数字证书后,将其保存在自己的本地。此外,由于密码学的限制,对手方是无法修改自己收到的数字证书的。
当交易行为发生时,交易方会内置认证服务器的公钥。同时,交易方会接收到对手方的数字证书信息。
由于之前对手方的数字证书已经经过认证服务器签名,交易方可以直接根据认证服务器的的公钥与数字证书信息认证对手方的信息。
基于数字签名的货币认证
DCEP基于数字证书的身份认证机制不仅仅应用在认证用户身份上,也应用在认证数字货币的发行流程与数字货币本身上。
在我们对DCEP的专利解读中,提到过数字货币的结构。
如下图所示,一张货币包含了数字货币额度控制位、货币所有者的身份标识、以及货币投放系统的数字签名。
对数字货币的校验是需要利用货币投放系统的数字证书与投放系统的签名进行验证,从而保证这张货币的真实性。
接下来,还需要对数字货币的额度控制位进行认证,额度控制位的结构大致与下:
对额度控制位的校验,是需要利用额度管理系统证书与额度管理系统签名进行验证,保证额度控制位的真实性。
一张货币只有同时满足如上两个条件,才能正式通过验证。
数字货币的这两个验证条件,使得在拥有额度管理系统证书的情况下,设备能够在本地通过计算来验证货币的真实性。
基于数字签名的交易认证
根据DCEP的设计模式,两个设备之间发生的数字货币交易最终是需要数字货币投放系统进行确认的。
数字货币的结构中,所有者标识指的是用户的钱包证书。当数字货币投放系统认可一个数字货币被一个钱包所拥有时,会利用自己的私钥对数字货币进行签名,进而生成一个新的数字货币。
而让数字货币投放系统认可一张货币所有权转移的方式,便是将双方发生的交易提交给数字货币投放系统。
数字货币投放系统在收到交易请求后,会验证数字货币原本拥有者是否已经在这次交易上进行签名,同时确定这笔货币拥有者的身份。当确认通过时,数字货币投放系统会为新的货币拥有者生成新的货币。
这个流程是交易双方钱包在线时完成的。在交易时间戳的保证下,这个具体的流程可以被延时完成,即数字货币的最终确认流程可以与交易过程分离开来。
这种数字货币交易与确认分离的模式,最终保证了数字货币的离线交易。
实际上,数字货币交易体本身的生成与验证是可以离线完成的,用户收到数字货币交易体,只要交易体本身是正确的,用户就相当于可以收到真实的货币了。
最终,拥有交易体的用户只需要将数据提交即可换取真实的DCEP。