摘要: 近年来,包括银行、证券、保险等在内的众多金融行业成为区块链发展和研究的重要倡导者和参与者,中国银联和光大银行联手在试水基于区块链的可信电子凭证系统。  
 
近年来,包括银行、证券、保险等在内的众多金融行业成为区块链发展和研究的重要倡导者和参与者,这使得区块链技术在交易结算、贸易金融、股权、票据、金融衍生品、信贷、反洗钱/反诈骗、供应链金融等多个领域的应用受到了从业者的广泛关注。


企业案例:中国银联和光大银行基于区块链的可信电子凭证系统
 

行业分类:金融科技·大数据安全
 

案例背景
 

近年来,包括银行、证券、保险等在内的众多金融行业成为区块链发展和研究的重要倡导者和参与者,这使得区块链技术在交易结算、贸易金融、股权、票据、金融衍生品、信贷、反洗钱/反诈骗、供应链金融等多个领域的应用受到了从业者的广泛关注。但面对如火如荼的区块链发展热潮,大家也清醒地认识到,区块链技术在金融业的落地并不是一蹴而就的事情,故我们选择在可信凭证系统这个场景上进行区块链的落地工作。

本系统是根据传统的电子凭证业务的痛点,如存储在第三方系统中的电子凭证易被篡改、不同机构间的电子邮件无法互联互通、依赖公信力成为业务发展的瓶颈等等原因,导致无法发挥电子凭证的优越性。

所以,系统运用区块链的技术可以解决以上问题。将电子凭证在数据表中存储后,将数据进行哈希加密,然后进行共识认证,将经过所有节点共识的数据存储在区块链中,保证数据的一致性、完整性和安全性。继而保证数据的完全可信任,并且可对数据进行跨行的高效溯源查询。

从长远上来讲,业务参与各方的合法权益得到了真正的保证,为取消纸质凭证实现完全无纸化打下基础。
 

实施时间
 

需求分析阶段:2017.3.22-2017.4.5

系统设计阶段:2017.4.6-2017.4.30

系统开发阶段:2017.5.1-2017.6.10

系统集成与测试:2017.7.1-2017.7.19

系统部署与验收:第一次投产2017.7.19;第二次投产2017.8.24
 

应用场景
 

1、存证业务
 

顾客在门店POS机进行刷卡消费,并进行电子签名;

(1)后台系统将电子凭证(包括凭证信息和电子签名图片)在数据表中存储(日终批量);

(2)存储的数据进行哈希加密;

(3)区块链内所有节点对数据进行共识验证,再次加密;

(4)将经过所有节点共识的数据存储在区块链中;

(5)通过区块链达成共识的数据,可以保证一致性、完整性和安全性。可以保证数据的完全可信任,并且可对数据进行跨行的高效溯源查询。
 

2、查询业务
 

因为本行POS机刷卡可直接调用内部数据库进行查询,所以在此流程上只讨论当进行跨行刷卡时的跨行查询业务处理流程。
 

(1)用户向发卡行发起差错处理请求;

(2)发卡行通过银联差错处理平台向收单行请求差错处理;

(3)收单行接到请求后调取签购单并返回给差错处理平台;

(4)差错处理平台通过可信凭证系统进行签购单校验;

(5)校验成功,则将签购单返回发卡行;

(6)不满足6中条件则拒绝此请求;

(7)发卡行收到可信赖的签购单后反馈给用户。
 

面临挑战
 

当前POS机签购单无论是纸质版还是电子版都存在着单据保存数据量大、调单处理繁琐缓慢等问题,不利于单据的存证和调取工作。根据该现状和问题,对本项目提出如下功能需求:
 

(1)在当前POS机签购单存证系统的基础上,使用区块链技术构建签购单存证数据库;

(2)建立光大与银联之间跨区域的联盟链;

(3)将电子签购单的哈希值存到联盟链中;

(4)在调用电子签购单的时候,使用联盟链中的哈希数据对其他方提供的电子签购单进行验证;

(5)与当前POS机签购单存证系统无缝对接;

(6)符合监管规定,满足监管要求。
 

数据支持
 

根据业务部门提供的数据,2015年Q4共有1500万笔交易量;2016年Q4共产生2000万笔交易量;年增长33%,预计未来三年季度交易量4750万,由二八原则得到为24.2TPS。其中,按照每个月500w条交易量预计,交易类型为普通存证数据,约会产生3-4GB的区块链数据。
 

数据来源:光大银行POS单信息,用户进行POS刷卡消费的同时会将生成的电子POS单信息进行Hash并发送给区块链平台。
 

应用技术/实施过程
 

1应用技术
 

1.1系统功能架构
 

整个系统的架构如下图1所示,在封装好的Hyperchain平台外部,分别链接四个中国银联的节点和四个光大银行的Nginx节点(光大银行的每个Nginx节点分别与其四个节点相连),两家机构分别接入区块链节点。整个区块链系统通过一个IFT系统与POSP系统相连。
 

