组织机构/年会活动: 中国交易银行50人论坛 中国供应链金融产业联盟中国供应链金融年会 中国保理年会 中国消费金融年会 第三届中国交易银行年会

区块链技术在贸易融资中的应用及挑战

时间: 2018-01-10 23:27:39 来源:   网友评论 0
  • 本文尝试从业务场景选择及技术框架两方面进行解析,分享在产品开发中总结出的相关经验,为区块链研发者们提供一个参考思路。

作者:彭自顺 谢环球 万志丹 文思海辉技术有限公司

来源:talkwithtrend


区块链技术经过两年的迅猛发展,在金融领域的证据固化、积分管理、慈善链条跟踪,甚至于跨境支付等方面的不断探索,极大的丰富了区块链的应用场景,扩展了区块链的生态。


作为银行对公业务的主流,贸易融资领域自然会是区块链将来应用的一个重要场景。在贸易融资领域中进行区块链的应用,将会对其造成革命性的变化,但当前仍在区块链安全方面存在很大的挑战。文思海辉区块链研发人员通过对现有贸易融资产品的分析研究,开发出了区块链贸易融资产品,并将区块链云应用部署在基于IBM LinuxONE的IBM BAAS(BlockChain as a Service)上来实现高安全区块链网络。


本文尝试从业务场景选择及技术框架两方面进行解析,分享在产品开发中总结出的相关经验,为区块链研发者们提供一个参考思路。


一、业务场景说明


贸易融资是银行的重要业务之一,是在商品交易中,银行运用结构性短期融资工具,基于商口交易中的存货、预付款、应收账款等资产的融资。自偿性是贸易融资的重要特点之一。我国银行在经营贸易融资上经过近二十余年的发展已产生了丰富的品种,为国民经济的发展提供了大量的资金血液。


银行常见的外贸贸易融资产品有:

  • 出口打包贷款

  • 出口押汇/贴现

  • 订单融资

  • 福费廷

  • 出口信保融资

  • 进口信用证

  • 进口押汇

  • 进口代付

  • 提货担保


银行常见内贸贸易融资产品有:

  • 国内信用证开证

  • 买方押汇

  • 国内证打包贷款

  • 卖方押汇

  • 国内证福费廷


除以上品种外,国际保理、国内保理通过与供应链的多种衔接也成为日益重要的贸易融资手段。


1.1 区块链为贸易融资风险管理带来的变化


因贸易融资的自偿性特点,每一笔业务的办理都必须严格核定各项业务凭据,做好客户的各项资信调查,货物贸易项下还需了解市场情况、运输情况、储存情况等。而贸易融资普遍存在单笔金额较小,而总笔数较多的特点。手续多、流程长、办理复杂使得贸易融资从业者一直战战兢兢,一笔、两笔出现问题,经营单位一年就白忙活了。目前银行在为客户办理贸易融资业务时,对于客户情况、贸易背景的了解、业务的风险控制以及业务办理完成后的贷后管理一般是通过“人”进行情报资料的收集、对比验证信息、现场实地考察与监督。基于贸易本身涉及行业面广,交易链条长、结算方式多样,银行对于各类贸易融资的业务管理和风险控制,写在规章制度上易,落实在实际操作环节难。


区块链的出现,通过数字加密、点对点通信、分布式共识等技术将贸易各环节“可信”的联接到一起,使得贸易双方及中间参与者真实信息能够快速、透明的交换,并借助智能合约这一工具推进交易的快速执行。


一个完整区块链贸易融资平台,从贷前调查、贷中审核、贷后管理各个方面均能够通过对贸易各环节的在线全流程管理、实时掌控而得到极大的简化。从而一方面将极大地减少银行人力成本的投入,解决投入产出比的效益问题,线下转线上免去了多渠道搜集信息的高成本,银行可以以更少的人力投入去做更多客户的更多业务,从而实现巨大的规模效益;另一方面由于各相关方信息的接入,原本分散的信息集中而全面,有利于银行快速准确地进行信息的验证和比对,提高对贸易背景真实性的把握,极大地减少相关方人为造假的道德风险,使银行更有信心和底气来推动贸易融资业务的发展。


通过在前期各方面研究并对区块链贸易融资业务进行实际开发、流程测试后,上述各项优点在区块链系统中均得到了良好的体现,成本效益优势明显,且随着加入者的进一步增多(包括参与者类型的增多及参与者个数增加)优势将更加明显。但在此时,区块链原本进行的数据分发工作所带来的数据隐私问题确越发突出,成为我们不得不突破的一个重点。


例如:当区块链网络内只有出口商A1、进口商Z1、开证行B1、通知行C1时,其数据在上述四者之间共享是各参与者可以接受的。但当参与者进一步扩展到如下情况时,出口商(A1、A2、A3),进口商(Z1、Z2、Z3),开证行(B1、B2、B3),通知行(C1、C2、C3) ,此时出口商A1绝对不会允许将自已的商业数据以任何方式让A2、A3及其关联伙伴看到;同理,进口商、开证行、通知行也是如此。


