您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

技术指南 | DCEP的离线支付实现逻辑

时间:2020-07-11 13:56:06  来源:  作者:
技术指南 | DCEP的离线支付实现逻辑

 

中国人民银行发行的法定数字货币,是现金货币的数字化,需要能够进行离线支付。但对于一个数字系统来说,离线支付是一个不小的难题。

央行所设计的DCEP,可以巧妙地通过利用密码学技术解决离线支付问题。

前文我们已经基本描述过DCEP的基础结构。

DCEP不同于账本模式,采用的是模拟真实货币的方式来进行的。其具体的支付行为不是通过记账而是通过货币所有权转换来完成。

而这就为离线支付提供了一个基础。

数字货币场景需要使用密码学来进行所有权验证,而基于密码学的所有权认证模式是不需要设备在线就可以完成的。因此,DCEP才可以进行离线支付。


基于数字证书的用户身份认证

实现DCEP离线支付的一个基础,就是要能在离线的状态下对用户的身份进行验证,保证交易双方的身份的正确性。

在账户体系的模式下,为了对用户身份进行验证,交易双方往往需要连接中心的服务器,依靠中心的服务器来对双方的身份进行认证。

这种模式实现简单,但是无法进行离线化。因为在这种模式下,交易双方必须在交易时在线。只有在线的设备,才能够连接中心服务器对数据进行验证。

而采用这种认证方式的原因,是每一次交易的对手方都可能是一个新的对手方。为了保证交易对手方身份的正确性,每次交易都要询问服务器对方身份是否正确。

在这种模式下,具体的认证流程如下:

技术指南 | DCEP的离线支付实现逻辑

 

想要解决DCEP离线支付的问题,第一步就要保证对用户的身份认证能够离线化完成。

所谓的离线化完成,就是保证用户在确认交易对手方时,不需要与中心服务器沟通,而是仅仅通过收到对手方的信息,就可以对其身份进行确认。

技术指南 | DCEP的离线支付实现逻辑

 

这种模式的实现,在DCEP中采用的是基于密码学的证书机制。

在对手方注册钱包的时候,会先把自己的公钥提交到认证服务器。认证服务器收到对手方提交的身份信息后,对身份信息进行核实,核实通过后,再向对手方颁发经过自己的私钥签名的数字证书。对手方收到数字证书后,将其保存在自己的本地。此外,由于密码学的限制,对手方是无法修改自己收到的数字证书的。

当交易行为发生时,交易方会内置认证服务器的公钥。同时,交易方会接收到对手方的数字证书信息。

由于之前对手方的数字证书已经经过认证服务器签名,交易方可以直接根据认证服务器的的公钥与数字证书信息认证对手方的信息。


基于数字签名的货币认证

DCEP基于数字证书的身份认证机制不仅仅应用在认证用户身份上,也应用在认证数字货币的发行流程与数字货币本身上。

在我们对DCEP的专利解读中,提到过数字货币的结构。

如下图所示,一张货币包含了数字货币额度控制位、货币所有者的身份标识、以及货币投放系统的数字签名。

技术指南 | DCEP的离线支付实现逻辑

 

对数字货币的校验是需要利用货币投放系统的数字证书与投放系统的签名进行验证,从而保证这张货币的真实性。

接下来,还需要对数字货币的额度控制位进行认证,额度控制位的结构大致与下:

技术指南 | DCEP的离线支付实现逻辑

 

对额度控制位的校验,是需要利用额度管理系统证书与额度管理系统签名进行验证,保证额度控制位的真实性。

一张货币只有同时满足如上两个条件,才能正式通过验证。

数字货币的这两个验证条件,使得在拥有额度管理系统证书的情况下,设备能够在本地通过计算来验证货币的真实性。


基于数字签名的交易认证

根据DCEP的设计模式,两个设备之间发生的数字货币交易最终是需要数字货币投放系统进行确认的。

数字货币的结构中,所有者标识指的是用户的钱包证书。当数字货币投放系统认可一个数字货币被一个钱包所拥有时,会利用自己的私钥对数字货币进行签名,进而生成一个新的数字货币。

而让数字货币投放系统认可一张货币所有权转移的方式,便是将双方发生的交易提交给数字货币投放系统。

数字货币投放系统在收到交易请求后,会验证数字货币原本拥有者是否已经在这次交易上进行签名,同时确定这笔货币拥有者的身份。当确认通过时,数字货币投放系统会为新的货币拥有者生成新的货币。