(图1系统功能架构图)
 

1.2平台内部架构
 

Hyperchain由共识算法、权限管理、交易加密、区块存储、P2P通讯和智能合约执行引擎六个核心模块构成。如图2所示是面向企业的极速可编程区块链平台Hyperchain的整体逻辑架构图。从系统整体架构上看,Hyperchain平台主要的设计主要分为接口服务以及系统管控层、系统核心层、物理资源的动态管理层三个部分。


(图2 Hyperchain系统架构图)
 

1.3逻辑架构设计
 

在区块链系统中,我行有4个VP节点实现全联通,并且每个节点都连接一个Nginx,作为其双向代理,具备防火墙,并与外部节点相连。并且,在上地和酒仙桥分别部署一个POSP应用服务器。

(图3系统逻辑架构图)
 

1.4部署方案设计
 

光大银行的四个区块链系统中的VP节点实现全联通,并分别与一台Nginx双向代理相连,这八台服务器分别具有一个自己的内网IP和一个端口号。并且在外部封装了web server服务器,配置相应的生产域名和出入口公网IP地址。通过公网地址,与区块链中的银联方面的节点进行信息传输。
 

1.5开发框架
 

本项目的开发框架如下图4所示:

系统使用levelDB作为底层数据库,作为一个非关系型数据库,它的高读写性能等特点非常合适区块链系统。

高性能共识算法RBFT是共识模块的关键实现,Hyperchain的共识模块算法以模块化方式实现,不同场景下可以选择相应的共识算法实现。

HPVM是高性能图灵完备的智能合约引擎的实现。节点管理器部分即P2P通讯模块提供了区块链节点发现和数据同步的功能,为区块链技术的去中心化特性提供了底层技术支持。

在数据库和加密算法的基础上构建一个Message Channel接口服务器也称事件总线,是事件驱动方式的实现方式,其他相关组件例如共识、网络、执行等通过事件总线接口进行事件的交互。

节点管理器部分即P2P通讯模块提供了区块链节点发现和数据同步的功能,为区块链技术的去中心化特性提供了底层技术支持。

通过CA中心签发证书,根据不同证书类别,系统识别出参与节点的不同权限,根据不同权限来控制不同节点的准入和访问条件。

接口服务以及系统管控层,该层面通过HTTP Server接口的方式为用户应用程序接口的开发提供底层API,通过提供相应管理接口的方式提供系统的节点管理、合约管理、区块监控以及节点配置等功能。

(图4系统开发框架)
 

1.6系统安全设计
 

在用户安全设计方面,Hyperchain区块链平台提供Namespace,同态加密,合约访问控制三种机制。通过CA认证授权实现联盟链准入机制。采用PKI体系结构采用证书管理公钥;系统权限设计方面,Hyperchain将节点分为两类节点:验证节点(VP),非验证节点(NVP);数据安全设计方面,采用多级加密安全机制,国密支持。
 

1.7接口设计
 

本项目使用的外部接口有JSON-RPC API以及Java SDK。Java SDK实质上调用了JSON-RPC API,并且提供了编码、解码、加密、解密以及交易签名等等方法。用户可以根据应用需求来选择使用不同类型的接口。
 

2 实施过程
 

2.1电子签购单存储
 

2.1.1功能
 

1、收集顾客在门店POS机进行刷卡消费,并进行电子签名的电子凭证;

2、后台系统将电子凭证(包括凭证信息和电子签名图片)可以在数据表中存储(日终批量);

3、后台可以对存储的数据进行哈希加密;

4、区块链内所有节点能够对数据进行共识验证,再次加密;

5、将经过所有节点共识的数据会被存储在区块链中;

6、通过区块链达成共识的数据,可以保证一致性、完整性和安全性。可以保证数据的完全可信任,并且可对数据进行跨行的高效溯源查询。
 

2.1.2输入输出
 

请求参数设计:

bytes32 key,bytes32 value//输入参数为该电子签购单私钥以及电子签购单信息

响应参数设计:

bool,bytes32//输出参数为一个共识是否达成的布尔值

 中国银联、光大银行基于区块链的可信电子凭证系统

2.1.3处理流程
 

在电子签购单凭证存储方面的处理流程如下图5所示:

 

(图5存证业务处理逻辑图)


2.1.4接口
 

此处接口设计主要指的是Hyperchain提供的JAVA-SDK接口部分的设计。JAVA-SDK主要对外提供本地调用接口,主要服务于JAVA用户,给JAVA用户提供一个非常便捷的调用接口,方便用户调用Hyperchain平台对外提供的服务。

JAVA-SDK需要完成的工作包括对交易信息的预处理,帮助用户实现私钥的管理交易的签名以及一些返回值的编码解码工作。这些工作本来都是非常复杂的,但是在JAVA-SDK支持之后,能够让本来较为复杂的事情简单化。
 

(1)交易相关接口
 

交易作为区块链上最为重要的数据接口,所有的交互都需要通过交易完成。