商场如战场,信息是每一个金融参与者的命脉。确保参与者之间的数据共享与隐私之间的平衡将是区块链贸易融资系统的一个重要突破难点。


1.2 业务场景设计


贸易融资的最大风险来源于贸易的真实性,因此系统在设计时重点将整个贸易相关的单证交易链条引入到区块链平台,并在未来考虑将物流、仓储、税务相关的信息扩充进来,从而做到平台上信息的一个完整闭环。


为在贸易融资中最大化程度利用区块链所带来的优势,将整个贸易融资的流程数据均进行上链处理,因此贸易背景、交易执行情况、融资情况在链上将形成一个完整的闭环,同时这还会带来一个附加的优势,交易双方银行将可以通过区块链平台本身完成可信信息交换,从而提高交易速度并降低交易成本。


考虑到区块链本身并不适于存储大量信息,因此在数据上链时需要仔细的进行设计,确保关键的、有价值数据能存于链上,这要求设计人员具有非常丰富的业务处理经验,熟悉整个产品的全交易流程。


另一方面,目前几乎所有的银行都拥有行内的单证、贸易融资处理系统,且区块链并不擅长进行交易前端处理。较好的方案是区块链平台采用与现有银行交易系统进行接口对接的模式来进行集成,由行内现有交易系统完成数据录入、交易处理后上载相关信息到区块链平台,同时区块链平台通过区块生成、发布记账、智能合约来驱动相关参与方行内交易系统接收信息、生成交易。


二、技术实现方案


2.1 技术框架调研


为实现区块链贸易融资系统,研发团队对主要的区块链技术框架进行了研究,下面就简单的分析及比较下几个主流的区块链技术。

经过比较,结合银行的业务模式以及发展趋势最终选择了fabric作为区块链基础平台。


2.2 系统组成

区块链应用云系统

支持多住户,为参与机构快速接入区块链系统提供服务,提供区块链业务处理、查询等功能。

应用API接口

封装应用系统与区块链的通信、认证、智能合约调用等与区块链交互功能,目的是简化区块链应用的开发。 有开发能力的参与机构可以通过应用API接口,实现行内系统与区块链系统直接进行通讯。

区块链管理系统

提供区块链系统的管理功能,由联盟管理委员会使用,参与者接入注册、注销,智能合约发布、升级,区块链平台监控等。

智能合约

智能合约由管理委员会编写、组织评审、发布等。智能合约运行在区块链平台容器中,由区块链管理系统进行部署、升级、管理。

HyperLedger fabric

区块链基础技术平台,提供区块链、智能合约执行平台等。

■ 区块链应用云系统

区块链用户管理:

用于用户开通云应用,创建云用户,自动部署fabric节点,导入身份证书等。

业务处理:

实现具体业务处理功能,业务查询、业务处理等功能。

■ 区块链管理系统

参数管理:

维护系统内机构清单;区块链系统的管理员用户及证书资料等。

区块链用户管理:

负责新参与机构接入系统时以区块链管理员的身份创建新用户;负责注销已有用户。注册和注销支持审批确认流程。可以导出公共用户及证书资料,以便新安装银行前置用户可以登录到区块链业务系统执行新建用户申请。

合约管理:

实现智能合约的发布、升级和撤销。智能合约分为参数合约和业务合约,参数合约实现新银行用户管理、机构数据管理和用户公钥管理等功能。

区块链监控:

监控区块链运行情况。

■ HyperLedger fabric

成员服务:


这项服务用来管理节点身份、隐私、confidentiality 和 auditability。在一个 non-permissioned的区块链网络里,参与者不要求授权,所有的节点被视作一样,都可以去submit一个transaction,去把这些交易存到区块(blocks)中。那Membership Service是要将一个 non-permissioned的区块链网络变成一个permissioned的区块链网络,凭借着Public Key Infrastructure (PKI)、去中心和一致性。


区块服务:


Blockchain services使用建立在HTTP/2上的P2P协议来管理分布式账本。提供最有效的哈希算法来维护world state的副本。采取可插拔的方式来根据具体需求来设置共识协议,比如PBFT,Raft,PoW和PoS等等。


链码服务(智能合约):


Chaincode services 会提供一种安全且轻量级的沙盒运行模式,来在VP节点上执行chaincode逻辑。这里使用container环境,里面的base镜像都是经过签名验证的安全镜像,包括OS层和开发chaincode的语言、runtime和SDK层,目前支持Go开发语言。


事件服务:


在blockchain网络里,VP节点和chaincode会发送events来触发一些监听动作。比如chaincode是用户代码,它可以产生用户事件。


API 和 CLI:


提供REST API,允许注册用户、查询blockchain和发送transactions。一些针对chaincode的API,可以用来执行transactions和查询交易结果。对于开发者,可以通过CLI快速去测试chaincode,或者去查询交易状态。


2.3 网络部署方案


1、组建虚拟专有网


Fabric虽然通过各种加密算法确保了应用在互联网运行的安全性,对于安全要求非常高的金融级应用,建议组建虚拟专用网来提高安全性,证书采用硬件存储。

