LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 对话HyperPay技术大咖EnzoYong|关于DCEP的黑科技(一)“印发、双离线支付与离线防

对话HyperPay技术大咖EnzoYong|关于DCEP的黑科技(一)“印发、双离线支付与离线防

2020-04-21 区块链新视界 来源:区块链网络

近日网传中国农业银行正开展央行数字货币(DCEP)钱包试点,目前仅覆盖深圳、雄安、成都和苏州的特定网点。关于央行数字货币(DCEP)今年再次被重点提及,特别是在Facebook发布Libra稳定币白皮书2.0后,可见央行数字货币落地应用正在全面加速。?2020年4月21日,区块链新视界特邀HyperPay钱包项目总监Enzo Yong做客访谈,从钱包开发的层面来解析央行DCEP背后的黑科技。

问题一

区块链新视界芳芳:对于DCEP这种全新的央行发行的数字货币,在形式上它与传统意义的纸币(M0)有极大差异,比如,传统纸币都是由印钞厂印发完成的。那么,对于DCEP这种摸不到的数字货币,它的印发方式具体是怎样的?这里能够简单讲解一下吗?

HyperPay项目总监?Enzo Yong:

简而言之,相比纸币的印制过程,DCEP?的印制其实就是一串由央行签名过的数字。DCEP的印制过程分为4步:基本加密、随机数加密、生成冠字号、央行签名。

1.基本加密

这里举个例子,央行的主密码与面额数字?1,5,10,20,50,100?分别产生?6?个基本加密密码。这?6?个加密密码分别是用于不同面额的数字货币。

2.随机数加密

由?Hash?算法生成系统随机数。

3.生成冠字号

DCEP作为M0的替代,也有其独立的冠字号。所谓冠字号码就是人民币纸币上的编码,它印在纸币上用来标记印刷批次的两个或三个英文字母,由印钞厂按一定规律编排和印刷;“号码”则是印在冠字后面的阿拉伯数字流水号,用来标明每张钞票在同冠字批次中的排列顺序。通过上述的基本加密密码与随机数加密两次加密过程,生成加密密码,这个加密密码即对应特定冠字号的DCEP数字货币。

4.央行签名

央行通过私钥对加密密码进行签名,此时一枚新的法定数字货币就产生了。

问题二

区块链新视界芳芳:我们知道DCEP将会实现纸钞的数字化,不过纸钞有一个很重要的应用场景,就是在我们处在无人区或者弱信号的地方是无法使用支付宝和微信的,那么纸钞在这种场景下是可以进行支付。那么,能简要介绍下DCEP如何在离线的情况下实现纸钞的支付功能?

HyperPay项目总监?Enzo Yong:

联网支付与离线支付的区别在于,联网交易的基本原理是付款方用与其绑定的私钥,对支付承诺进行签名,并将其提交给央行数字货币登记系统,央行数字货币登记系统验证交易的数字货币有效,付款方签名和支付承诺有效后,完成交易确认。

双离线支付的本质是一种收付双方均认可的延迟交易。双离线支付过程是付款方用与其绑定的私钥,对支付承诺进行签名,然后将已签名的支付承诺交给收款方。

收款方在恢复联网之后,向央行提交该支付承诺。由于该支付承诺已经被付款方签名,虽然是由收款方提交给央行的,但央行验证通过后,同样可以完成交易确认。这类似于付款方开具支票,收款方事后凭支票向银行要求兑付。

问题三

区块链新视界芳芳:网络流出的农业银行的DCEP内测版中有个“碰一碰”支付的功能。这边我查阅了一下相关资料,里面讲到DCEP的这个碰一碰支付就是在离线情况下的主要支付手段,其技术可能是采用NFC支付的方式,这里能简要介绍一下这部分功能吗?

HyperPay项目总监?Enzo Yong:

我们根据相关材料可以推断出央行DCEP采用的是NFC支付。NFC又称为近场通信,我们的手机基本上都支持NFC技术,在离线的情况下我们打开DCEP钱包,通过在彼此靠近的情况下就可以进行数据交换从而完成转账。具体支付实现过程如下图所示:

步骤1:生成转账信息

A?用户打开DCEP钱包?APP?后,选择离线支付“碰一碰”功能,输入付款金额后即可生成转账信息。

步骤2:签名并标示余额

A?用户对上述信息利用自己的私钥进行签名并且标记余额。这部分具体采用那种签名形式目前也暂无定论,我们在以ECDSA示例。在步骤一中生成的转账数据会由ECDSA签名算法进行签名,签名后的数据经过序列化后生成raw的格式数据

步骤3:NFC近场通信

收款人的手机号或者其他标识收款人的信息通过?NFC?等近场通讯的方式进行加密传输。

步骤4:进行数据解密

B?用户?APP?接收到加密信息后,会有一个解密过程并验证币的合法性以及金额是否等值。

步骤5:待联机同步

这个阶段A、B?用户已完成了双离线支付。B?用户的DCEP钱包会在联机状态后,将支付信息发送给商业银行数字货币系统,待商业银行校验完成。

问题四

区块链新视界芳芳:我们在传统纸币使用中会遇到各类“假币”的困扰,DCEP的出现可以从根本上解决纸钞中的假币问题。但是在双离线环境下,DCEP缺乏了联网的验证过程,这里它是通过哪种技术来解决“离线防伪”的问题呢?

HyperPay项目总监?Enzo Yong:

这个离线防伪确实是DCEP的一大技术难点。在双离线支付环境中,交易报文有效性只有通过交易者(A与B)终端完成。从现有的官方信息可以大致推测出,交易终端必须具备一定的由央行数字货币登记系统背书的权威性,才能在离线的情况下判断其报文的有效性。所以,DCEP的钱包应该是在央行强监管下,执行严格的安全标准,进行了强制检测认证。这里我简单举几个可能采用的组合技术手段方便大家理解。

1.TEE环境验证

DCEP安装软件包的智能手机必须支持可信执行环境(TEE),且启用了安全启动、安全显示(TUI)等能力。利用TEE对央行数字货币发行公钥、央行钱包认证根公钥、央行钱包认证子私钥、央行数字货币登记系统的服务器根证书、UTXO账本信息、用户私钥等敏感信息加以保护。

2.离线验证黑科技:央行数字货币发行“公钥”与央行钱包认证“根公钥”

央行数字货币发行私钥用于签署每一个央行发行的数字货币。其对应公钥应内置于钱包TA(Trusted Application可信应用,指钱包软件运行在TEE中的部分)中,以便在离线情况下也能验证数字货币的真伪。央行钱包认证根公钥对用于在离线交易时,收付双方互相验证对方的数字钱包是经过央行认证的合法钱包。

3.登记验证:央行数字货币登记系统的服务器根证书

DCEP根证书用于钱包软件连接央行数字货币登记系统时,验证央行数字货币登记系统是真实的,从而抗DNS攻击、中间人攻击等。央行数字货币登记系统可能有多个服务入口,根证书用于验证所有这些入口服务器的证书。

—-

编译者/作者:区块链新视界

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...