【案例】中国银联、光大银行基于区块链的可信电子凭证系统
近年来,包括银行、证券、保险等在内的众多金融行业成为区块链发展和研究的重要倡导者和参与者,这使得区块链技术在交易结算、贸易金融、股权、票据、金融衍生品、信贷、反洗钱/反诈骗、供应链金融等多个领域的应用受到了从业者的广泛关注。
官网 | www.datayuan.cn
微信公众号ID | datayuancn
本篇案例为数据猿推出的“金融科技价值—数据驱动金融商业裂变”大型主题策划活动第一部分的文章/案例/产品征集部分;感谢 趣链科技 的投递
1、企业名称
中国银联、光大银行
2、所属分类
金融科技 · 大数据安全
3、案例背景
近年来,包括银行、证券、保险等在内的众多金融行业成为区块链发展和研究的重要倡导者和参与者,这使得区块链技术在交易结算、贸易金融、股权、票据、金融衍生品、信贷、反洗钱/反诈骗、供应链金融等多个领域的应用受到了从业者的广泛关注。但面对如火如荼的区块链发展热潮,大家也清醒地认识到,区块链技术在金融业的落地并不是一蹴而就的事情,故我们选择在可信凭证系统这个场景上进行区块链的落地工作。
本系统是根据传统的电子凭证业务的痛点,如存储在第三方系统中的电子凭证易被篡改、不同机构间的电子邮件无法互联互通、依赖公信力成为业务发展的瓶颈等等原因,导致无法发挥电子凭证的优越性。
所以,系统运用区块链的技术可以解决以上问题。将电子凭证在数据表中存储后,将数据进行哈希加密,然后进行共识认证,将经过所有节点共识的数据存储在区块链中,保证数据的一致性、完整性和安全性。继而保证数据的完全可信任,并且可对数据进行跨行的高效溯源查询。
从长远上来讲,业务参与各方的合法权益得到了真正的保证,为取消纸质凭证实现完全无纸化打下基础。
4、实施时间
需求分析阶段: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
5、应用场景
5.1、存证业务
顾客在门店POS机进行刷卡消费,并进行电子签名;
(1) 后台系统将电子凭证(包括凭证信息和电子签名图片)在数据表中存储(日终批量);
(2) 存储的数据进行哈希加密;
(3) 区块链内所有节点对数据进行共识验证,再次加密;
(4) 将经过所有节点共识的数据存储在区块链中;
(5) 通过区块链达成共识的数据,可以保证一致性、完整性和安全性。可以保证数据的完全可信任,并且可对数据进行跨行的高效溯源查询。
5.2、查询业务
因为本行POS机刷卡可直接调用内部数据库进行查询,所以在此流程上只讨论当进行跨行刷卡时的跨行查询业务处理流程。
(1) 用户向发卡行发起差错处理请求;
(2) 发卡行通过银联差错处理平台向收单行请求差错处理;
(3) 收单行接到请求后调取签购单并返回给差错处理平台;
(4) 差错处理平台通过可信凭证系统进行签购单校验;
(5) 校验成功,则将签购单返回发卡行;
(6) 不满足6中条件则拒绝此请求;
(7)发卡行收到可信赖的签购单后反馈给用户。
6、面临挑战
当前POS机签购单无论是纸质版还是电子版都存在着单据保存数据量大、调单处理繁琐缓慢等问题,不利于单据的存证和调取工作。根据该现状和问题,对本项目提出如下功能需求:
(1)在当前POS机签购单存证系统的基础上,使用区块链技术构建签购单存证数据库;
(2)建立光大与银联之间跨区域的联盟链;
(3)将电子签购单的哈希值存到联盟链中;
(4)在调用电子签购单的时候,使用联盟链中的哈希数据对其他方提供的电子签购单进行验证;
(5)与当前POS机签购单存证系统无缝对接;
(6)符合监管规定,满足监管要求。
7、数据支持
根据业务部门提供的数据,2015年Q4共有1500万笔交易量;2016年Q4共产生2000万笔交易量;年增长33%,预计未来三年季度交易量4750万,由二八原则得到为24.2TPS。其中,按照每个月500w条交易量预计,交易类型为普通存证数据,约会产生3-4GB的区块链数据。
数据来源:光大银行POS单信息,用户进行POS刷卡消费的同时会将生成的电子POS单信息进行Hash并发送给区块链平台。
8、应用技术/实施过程
8.1应用技术:
8.1.1系统功能架构
整个系统的架构如下图1所示,在封装好的Hyperchain平台外部,分别链接四个中国银联的节点和四个光大银行的Nginx节点(光大银行的每个Nginx节点分别与其四个节点相连),两家机构分别接入区块链节点。整个区块链系统通过一个IFT系统与POSP系统相连。
图1 系统功能架构图
8.1.2平台内部架构
Hyperchain由共识算法、权限管理、交易加密、区块存储、P2P通讯和智能合约执行引擎六个核心模块构成。如图2所示是面向企业的极速可编程区块链平台Hyperchain的整体逻辑架构图。从系统整体架构上看,Hyperchain平台主要的设计主要分为接口服务以及系统管控层、系统核心层、物理资源的动态管理层三个部分。
图2 Hyperchain系统架构图
8.1.3逻辑架构设计
在区块链系统中,我行有4个VP节点实现全联通,并且每个节点都连接一个Nginx,作为其双向代理,具备防火墙,并与外部节点相连。并且,在上地和酒仙桥分别部署一个POSP应用服务器。
图3系统逻辑架构图
8.1.4部署方案设计
光大银行的四个区块链系统中的VP节点实现全联通,并分别与一台Nginx双向代理相连,这八台服务器分别具有一个自己的内网IP和一个端口号。并且在外部封装了web server服务器,配置相应的生产域名和出入口公网IP地址。通过公网地址,与区块链中的银联方面的节点进行信息传输。
8.1.5开发框架
本项目的开发框架如下图4所示:
系统使用levelDB作为底层数据库,作为一个非关系型数据库,它的高读写性能等特点非常合适区块链系统。
高性能共识算法RBFT是共识模块的关键实现,Hyperchain的共识模块算法以模块化方式实现,不同场景下可以选择相应的共识算法实现。
HPVM是高性能图灵完备的智能合约引擎的实现。节点管理器部分即P2P通讯模块提供了区块链节点发现和数据同步的功能,为区块链技术的去中心化特性提供了底层技术支持。
在数据库和加密算法的基础上构建一个Message Channel 接口服务器也称事件总线,是事件驱动方式的实现方式,其他相关组件例如共识、网络、执行等通过事件总线接口进行事件的交互。
节点管理器部分即P2P通讯模块提供了区块链节点发现和数据同步的功能,为区块链技术的去中心化特性提供了底层技术支持。
通过CA中心签发证书,根据不同证书类别,系统识别出参与节点的不同权限,根据不同权限来控制不同节点的准入和访问条件。
接口服务以及系统管控层,该层面通过HTTP Server接口的方式为用户应用程序接口的开发提供底层API,通过提供相应管理接口的方式提供系统的节点管理、合约管理、区块监控以及节点配置等功能。
图4 系统开发框架
8.1.6系统安全设计
在用户安全设计方面,Hyperchain区块链平台提供Namespace,同态加密,合约访问控制三种机制。通过CA认证授权实现联盟链准入机制。采用PKI体系结构采用证书管理公钥;系统权限设计方面,Hyperchain将节点分为两类节点:验证节点(VP),非验证节点(NVP);数据安全设计方面,采用多级加密安全机制,国密支持。
8.1.7接口设计
本项目使用的外部接口有JSON-RPC API以及Java SDK。Java SDK实质上调用了JSON-RPC API,并且提供了编码、解码、加密、解密以及交易签名等等方法。用户可以根据应用需求来选择使用不同类型的接口。
8.2实施过程
8.2.1电子签购单存储
8.2.1.1功能
1、收集顾客在门店POS机进行刷卡消费,并进行电子签名的电子凭证;
2、后台系统将电子凭证(包括凭证信息和电子签名图片)可以在数据表中存储(日终批量);
3、后台可以对存储的数据进行哈希加密;
4、区块链内所有节点能够对数据进行共识验证,再次加密;
5、将经过所有节点共识的数据会被存储在区块链中;
6、通过区块链达成共识的数据,可以保证一致性、完整性和安全性。可以保证数据的完全可信任,并且可对数据进行跨行的高效溯源查询。
8.2.1.2输入输出
请求参数设计:
bytes32 key,bytes32 value //输入参数为该电子签购单私钥以及电子签购单信息
响应参数设计:
bool,bytes32 //输出参数为一个共识是否达成的布尔值
表1 存证过程输出值反馈表
输出值 | 共识结果 |
true,"Success" | 达成共识 |
false,"the key exist" | 未达成共识 |
8.2.1.3处理流程
在电子签购单凭证存储方面的处理流程如下图5所示:
图5 存证业务处理逻辑图
8.2.1.4接口
此处接口设计主要指的是Hyperchain提供的JAVA-SDK接口部分的设计。JAVA-SDK主要对外提供本地调用接口,主要服务于JAVA用户,给JAVA用户提供一个非常便捷的调用接口,方便用户调用Hyperchain平台对外提供的服务。
JAVA-SDK需要完成的工作包括对交易信息的预处理,帮助用户实现私钥的管理交易的签名以及一些返回值的编码解码工作。这些工作本来都是非常复杂的,但是在JAVA-SDK支持之后,能够让本来较为复杂的事情简单化。
(1)交易相关接口
交易作为区块链上最为重要的数据接口,所有的交互都需要通过交易完成。
在本设计中,主要提供两个接口:
交易查询接口
输入: 交易hash 或者交易索引。
输出:交易详情,包括交易的双方实体,交易内容等。
交易回执查询接口
输入:交易hash或者交易索引。
输出:交易回执详情,包括交易执行信息,状态信息等。
(2)合约相关接口
作为快速可编程区块链平台,智能合约作为可编程的核心部件之一,对外需要提供如下接口:
合约编译接口(可选)
输入:智能合约源代码
输出:智能合约字节码
合约部署接口
输入:智能合约字节码
输出:部署交易hash
合约执行接口
输入:智能合约调用字节码
输出:调用交易hash
(3)区块相关接口
区块相关接口主要提供了区块信息查询相关接口:
区块数目查询
输入:无
输出:区块数目
区块信息查询
输入:区块hash以及索引
输出:区块信息
(4)节点相关接口
节点本身的状态信息需要对外提供接口进行查询,该接口主要包括:
节点信息查询
输入:无
输出:连接节点健康信息
8.2.1.5程序文件清单
新增:anchor.sol
8.2.1.6限制条件
无
8.2.1.7测试要点
在交易信息上链前的动态共识测试、节点是否全联通的测试。
8.2.2电子签购单查询
8.2.2.1功能
因为本行POS机刷卡可直接调用内部数据库进行查询,所以在此流程上只讨论当进行跨行刷卡时的跨行查询业务处理的功能需求。
1、用户向发卡行发起差错处理请求;
2、发卡行通过银联差错处理平台向收单行请求差错处理;
3、收单行接到请求后调取签购单并返回给差错处理平台;
4、差错处理平台通过可信凭证系统进行签购单校验;
5、校验成功,则将签购单返回发卡行;
6、不满足6中条件则拒绝此请求;
7、发卡行收到可信赖的签购单后反馈给用户;
8.2.2.2输入输出
请求参数设计:
bytes32 key //输入参数为该电子签购单私钥
响应参数设计:
bool,bytes32,bytes32 //输出参数为该笔业务是否成立,若成立则给出业务信息
表2查询过程输出值反馈表
输出值 | 共识结果 |
true,"Success",hashMap[key] | 交易正确,返回交易信息 |
false,"the key is not exist",0x0 | 交易不正确,返回错误值 |
8.2.2.3处理流程
在电子签购单凭证查询方面的处理流程如下图所示:
图6 查询业务处理逻辑图
8.2.2.4接口
此处接口设计主要指的是Hyperchain提供的JAVA-SDK接口部分的设计。JAVA-SDK主要对外提供本地调用接口,主要服务于JAVA用户,给JAVA用户提供一个非常便捷的调用接口,方便用户调用Hyperchain平台对外提供的服务。JAVA-SDK需要完成的工作包括对交易信息的预处理,帮助用户实现私钥的管理交易的签名以及一些返回值的编码解码工作。这些工作本来都是非常复杂的,但是在JAVA-SDK支持之后,能够让本来较为复杂的事情简单化。
(1)交易相关接口
本部分主要介绍交易相关接口的设计,交易作为区块链上最为重要的数据接口,所有的交互都需要通过交易完成。
在本设计中,主要提供两个接口:
交易查询接口
输入: 交易hash 或者交易索引。
输出:交易详情,包括交易的双方实体,交易内容等。
交易回执查询接口
输入:交易hash或者交易索引。
输出:交易回执详情,包括交易执行信息,状态信息等。
(2)合约相关接口
作为快速可编程区块链平台,智能合约作为可编程的核心部件之一,对外需要提供如下接口:
合约编译接口(可选)
输入:智能合约源代码
输出:智能合约字节码
合约部署接口
输入:智能合约字节码
输出:部署交易hash
合约执行接口
输入:智能合约调用字节码
输出:调用交易hash
(3)区块相关接口
区块相关接口主要提供了区块信息查询相关接口:
区块数目查询
输入:无
输出:区块数目
区块信息查询
输入:区块hash以及索引
输出:区块信息
(4)节点相关接口
节点本身的状态信息需要对外提供接口进行查询,该接口主要包括:
节点信息查询
输入:无
输出:连接节点健康信息
8.2.2.5程序文件清单
新增:anchor.sol
8.2.2.6限制条件
无
8.2.2.7测试要点
错误值查询是否会报错,返回值的准确性。
9、商业变化
(1)实现电子凭证可信任化存储、可溯源化查找等功能;
(2)建立快速、高效、可信、可靠的POS机签购单存证数据库;
(3)对签购单进行管理,同时相对降低运维成本;
(4)本项目在金融领域实际应用区块链技术,为下一步业务做准备;
中国银联、光大银行基于区块链的可信电子凭证系统,在跨机构、跨区域、跨互联网、跨运营商的环境下,稳定投产上线运行,日交易量25万。后续会扩展到北京银行、银联商务、广发银行等银行接入。长远上来讲,业务参与各方的合法权益得到了真正的保证,为取消纸质凭证实现完全无纸化打下基础。
- 关于企业 -
杭州趣链科技有限公司的核心技术为自主可控的国产联盟链平台,并服务于数字票据、数据交易、股权债券、供应链金融、物流管理等众多领域。公司核心团队均毕业于浙江大学且具有博士学位,并由中国工程院陈纯院士担任董事长。
公司致力于研发具有颠覆性意义的区块链技术,具有非常领先的技术价值和应用价值;同时,公司建立了与浙江大学的战略合作关系,浙大的科研实力与人才优势将为公司提供源源不断的技术与脑力支持;而且,公司展开了广泛的技术与业务合作,已经和农业银行、浙商银行、上海证券交易所、中国银联、北京银行、光大银行、上海万达网络金融服务有限公司、广州广电运通、上海数据交易中心等众多公司与机构洽谈多项技术或项目合作(部分已经完成)。
2016年,公司获得由主板上市公司信雅达、浙大网新和君宝通信共计1750万人民币的Pre-A轮融资。2016年10月,公司发布全球首个成熟商用的联盟区块链平台Hyperchain。2016年12月,基于Hyperchain,国内首个银行核心系统区块链项目即浙商银行移动汇票正式上线。2017年3月,公司核心产品Hyperchain在众多金融和非金融机构的内部测试中,与国内外所有产品相比均排名第一(测试范围覆盖功能、性能、稳定性、可用性、易用性、成熟度等)。
作为整体活动的第二部分,2017年10月25日,数据猿还将在北京举办千人规模的“2017金融科技价值——数据驱动金融商业裂变”峰会并将在现场举行文章、案例、产品的颁奖典礼。
更多精彩内容
(点击关键词查看)
· 观 点 ·
· 案 例 ·