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

官网 | 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金融科技价值——数据驱动金融商业裂变”峰会并将在现场举行文章、案例、产品的颁奖典礼。

更多精彩内容

(点击关键词查看)

· 观 点 ·

阿里金融云徐敏 | 达观数据陈运文

易日升史建伟 | 易宝支付余晨

诸葛io于晓松 | 91征信薛本川

聚信立甘建铃 | 天创信用张宇

安华金和杨海峰 | 东方金信王伟哲

· 案 例 ·

光大银行:风险一体化项目实施

中国人民银行反洗钱监测分析二代系统

大数据综合分析平台 ——海量数据复杂分析处理

【案例】中国银联、光大银行基于区块链的可信电子凭证系统相关推荐

  1. 中国央行已初步完成基于区块链技术的数字化票据系统(GBCAX)

    gbcax链交所 中国央行已初步完成基于区块链技术的数字化票据系统 中国央行近日披露了一套以区块链为基础的票据数字化系统,该系统旨在打击金融欺诈,并减少打印发票的费用.

  2. 基于区块链与IPFS的数据共享系统搭建步骤

    购买专栏前请认真阅读:<基于区块链与IPFS的数据共享系统>专栏简介 视频演示: https://www.bilibili.com/video/BV1y24y1v7RX 系统简介: 本系统 ...

  3. 基于区块链构建的农产品溯源系统开发

    在农业产业中,产品的存储与管理一直是重中之重,而区块链能够创新地解决这些问题. 基于区块链构建的农产品溯源系统,将农产品从采购原材料.种植.加工.物流运输.零售商到消费者餐桌的整个流程中产生的相关信息 ...

  4. 《基于区块链与IPFS的数据共享系统》专栏简介

    本专栏包含了"基于区块链与IPFS的数据共享系统"的全部源码与从0开始的搭建视频(订阅专栏后请站内私信).搭建教程与系统设计分析.对专栏内文章有疑问可以评论,一般一天内回复. 演示 ...

  5. 阿里云基于区块链服务构建企业业务系统实践总结

    笔者注:本文是在2018年8月19日由InfoQ主办的BCCon全球区块链生态技术大会的演讲内容基础上整理而成,从技术上对阿里云区块链服务解决企业落地问题的思路以及设计理念进行了解读. 大家好!很高兴 ...

  6. 区块链系统之《基于区块链的PKI数字证书系统》

    摘要 本文提出了一种基于区块链技术构建PKI数字证书系统的方法,利用区块链去中心化.不可篡改等特点,解决了传统PKI技术中存在的单点失败问题以及多CA互信难等问题,可降低传统PKI技术中CA中心建设. ...

  7. 目前基于区块链的档案防篡改系统的设计如何实现防篡改

    架构设计图 分析 为了保障档案数据的安全性和隐私性,存储档案附件和档案属性存储加密存储在私有IPFS集群,档案的IPFS地址和数字指纹存储在私有区块链上.公有区块链定期存储和检查私有区块链最新不可逆区 ...

  8. 《基于区块链的新型身份验证系统》毕业设计开题报告

    摘要 身份认证技术的应用范围越来越广,但是传统的身份认证却有严重依赖三方.安全性较差.共同信任的成本高.认证步骤繁琐等问题,因此本系统设计了基于区块链技术的新型身份认证系统的方案,设计并实现了采用RS ...

  9. 【专利学习】基于区块链的审计方法和系统

    [背景] 1.审计需要资金对比.交叉.回溯等数据分析,使得审计疑点确认和取证变得麻烦,效率低 2.需要可信第三方,存在单点风险 [内容] 1.构建联盟链,存储业务数据,获取审计信息,获取业务数据,生成 ...

最新文章

  1. Linux下redis安装部署
  2. sysdba不能远程登录,我们该怎么做 (转载)
  3. 最新!中国内地大学ESI排名出炉:362所高校上榜,南方科技大学、深圳大学、暨南大学表现出色!...
  4. python中字典和集合的区别_Python中字典和集合学习小结
  5. 齐家网困境:进退两难,合作方和消费者两头都不讨好?
  6. libgit2 0.28.1 发布,纯 C 实现的可移植 Git 核心开发包
  7. Wi-Fi与LTE走向融合,优势互补携手共赢
  8. Oracle使用ini启动,python操作ini类型配置文件的实例教程
  9. 关于HTTP协议的几个问题
  10. 程序员奉劝年轻人转行趁早:工作8年存款百万,33岁找不到工作
  11. 自动化测试——何为自动化测试,为何自动化测试
  12. mysql 高级映射_MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架...
  13. Android的当前应用启动第三方应用(跨软件启动页面)
  14. java 自定义 转换器_自定义类型转换器
  15. 如何制作一个商城小程序?
  16. const char *p与char * const p区别
  17. java求六位数以内所有自幂数
  18. 增量学习方法分类及近两年论文汇总
  19. php生成水印函数,php使用imagecopymerge()函数创建半透明水印
  20. python:迭代器对象,迭代器和迭代

热门文章

  1. 安卓设备安全相关技术
  2. 史上最全的CSS样式实现,提升你的效率
  3. 对勾和叉怎么打_word中插入打勾符号和打叉符号方法
  4. 软件模拟SPI接口程序代码(4种模式)
  5. java 有五个学生_《Java程序设计》 创建5个学生对象,给一个学生数组赋值,每个学生属性有:学号,姓名,年龄。...
  6. java后台程序员转android 之《三B》 支付宝支付 client join server 及采坑记录
  7. mysql 递归 性能_MySQL优化总结+自定义函数之递归
  8. 记录:FC-SAN与IP-SAN比较
  9. “野蛮人”姚振华是如何炼成的?
  10. 智见深度|京东ToB越过山丘