基于区块链技术的供应链金融中数据隐私保护方法

文档序号:27380019发布日期:2021-11-15 19:39阅读:484来源:国知局
基于区块链技术的供应链金融中数据隐私保护方法

1.本发明属于区块链与供应链金融技术领域,具体涉及一种基于区块链技术的供应链金融中数据隐私保护方法。


背景技术:

2.近年来,随着整个社会的需求、生产方式、社会分工不断发生改变,生产商品的模式也由单一企业完整性生产转变为多家企业合作生产,也因此形成了供应链,金融机构等资金方围绕核心企业管理上中下游中小企业的资金流,把单个企业的不可控风险转变为供应链企业整体的可控风险的模式被称为供应链金融。供应链金融主要由金融机构、核心企业、中小型企业供应商等参与,现阶段传统的供应链金融存在中小企业融资难、融资贵的问题依然突出,信息孤岛、商业汇票使用场景狭隘等弊端。
3.自2008年中本聪团队首次引入区块链以来,基于区块链技术的应用深入各个行业,目前,供应链金融与区块链技术的结合已经成为一个新的发展方向,基于区块链技术的供应链金融主要可以解决信息孤岛问题,并且利用智能合约实现自动结算和建立联盟链保证参与方的真实性等;基于区块链技术的供应链金融平台使交易数据具有可靠性和可共享性,所有信息公开透明,但同时也增加了披露企业商业隐私的风险,比如,企业并不希望自己企业的融资情况等敏感数据被共享给存在竞争关系的企业。
4.针对上述问题,基于区块链技术建立一套供应链金融联盟链的隐私保护方案是非常有必要的。现有的基于区块链技术的供应链金融隐私保护方案中存在单链模式单一,单链模式无法实现完全数据隔离;供应链中现实场景复杂,存在竞争关系的供应商之间数据也透明,使企业内部敏感数据容易泄露;企业中不同部门对信息访问的权限无法细分等问题。


技术实现要素:

5.本发明的目的是提供一种基于区块链技术的供应链金融中数据隐私保护方法,解决了现有技术中存在的数据无法隔离、企业内部敏感数据容易泄露、企业中不同部门对信息访问的权限无法细分的问题。
6.本发明所采用的技术方案是,基于区块链技术的供应链金融中数据隐私保护方法,具体按照以下步骤实施:
7.步骤1、选择hyperledger fabric许可区块链作为底层平台,在虚拟机上部署hyperledger fabric许可链网络;
8.步骤2、根据实际供应链金融中存在的多业务流程部署相应的多通道;
9.步骤3、每个通道中加入相应的组织organization代表核心企业、申请融资的中小型企业、金融机构;
10.步骤4、设计预付款融资模型,在每个通道中部署中小型企业申请预付款融资模型的智能合约;
11.步骤5、在每个通道上部署基于属性的访问控制智能合约,实现基于属性的权限区分;
12.步骤6、在每个通道中加入私有数据库的功能,使只有授权的组织才可以看到私有数据值,未被授权的组织只能看到相应的哈希,交易包含普通交易和私有数据交易两种不同类型的交易。
13.本发明的特点还在于,
14.步骤1中选择hyperledger fabric许可链作为搭建平台,hyperledger fabric许可链底层环境构建在golang语言之上,在虚拟机ubuntu16.04上部署搭建的hyperledgerfabric许可链网络。
15.步骤2具体如下:
16.对现实供应链场景进行分析,设供应链上存在多级供应商,核心企业的一级供应商有多个,其中的一级供应商中也存在多个二级供应商,对于不同供应商的货物渠道不同,涉及的业务流程也不同,因此,针对不同的业务流程划分不同的通道,将属于同一个业务流程的企业或者组织划分到同一个通道中,这样实现不同业务流程之间的数据隔离。
17.步骤3具体如下:
18.通过构建通道的初始配置创建通道,通道配置存储在账本中的一个配置区块里,通道配置指定哪些组织是通道成员,在通道上添加新块的排序节点,以及管理通道更新的策略,通道配置文件configtx.yaml中包含的最重要信息是作为通道成员的组织,每个组织都由成员服务提供商msp id和通道msp标识,通道msp标识存储在通道配置中,并包含用于标识组织的节点、应用程序和管理员的证书,对于组织加入通道,最开始在通道配置文件configtx.yaml中进行配置。
19.步骤4具体如下:
20.步骤4.1、选择供应链金融场景中上游的预付款融资场景,供应商发起融资申请,通过核心企业确认后在区块链上发行的商业票据作为凭证,核心企业发行商业票据,首先规定交易内容、发行者、商业票据编号、拥有者、发行时间和价值创建相应的商业票据,将商业票据的状态标记为已发行,然后记录商业票据的拥有者,将该商业票据添加到账本世界状态中所有类似商业票据的清单中,结果返回商业票据的唯一标识,商业票据的唯一标识是发行者和商业票据编号;
21.步骤4.2、核心企业将商业票据转移给申请融资的供应商,转移商业票据的过程是,首先验证当前商业票据拥有者是否符合当前交易的调用者,如果不符合则退出程序并提示;如果符合则继续验证商业票据是否符合已发行状态,不符合就退出程序并提示商业票据没有发行,如果符合,将商业票据的状态标记为可交易状态,再此检查商业票据是可交易状态,没有赎回,可以设置新的拥有者,然后记录交易时间,更新世界状态账本中的商业票据,最后返回商业票据;
22.步骤4.3、金融机构购买商业票据对申请融资的供应商放款,金融机构通过向票据拥有者购买商业票据的过程,首先验证当前商业票据拥有者是否符合当前交易的调用者,如果不符合则退出程序并提示;如果符合则继续验证商业票据是否符合可以交易状态,不符合就退出程序并提示商业票据状态不正确,如果符合,将商业票据的状态标记为可赎回状态,再次检查商业票据是可赎回状态,没有赎回,可以设置新的拥有者,然后记录交易时
间,更新世界状态账本中的商业票据,最后返回商业票据;
23.步骤4.4、核心企业收到货物并出售获得资金后通过向金融机构赎回商业票据的过程,首先验证商业票据是否符合已赎回状态,如果符合则退出程序并提示,如果不符合则继续验证持有者是否将赎回商业票据的核心企业设置为新的拥有者,是的话则设置票据拥有者为其发行者并将商业票据的状态标记为已赎回状态,记录交易时间,更新世界状态账本中的商业票据,最后返回商业票据。
24.步骤5具体如下:
25.步骤5.1、在基于属性的访问控制中,对于每一个主体,将主体id即sid及其属性一起存储,sa:表示主体属性,即subjectattribute,主体属性包括三种类型:状态status、处于供应链金融的级别level、通道channel,s
n
a对应于与object
n
相关联的属性集合;
26.步骤5.2、在基于属性的访问控制中,对于每一个客体,属性表示为oa,o
n
a对应于与object
n
相关联的一组属性集合;
27.步骤5.3、在基于属性的访问控制中,p
n
:存储策略,policyid即p
n
id是存储属性的必需字段,对于每个策略,将属性(p
n
sa,p
n
oa)一起存储;
28.步骤5.4、根据步骤5.1、5.2、5.3中的主体属性s
n
a、客体属性o
n
a、策略pn作出决策是否允许访问。
29.步骤6具体如下:
30.步骤6.1、普通交易流程是客户端将交易提案发给背书节点,背书节点模拟验证之后返回给客户端,客户端将接收到的交易传递给排序服务节点,排序服务节点将交易分组到块中,然后广播到其他节点,最后将交易写入到账本中;
31.步骤6.2、私有数据交易流程是客户端将交易提案发给背书节点,其中私有数据是在提案的临时域发送,背书节点将私有数据存储在临时存储库中,根据私有交易集合策略将私有数据交易通过网络协议gossip发给授权节点,将公共数据通过交易提案执行的响应发送回客户端,其中还包括私有数据键和值的哈希,客户端将收到的交易传递给排序服务节点,排序服务节点将交易分组到块中,然后广播到其他节点,最后将交易写入到账本的世界状态中。
32.本发明的有益效果是,一种基于区块链技术的供应链金融中数据隐私保护方法,在区块链上使用电子商业票据作为凭证来融资,解决了传统供应链金融中二、三级企业融资难、融资贵的问题,并且将电子票据的发行、购买、转移和赎回交易通过智能合约实现,将其交易记录在区块链上,实现信息透明化,可以很大程度为供应链金融的管理降低风控成本、提供便利。在此模型基础上设计了一种基于hyperledger fabric的供应链金融中数据的隐私保护方案,在现实供应链金融场景中存在多个业务流程,通过使用多通道的特性实现数据隔离。其次,建立私有数据集合,对某些敏感的私有数据,只有授权的企业才可以记录和访问在自己的账本中,还使用了基于属性的访问控制规则,使得多级别供应商之间访问数据权限不同。
附图说明
33.图1是本发明一种基于hyperledger fabric的预付款融资业务流程图;
34.图2是本发明模拟的基于hyperledger fabric多业务流程的供应链金融场景图;
35.图3是针对图2模拟的场景图,本发明针对基于hyperledger fabric的供应链金融中数据隐私保护架构图。
具体实施方式
36.下面结合附图和具体实施方式对本发明进行详细说明。
37.本发明基于区块链技术的供应链金融中数据隐私保护方法,流程图如图1所示,具体按照以下步骤实施:
38.步骤1、选择hyperledger fabric许可区块链作为底层平台,在虚拟机上部署hyperledger fabric许可链网络;
39.步骤1中选择hyperledgerfabric许可链作为搭建平台,因为它是联盟链的第一个开源项目,它使用可插拔组件来解决企业级问题。hyperledgerfabric许可链底层环境构建在golang语言之上,在虚拟机ubuntu16.04上部署搭建的hyperledgerfabric许可链网络。
40.步骤2、根据实际供应链金融中存在的多业务流程部署相应的多通道,以实现不同业务流程之间的数据隔离;
41.步骤2具体如下:
42.对现实供应链场景进行分析,设供应链上存在多级供应商,核心企业的一级供应商有多个,其中的一级供应商中也存在多个二级供应商,对于不同供应商的货物渠道不同,涉及的业务流程也不同,因此,针对不同的业务流程划分不同的通道,将属于同一个业务流程的企业或者组织划分到同一个通道中,这样实现不同业务流程之间的数据隔离。
43.步骤3、每个通道中加入相应的组织organization代表核心企业、申请融资的中小型企业、金融机构;
44.步骤3具体如下:
45.通过构建通道的初始配置创建通道,通道配置存储在账本中的一个配置区块里,通道配置指定哪些组织是通道成员,在通道上添加新块的排序节点,以及管理通道更新的策略,通道配置文件configtx.yaml中包含的最重要信息是作为通道成员的组织,每个组织都由成员服务提供商msp id和通道msp标识,通道msp标识存储在通道配置中,并包含用于标识组织的节点、应用程序和管理员的证书,对于组织加入通道,最开始在通道配置文件configtx.yaml中进行配置。
46.步骤4、设计预付款融资模型,在每个通道中部署中小型企业申请预付款融资模型的智能合约;
47.步骤4具体如下:
48.步骤4.1、选择供应链金融场景中上游的预付款融资场景,供应商发起融资申请,通过核心企业确认后在区块链上发行的商业票据作为凭证,核心企业发行商业票据,首先规定交易内容、发行者、商业票据编号、拥有者、发行时间和价值创建相应的商业票据,为了后续交易的区分与顺利执行,将商业票据的状态标记为已发行,然后记录商业票据的拥有者,将该商业票据添加到账本世界状态(世界状态是一个数据库,它存储了一组账本状态的当前值。通过世界状态,程序可以直接访问一个账本状态的当前值)中所有类似商业票据的清单中,结果返回商业票据的唯一标识,商业票据的唯一标识是发行者和商业票据编号;
49.步骤4.2、核心企业将商业票据转移给申请融资的供应商,转移商业票据的过程
是,首先验证当前商业票据拥有者是否符合当前交易的调用者,如果不符合则退出程序并提示;如果符合则继续验证商业票据是否符合已发行状态,不符合就退出程序并提示商业票据没有发行,如果符合,将商业票据的状态标记为可交易状态,再此检查商业票据是可交易状态,没有赎回,可以设置新的拥有者,然后记录交易时间,更新世界状态账本中的商业票据,最后返回商业票据;
50.步骤4.3、金融机构购买商业票据对申请融资的供应商放款,金融机构通过向票据拥有者购买商业票据的过程(本文不考虑钱款转移方式),首先验证当前商业票据拥有者是否符合当前交易的调用者,如果不符合则退出程序并提示;如果符合则继续验证商业票据是否符合可以交易状态,不符合就退出程序并提示商业票据状态不正确,如果符合,将商业票据的状态标记为可赎回状态,再次检查商业票据是可赎回状态,没有赎回,可以设置新的拥有者,然后记录交易时间,更新世界状态账本中的商业票据,最后返回商业票据;
51.步骤4.4、核心企业收到货物并出售获得资金后通过向金融机构赎回商业票据的过程(本文不考虑钱款转移方式),首先验证商业票据是否符合已赎回状态,如果符合则退出程序并提示,如果不符合则继续验证持有者是否是将赎回商业票据的核心企业设置为新的拥有者,是的话则设置票据拥有者为其发行者并将商业票据的状态标记为已赎回状态,记录交易时间,更新世界状态账本中的商业票据,最后返回商业票据。
52.步骤5、在每个通道上部署基于属性的访问控制智能合约,实现基于属性的权限区分;
53.步骤5具体如下:
54.步骤5.1、在基于属性的访问控制中,对于每一个主体,将主体id即sid及其属性一起存储,sa:表示主体属性,即subjectattribute,主体属性包括三种类型:状态status、处于供应链金融的级别level、通道channel,s
n
a对应于与subject
n
相关联的属性集合;
55.步骤5.2、在基于属性的访问控制中,对于每一个客体(资源),属性表示为oa(objectattribute),o
n
a对应于与object
n
相关联的一组属性集合;
56.步骤5.3、在基于属性的访问控制中,p
n
(policy):存储策略,policyid即p
n
id是存储属性的必需字段,对于每个策略,将属性(p
n
sa,p
n
oa)一起存储;
57.步骤5.4、根据步骤5.1、5.2、5.3中的主体属性s
n
a、客体属性o
n
a、策略p
n
作出决策是否允许访问。
58.步骤6、在每个通道中加入私有数据库的功能,使只有授权的组织才可以看到私有数据值,未被授权的组织只能看到相应的哈希,交易包含普通交易和私有数据交易两种不同类型的交易。
59.步骤6具体如下:
60.步骤6.1、普通交易流程是客户端将交易提案发给背书节点,背书节点模拟验证之后返回给客户端,客户端将接收到的交易传递给排序服务节点,排序服务节点将交易分组到块中,然后广播到其他节点,最后将交易写入到账本中;
61.步骤6.2、私有数据交易流程是客户端将交易提案发给背书节点,其中私有数据是在提案的临时域发送,背书节点将私有数据存储在临时存储库中,根据私有交易集合策略将私有数据交易通过网络协议gossip发给授权节点,将公共数据通过交易提案执行的响应发送回客户端,其中还包括私有数据键和值的哈希,客户端将收到的交易传递给排序服务
节点,排序服务节点将交易分组到块中,然后广播到其他节点,最后将交易写入到账本的世界状态中。
62.步骤6.2中所提到的私有数据是在通道上部署私有数据收集器,具体到收集器定义了哪些节点可以持有数据、数据要分发到哪些节点上、多少节点可以传播私有数据和私有数据在私有数据库中存放多久。
63.基于区块链技术的供应链金融中数据隐私保护方法,针对在供应链金融中的预付款融资的场景下,引用商业票据设计了一种与区块链结合的预付款融资模型,在此模型的基础上提出了数据隐私保护方法,借助了hyperledger fabric许可链中多通道的特性来实现数据隔离。除此之外,通过设置私有数据特性支持交易粒度的隐私保护,发送交易时指定该笔交易的授权方,该交易的明细只在授权方存储,私有数据的哈希在全网共识后存储,既保证了私有数据的有效隔离,又可以验证该私有数据的真实性。除此之外,还利用abac(基于属性的访问控制)技术提供更细粒度的数据保护,通过该方法可以有效实现供应链金融中数据的隐私保护。
64.实施例
65.步骤1、模拟供应链金融现实中的实际场景,如图2所示,实际供应链金融场景可能中存在3个业务流程,不同的虚实线表示不同的流程,业务流程1中包含核心企业(o1,organization1)、一级供应商a(o2,organization2)、二级供应商a(o4,organization4)、三级供应商a(o6,organization6)、金融机构(o9,organization9);业务流程2包含核心企业(o1,organization1)、一级供应商a(o2,organization2)、二级供应商b(o5,organization5)、三级供应商b(o7,organization7)、金融机构(o9,organization9);业务流程3包含核心企业(o1,organization1)、一级供应商b(o3,organization3)、二级供应商a(o4,organization4)、二级供应商b(o5,organization5)、三级供应商c(o8,organization8)、金融机构(o9,organization9);根据不同的业务流程在hyperledger fabric上搭建相应的网络;
66.步骤2、根据实际供应链金融中存的多业务流程搭建相应的多通道,以实现不同业务流程之间的数据隔离,针对图1模拟的3个业务流程的供应链金融场景,如图2所示实现了相应的3个通道的部署,分别用不同的虚实线表示,业务流程1所对应的就是通道c1(channel1),业务流程2所对应的就是通道c2(channel2),业务流程3所对应的就是通道c3(channel3)。
67.步骤3、通道中加入相应的组织organization分别代表核心企业、申请融资的中小型企业、金融机构,如图2所示通道中有不同的组织o
n
,其中通道1(channel1)中包含的组织有o1、o2、o4、o6和o9,每一个组织贡献一个节点peer
n
,通道1中相对应的节点包含peer1、peer2、peer4、peer6和peer9,每个节点需要维护相应通道的账本(ledger),通道1所维护的账本就是l1。每个通道还需要部署相应的系统链码chaincode,通道1所对应的系统链码就是cc1,通道2(c2)和通道3(c3)中所提到的组织、节点和链码与通道1类似。
68.步骤4、在每个通道上部署基于属性的访问控制链码,实现基于属性的权限区分,如图2中网络架构中每个通道都部署abac chaincode(基于属性的访问控制链码)并且链接排序服务(ordering service),在客户端提交交易时,通过部署的abac chaincode来进行判断是否允许交易执行。
69.步骤5、在每个通道中加入私有数据库的功能,使只有授权的组织才可以看到数据值,未被授权的组织只能看到相应的哈希,交易中就包含普通交易和私有数据交易两种不同类型的交易,授权节点和未授权节点数据库分别如图2中的peer1和peer7节点所示,peer1的账本l2中就包含世界状态world state和区块,世界状态中包含一个通道状态channel state和私有数据状态private state,通道状态包含公开数据和私有数据的哈希,私有数据状态包含私有数据的真实值。peer7的账本l2中包含世界状态世界状态world state和区块,但是其世界状态只包含一个通道状态,因此未授权的节点就无法查询到私有数据的真实值。
70.步骤6、设计了一种基于hyperledger fabric许可链的预付款融资模型,在每个通道中部署中小型企业申请预付款融资模型的智能合约,预付款融资业务流程图如图3所示。
71.步骤6.1、供应商和核心企业签订一笔大订单,供应商需要给核心企业提供货物,但是资金不够生产货物,需要申请融资来维持企业运营,因此向核心企业发起融资申请克服其短期融资需求。如图3中步骤1所示,
72.步骤6.2、核心企业会根据实际情况做出分析(例如申请融资的供应商是否与该企业有签订订单等信息),审查通过则会在区块链上发行一个商业票据,发行的商业票据作为凭证,如图3中的步骤2所示;
73.步骤6.3、在步骤6.2后,核心企业将商业票据转移给申请融资的供应商,申请融资的供应商通过出售商业票据来获取所需的资金,如图3中的步骤3所示;
74.步骤6.4、在步骤6.3后,金融机构认为是核心企业发行的,所以该商业票据是有信誉的,因此通过在短期内估值,从中可以获得利润,金融机构会在区块链上通过向票据持有者购买商业票据,申请融资的供应商也能获得金融机构购买商业票据的资金,如图3中的步骤4所示;
75.步骤6.5、在步骤6.4后,核心企业在收到货物并且出售后拿到相应的货款,在期限内通过区块链平台向金融机构赎回当时发行的商业票据,如图3中的步骤5所示。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1