2、应用部署


区块链一重要特点是去中心化,但现阶段在实际金融类应用中去完全去中心化还存在困难,如身份认证问题、参与者快速接入等还是需要中心化节点的支撑。

骨干成员:部署区块链系统全部节点:CA、order、peer,并部署区块链云应用,为小型参与者提供接入服务。


大型成员:具有一定实力的成员,可部署order、peer,以及实现内部应用通过区块链API直接对接区块链


特殊成员:对自主性有一定要求的参与者,可自行部署order、peer节点等。


区块链云应用部署现部署在IBM BAAS(BlockChain as a Service)上,IBM BAAS是基于LinuxONE架构的区块链云服务平台。IBM LinuxONE拥有最高等级国际安全认证(EAL 5+)、独有安全服务容器(SSC)设计、固件级代码加密、基于硬件加密模组(HSM)保护的金钥等设计,各云用户系统提供物理级别的隔离。另外,LinuxONE针对区块链常用加密算法在硬件/微码/超级账本等方面进行专门优化并大幅提升性能(10x Hash/50x ECC)。轻松支持区块链业务快速成长,并以分布式配置+集中化架构高效规避网络瓶颈(7X 吞吐/减少 82% 响应时间)。同时,进平台支持PaaS和SaaS不同层次的云服务,使用户专注应用实现,大大简化了区块链应用开发、部署。


2.4 合约设计


1.用户业务加密公钥合约


此合约中主要是用来在用户注册的时候保存用户的业务加密公钥合约,业务数据入链时,对业务数据加密KEY进行加密用来保证各个业务参与方都能够拿到业务机密key,非参与方无法获取,从而保证数据的部分可见性。主要提供添加用户业务加密公钥接口和获取用户业务加密公钥接口。


2.业务数据合约


此合约用来存储业务的加密数据,以及业务加密key,在业务数据入链时负责将业务数据按照指定的编排方式进行存储,方便进行对同笔业务进行操作,能够快速获取一笔业务的整个流程数据信息。同时,负责业务加密key数据的管理,包括各个参与方以及新加入参与方的加密key数据的存储和查询。主要提供了业务数据存储接口、业务数据查询接口、业务加密key增加接口、业务加密key获取接口。


3.用户业务通知合约


此合约主要是用来保存各个参与方的交易列表,在新业务交易进入的时候,会给各个参与方产生一个通知队列,然后各个参与方可以通过定时查询去获取自己当前的通知队列中是否有任务来达到任务的通知处理。主要提供了用户通知队列任务增加接口和用户通知队列任务查询接口。


4.简要流程说明


(1)入链流程数据变化图

(2)数据入链流程说明


  • 业务初始数据按照特定的json格式组装,组装好后进行json的序列化


  • 生成AES密钥序列化后的json数据进行加密得到加密后的数据


  • 从区块链平台中查询出各个参与方的加密公钥


  • 将AES密钥用各个参与方的加密公钥加密


  • 将业务数据、参与方的密钥加密数据以及参与方的通知队列数据写入到区块链的合约中


(3)出链流程数据变化图

(4)数据出链流程说明


  • 接收方查询到通知队列后,获取到业务编号


  • 通过业务编号获取到自己的业务key加密数据


  • 通过业务编号获取到业务加密数据


  • 用自己的私钥来解密业务key


  • 用解密后的key解密业务数据


2.5 在技术实践中遇到的问题以及解决方法


1、数据隐私保护


由于区块链中所有的数据都是透明的,每个人参与的用户都能够拿到每一个块每一个交易的数据,所以参与机构间的业务敏感数据就涉及到加解密来保证业务数据只有参与方才能够看到,下面就此次应用中选用的数据加密算法做一个简单的描述。


(1)散列算法:


本次采用的是SHA-1,主要是用来得到业务的编号以及用户的标识,这样散列后的标识利于做数据存储的键值,如果需要使用国密算法的话可以用国密SM3算法来替代。


(2)对称加密算法:


本次采用的是AES加密业务数据,采用AES加密数据是因为它加解密数据快,能够在数据写入和读取前后做加解密,如果需要使用国密算法的话可以用国密SM4算法来替代。。


(3)非对称加密算法:


本次采用的是RSA的加密算法,虽然它加密慢,但是由于它的特性是密钥对存在,可以很好的用于业务数据加密KEY的加密,给每个参与方都加密一份key的加密数据这样各个参与方都能够用自己的私有密钥去解析得到对称KEY从而解析出真正的业务数据,从而达到数据的部分可见,如果需要使用国密算法的话可以用国密SM2算法来替代。


2、历史数据归档问题


经过多方研究,归档暂时无很好的解决办法,建议区块链不使用在高频率交易的场景,入链数据应是高价值数据;海量数据传统存储,高价值不可篡改数据链上存储。


[收藏] [打印] [关闭] [返回顶部]


  •  验证码:
热点文章
中国贸易金融网,最大最专业的中文贸易金融平台