在本设计中,主要提供两个接口:

交易查询接口

输入:交易hash或者交易索引。

输出:交易详情,包括交易的双方实体,交易内容等。

交易回执查询接口

输入:交易hash或者交易索引。

输出:交易回执详情,包括交易执行信息,状态信息等。
 

(2)合约相关接口
 

作为快速可编程区块链平台,智能合约作为可编程的核心部件之一,对外需要提供如下接口:

合约编译接口(可选)

输入:智能合约源代码

输出:智能合约字节码

合约部署接口

输入:智能合约字节码

输出:部署交易hash

合约执行接口

输入:智能合约调用字节码

输出:调用交易hash
 

(3)区块相关接口
 

区块相关接口主要提供了区块信息查询相关接口:

区块数目查询

输入:无

输出:区块数目

区块信息查询

输入:区块hash以及索引

输出:区块信息
 

(4)节点相关接口
 

节点本身的状态信息需要对外提供接口进行查询,该接口主要包括:

节点信息查询

输入:无

输出:连接节点健康信息
 

2.1.5程序文件清单
 

新增:anchor.sol
 

2.1.6限制条件
 


 

2.1.7测试要点
 

在交易信息上链前的动态共识测试、节点是否全联通的测试。
 

2.2电子签购单查询
 

2.2.1功能
 

因为本行POS机刷卡可直接调用内部数据库进行查询,所以在此流程上只讨论当进行跨行刷卡时的跨行查询业务处理的功能需求。
 

1、用户向发卡行发起差错处理请求;

2、发卡行通过银联差错处理平台向收单行请求差错处理;

3、收单行接到请求后调取签购单并返回给差错处理平台;

4、差错处理平台通过可信凭证系统进行签购单校验;

5、校验成功,则将签购单返回发卡行;

6、不满足6中条件则拒绝此请求;

7、发卡行收到可信赖的签购单后反馈给用户;
 

2.2.2输入输出
 

请求参数设计:

bytes32 key//输入参数为该电子签购单私钥

响应参数设计:

bool,bytes32,bytes32//输出参数为该笔业务是否成立,若成立则给出业务信息

 

2.2.3处理流程
 

在电子签购单凭证查询方面的处理流程如下图所示:

(图6查询业务处理逻辑图)
 

2.2.4接口
 

此处接口设计主要指的是Hyperchain提供的JAVA-SDK接口部分的设计。JAVA-SDK主要对外提供本地调用接口,主要服务于JAVA用户,给JAVA用户提供一个非常便捷的调用接口,方便用户调用Hyperchain平台对外提供的服务。JAVA-SDK需要完成的工作包括对交易信息的预处理,帮助用户实现私钥的管理交易的签名以及一些返回值的编码解码工作。这些工作本来都是非常复杂的,但是在JAVA-SDK支持之后,能够让本来较为复杂的事情简单化。


(1)交易相关接口
 

本部分主要介绍交易相关接口的设计,交易作为区块链上最为重要的数据接口,所有的交互都需要通过交易完成。

在本设计中,主要提供两个接口:

交易查询接口

输入:交易hash或者交易索引。

输出:交易详情,包括交易的双方实体,交易内容等。

交易回执查询接口

输入:交易hash或者交易索引。

输出:交易回执详情,包括交易执行信息,状态信息等。
 

(2)合约相关接口
 

作为快速可编程区块链平台,智能合约作为可编程的核心部件之一,对外需要提供如下接口:

合约编译接口(可选)

输入:智能合约源代码

输出:智能合约字节码

合约部署接口

输入:智能合约字节码

输出:部署交易hash

合约执行接口

输入:智能合约调用字节码

输出:调用交易hash
 

(3)区块相关接口
 

区块相关接口主要提供了区块信息查询相关接口:

区块数目查询

输入:无

输出:区块数目

区块信息查询

输入:区块hash以及索引

输出:区块信息
 

(4)节点相关接口
 

节点本身的状态信息需要对外提供接口进行查询,该接口主要包括:

节点信息查询

输入:无

输出:连接节点健康信息
 

2.2.5程序文件清单
 

新增:anchor.sol
 

2.2.6限制条件
 

2.2.7测试要点
 

错误值查询是否会报错,返回值的准确性。
 

商业变化
 

(1)实现电子凭证可信任化存储、可溯源化查找等功能;

(2)建立快速、高效、可信、可靠的POS机签购单存证数据库;

(3)对签购单进行管理,同时相对降低运维成本;

(4)本项目在金融领域实际应用区块链技术,为下一步业务做准备;
 

中国银联、光大银行基于区块链的可信电子凭证系统,在跨机构、跨区域、跨互联网、跨运营商的环境下,稳定投产上线运行,日交易量25万。后续会扩展到北京银行、银联商务、广发银行等银行接入。长远上来讲,业务参与各方的合法权益得到了真正的保证,为取消纸质凭证实现完全无纸化打下基础。

来源:移动支付网

日本
区块链
新加坡
DLT
光大银行