这个流程是交易双方钱包在线时完成的。在交易时间戳的保证下,这个具体的流程可以被延时完成,即数字货币的最终确认流程可以与交易过程分离开来。

技术指南 | DCEP的离线支付实现逻辑

 

这种数字货币交易与确认分离的模式,最终保证了数字货币的离线交易。

实际上,数字货币交易体本身的生成与验证是可以离线完成的,用户收到数字货币交易体,只要交易体本身是正确的,用户就相当于可以收到真实的货币了。

最终,拥有交易体的用户只需要将数据提交即可换取真实的DCEP。



Tags:离线支付   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
中国人民银行发行的法定数字货币,是现金货币的数字化,需要能够进行离线支付。但对于一个数字系统来说,离线支付是一个不小的难题。央行所设计的DCEP,可以巧妙地通过利用密码学...【详细内容】
2020-07-11  Tags: 离线支付  点击:(96)  评论:(0)  加入收藏
▌简易百科推荐
本文分为三个等级自顶向下地分析了glibc中内存分配与回收的过程。本文不过度关注细节,因此只是分别从arena层次、bin层次、chunk层次进行图解,而不涉及有关指针的具体操作。前...【详细内容】
2021-12-28  linux技术栈    Tags:glibc   点击:(3)  评论:(0)  加入收藏
摘 要 (OF作品展示)OF之前介绍了用python实现数据可视化、数据分析及一些小项目,但基本都是后端的知识。想要做一个好看的可视化大屏,我们还要学一些前端的知识(vue),网上有很多比...【详细内容】
2021-12-27  项目与数据管理    Tags:Vue   点击:(2)  评论:(0)  加入收藏
程序是如何被执行的  程序是如何被执行的?许多开发者可能也没法回答这个问题,大多数人更注重的是如何编写程序,却不会太注意编写好的程序是如何被运行,这并不是一个好...【详细内容】
2021-12-23  IT学习日记    Tags:程序   点击:(9)  评论:(0)  加入收藏
阅读收获✔️1. 了解单点登录实现原理✔️2. 掌握快速使用xxl-sso接入单点登录功能一、早期的多系统登录解决方案 单系统登录解决方案的核心是cookie,cookie携带会话id在浏览器...【详细内容】
2021-12-23  程序yuan    Tags:单点登录(   点击:(8)  评论:(0)  加入收藏
下载Eclipse RCP IDE如果你电脑上还没有安装Eclipse,那么请到这里下载对应版本的软件进行安装。具体的安装步骤就不在这赘述了。创建第一个标准Eclipse RCP应用(总共分为六步)1...【详细内容】
2021-12-22  阿福ChrisYuan    Tags:RCP应用   点击:(7)  评论:(0)  加入收藏
今天想简单聊一聊 Token 的 Value Capture,就是币的价值问题。首先说明啊,这个话题包含的内容非常之光,Token 的经济学设计也可以包含诸多问题,所以几乎不可能把这个问题说的清...【详细内容】
2021-12-21  唐少华TSH    Tags:Token   点击:(10)  评论:(0)  加入收藏
实现效果:假如有10条数据,分组展示,默认在当前页面展示4个,点击换一批,从第5个开始继续展示,到最后一组,再重新返回到第一组 data() { return { qList: [], //处理后...【详细内容】
2021-12-17  Mason程    Tags:VUE   点击:(14)  评论:(0)  加入收藏
什么是性能调优?(what) 为什么需要性能调优?(why) 什么时候需要性能调优?(when) 什么地方需要性能调优?(where) 什么时候来进行性能调优?(who) 怎么样进行性能调优?(How) 硬件配...【详细内容】
2021-12-16  软件测试小p    Tags:性能调优   点击:(20)  评论:(0)  加入收藏
Tasker 是一款适用于 Android 设备的高级自动化应用,它可以通过脚本让重复性的操作自动运行,提高效率。 不知道从哪里听说的抖音 app 会导致 OLED 屏幕烧屏。于是就现学现卖,自...【详细内容】
2021-12-15  ITBang    Tags:抖音防烧屏   点击:(25)  评论:(0)  加入收藏
11 月 23 日,Rust Moderation Team(审核团队)在 GitHub 上发布了辞职公告,即刻生效。根据公告,审核团队集体辞职是为了抗议 Rust 核心团队(Core team)在执行社区行为准则和标准上...【详细内容】
2021-12-15  InfoQ    Tags:Rust   点击:(25)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条