采用哈希脱敏处理的区块链黑名单共享方法与流程

文档序号:19311793发布日期:2019-12-03 23:35阅读:1402来源:国知局
采用哈希脱敏处理的区块链黑名单共享方法与流程

本发明涉及互联网技术领域,更具体来说,涉及一种采用哈希脱敏处理的区块链黑名单共享方法。



背景技术:

随着大数据和互联网的兴起,数据驱动技术已成为各类行业发展的主流技术之一。构建足够规模的数据是数据驱动技术的基础,但是数据累计通常要耗费大量的人力物力。针对这一问题,通过整合不同机构的已有数据,让多个机构进行数据共享无疑是一种较好的解决方案。但是,不同机构之间进行数据的交换和共享对数据的安全性、时效性和真实性都有一定的要求。尤其在面临一些涉及隐私、商业机密等敏感数据上,比如黑名单、征信、白名单等用户数据,寻求一种有效的数据分享方法仍然是相关领域中有待解决的难题之一。

传统的数据库技术通常需要一个中心化的运营机构来构建数据中心,并采用多重防火墙等高安全性措施来保护数据不被黑客攻击,其运营成本极高,一旦安全漏洞被突破,损失将难以估计,同时,需要耗费大量的人力实现对数据库的更新和维护,从而大大提高各机构获取数据的成本。

近年来,一些方法提出采用区块链来实现数据的共享,通过将关键信息存储到区块链上,可直接建立不同机构之间点对点式的数据交换,以降低数据获取的成本。如专利“一种基于区块链技术的数据共享方法”、“基于区块链的数据共享方法”等均采用区块链实现数据的共享,但这些方法集中于采用区块链的分布式特性保证数据的可恢复性,部分方法直接将明文数据存储在链上,不能起到保护敏感数据隐私的作用,“基于区块链的数据共享方法”所采用密钥共享的方式难以满足敏感数据的安全性要求。目前,存在一些将区块链用于隐私数据处理的方法,如专利“基于属性加密的区块链隐私数据访问控制方法”实现了对数据的加密存储,但只有监管机构才能获取数据的信息,不支持对数据的共享访问,专利“一种基于区块链的涉及隐私数据的数据共享方法”采用私钥组合的方式实现节点的身份认证和数据共享,一方面,每一个节点共同持有私钥的一部分,仍然具有一定程度的安全隐患,另一方面,每一个节点在上传是需指定分享的对象,不具备动态的可扩展性。此外,上述方法均没有提供对数据的删除操作,在分享一些具有时效性的数据时,难以维护数据自身的有效性。



技术实现要素:

本发明的目的是,提供一种采用哈希脱敏处理的区块链黑名单共享方法,以解决原有的黑名单数据共享的成本高、数据的时效性差和安全性差的问题。

为解决上述技术问题,本发明所采用的技术方案如下:

一种采用哈希脱敏处理的区块链黑名单共享方法,所述方法包括:

各操作机构搭建自己的业务平台及网络节点,并将各机构所属的网络节点接入区块链网络;

通过业务平台向各自的网络节点发送业务请求,其中,所述业务请求包括黑名单数据的上传请求、删除请求和查询请求,至少对上传请求的部分数据字段进行脱敏和加密处理;

所述区块链平台对某一节点网络的业务请求向平台其它网络节点进行广播,根据共识结果在全网节点统一执行该业务请求,并在全网节点进行数据更新,其中,针对查询请求,在区块链平台的全网节点不作共识;

其中,黑名单数据广播应用于应用服务器,所述应用服务器为主节点,与多个分节点进行数据通信,所述黑名单数据广播包括步骤:

监测所述分节点之间的黑名单数据交换请求和应答;

根据监测结果为各个分节点分配相应的职责;

通知不参与本次交换的分节点作为监督方,对交换双方的交换条件进行校验;及

通知通过交换条件校验的分节点一对一进行数据交换。

进一步地,所述区块链平台包含数据层、网络层和智能合约,其中,

所述数据层,包括状态数据库和机构操作日志,所述状态数据库用于记录平台上传的黑名单数据,所述机构操作日志用于记录所述状态数据库的每一次更新操作;

所述业务平台调用各自网络节点上的智能合约,通过所述网络层向全网节点广播相应的业务请求,并根据共识结果在全网节点统一执行该请求,同时,所述智能合约还将各节点的业务请求映射为对状态数据库的读写操作。

进一步地,所述状态数据库的数据记录格式由如下多个字段组成:

黑名单数据={索引号,主键,详情信息,删除标记,上传者的身份标识},其中,平台上传的所述黑名单数据需依据预定义的所述记录格式进行字段填写,至少对主键进行脱敏处理,对详情信息字段进行算法加密处理。

进一步地,对业务请求的共识过程包括如下:

各网络节点将本机构的业务请求发送至kafka集群;

kafka集群收集所有的请求,并按kafka排序算法对所有请求进行排序;

kafka集群将经排序的请求队列返回给各节点;

各节点按时间或按交易数对请求队列进行切分,每一部分打包成一个区块;

共识过程中不断生成新的区块,节点接收到区块后,会再次检查交易的有效性,并在自己的节点上执行该操作。

进一步地,所述黑名单数据的上传流程包括如下步骤:

根据预定义的数据记录格式填写字段,包括数据的主键和详情信息,在各自的业务系统提交上传申请;

采用sha1算法对主键进行脱敏处理,采用椭圆曲线加密算法和业务方的公钥对详情信息进行加密;

调用区块链智能合约的上传方法,将经过脱敏和加密处理后的数据及公钥传送到区块链平台上;

智能合约的名单上传方法会检查该数据是否重复,若不重复,则将该请求发送到区块链全网节点进行共识;

等待共识确认后,各网络节点将该数据信息写入至各节点的状态数据库中进行保存,并将删除标记记为0。

进一步地,所述黑名单数据的删除过程包括如下步骤:

通过业务平台选择自己上传的一条记录,提交对该数据的删除申请;

获取该记录的索引值,并采用业务方的私钥对索引值进行椭圆曲线加密;

调用区块链智能合约的数据删除方法,将索引值、加密后的索引值发送给区块链平台;

智能合约的名单删除方法使用索引值对应的数据中的公钥对加密后的索引值进行解密,若解密后的索引值和传送来的索引值不匹配,则拒绝删除该数据,若成功,则广播该请求至全网进行共识;

等待共识确认后,各网络节点将状态数据库中对应的数据信息的删除标记记为1。

进一步地,所述黑名单数据的查询过程包括如下步骤:

在业务平台输入待查询数据主键的明文,提交对该数据的查询请求;

采用sha1算法获得主键的哈希值;

调用区块链智能合约的查询方法,将主键的哈希值发送到区块链平台上;

智能合约的查询方法根据主键的哈希值,在状态数据库中进行查询,若没有查询到,则返回空;若查询到相应的记录,则获取相应记录中的索引值、加密的详情信息和上传者的标识;

请求查询的机构所属的网络节点将查询请求进行全网广播,并同时发送本机构的公钥、待查询的数据索引值、加密的详情密文和上传者的公钥;

区块链网络其他节点捕获到该查询请求后,会检查上传者标识是否为自己,若上传者并非自己,则抛弃该请求,否则,首先使用私钥来对加密的详情进行解密,然后使用传来的公钥对该信息进行加密,接着使用私钥对加密的详情进行加密,把两份密文和自己的公钥进行全网广播;

请求查询的机构捕获到返回消息后,使用上传者的公钥对相应的密文进行解密,验证密文是否和状态数据库中的密文一致,若不一致,则抛弃该消息,若一致,则使用自己的密钥对相应的密文进行解密,得到所需的数据详情信息。

进一步地,新的区块通过哈希指针建立和节点上已有的最新区块的链接。

进一步地,各机构的网络节点在接入区块链网络之前,需调用公私钥对生成方法,生成自己机构的密钥ks和公钥kp,以支持后续的加密和签名操作。

基于本发明的另一方面,还提供一种基于哈希脱敏处理的区块链敏感数据共享系统,所述系统包括:业务平台和区块链平台,其中,

所述业务平台,用于向所述区块链平台发送各机构的业务请求;

所述区块链平台,接收所述业务平台的业务请求,在平台的全部网络节点进行广播,根据共识结果在全网节点统一执行该业务请求;其中,

所述区块链平台包含多个由上述机构搭建并接入区块链网络的网络节点,所述业务平台通过平台的数据上传接口、数据删除接口和数据查询接口,分别向各自的网络节点发送数据上传业务请求、数据删除业务请求和数据查询业务请求,其中,针对查询业务请求,在区块链平台的全网节点不作共识。

与现有技术相比,本发明所公开的一种采用哈希脱敏处理的区块链黑名单共享方法,达到了如下技术效果:

1、去中心化运营机构的共享模式无需建设数据中心,降低了其运营和建设成本,从而降低敏感数据获取的成本;通过区块链网络建立数据提供方和数据获取方的点对点通信,有效降低了数据获取的成本,并利用区块链上的哈希值来验证数据的真实性。

2、平台内的各机构可随时上传、删除和获取相应的数据,为各机构的数据分析奠定基础,从而实现各机构的互惠互利,满足敏感数据的时效性和规模等要求。

3、区块链能够保证上传数据的不可篡改,建立参与机构之间的数据信任,保护数据的安全;采用脱敏和加密的方式将敏感数据存储到区块链上,保证了敏感数据的不变性和安全。

附图说明

图1为本发明实施例所述的采用哈希脱敏处理的区块链黑名单共享方法的原理图。

图2为本发明实施例所述的基于哈希脱敏处理的区块链敏感数据共享系统中采用四家机构的网络拓扑图。

图3为本发明实施例所述的基于哈希脱敏处理的区块链敏感数据共享系统的架构图。

图4为本发明实施例所述的数据上传流程图。

图5为本发明实施例所述的数据删除流程图。

图6为本发明实施例所述的数据查询流程图。

具体实施方式

以下结合附图对本发明作进一步详细说明,但不作为对本发明的限定。

参照图1、图2所示,本发明实施例所公开了一种采用哈希脱敏处理的区块链黑名单共享方法,所述方法基于搭建的业务平台和区块链平台来实现,所述方法包括如下:

步骤s1:各操作机构搭建自己的业务平台及网络节点,并将各机构所属的网络节点接入区块链网络。

步骤s2:各机构通过业务平台向各自的网络节点发送业务请求,其中,所述业务请求包括黑名单数据的上传请求、删除请求和查询请求,至少对上传请求的部分数据字段进行脱敏和加密处理;通过脱敏和加密保证数据传输的安全性。

步骤s3:所述区块链平台对来自某一节点网络的业务请求向平台其它网络节点进行广播,根据共识结果在全网节点统一执行或不执行该业务请求,并在全网节点进行数据更新,其中,针对查询请求,在区块链平台的全网节点不作共识,也即针对黑名单数据的上传及删除请求,需要在全网节点作共识,但针对数据查询请求,由于其不涉及数据的更新,则不作共识。

黑名单数据广播应用于应用服务器,所述应用服务器为主节点,与多个分节点进行数据通信,所述黑名单数据广播包括步骤:监测所述分节点之间的黑名单数据交换请求和应答;根据监测结果为各个分节点分配相应的职责;通知不参与本次交换的分节点作为监督方,对交换双方的交换条件进行校验;及通知通过交换条件校验的分节点一对一进行数据交换。

参与机构首先需搭建各机构所属的网络节点接入区块链网络以进行区块链的共识,然后可通过各自的业务平台向各机构所属的网络节点发送业务请求,据此和其他机构的网络节点进行通信,实现对底层区块链的数据读写。所述区块链平台负责对网络节点的同步以及处理业务平台的请求,保证网络各节点的系统状态的一致性。

图2示出了本发明实施例中采用四个机构接入区块链网络的示意图,各机构具有自己独立的业务平台和区块链节点,各平台对应的区块链节点通过一个统一的集群kafka与其它节点建立通信,形成共识。

此外,本领域技术人员应当理解的是,本发明实施例中的业务请求不限于上传、删除、查询三种方式,还包括其它可以实现的业务类型,比如数据下载、数据更改等。

参照图3所示,图3示出了区块链平台与业务平台的交互关系,底层的区块链采用状态机复制技术在每一个节点上维护一个统一的状态数据库及操作日志,其中,状态数据库记录了所有的敏感型信息,敏感型信息的记录格式采用多个字段组合形成,而操作日志则完整的记录了各机构对状态数据库的更改记录。网络层负责对各节点的请求进行广播或共识。

状态数据库中的每一条记录包括由某一机构上传的一份敏感型信息,其主要包含如下五个字段:索引号、主键、详情信息、删除标记和上传者的身份标识。其中,索引号由区块链的交易号来进行标识,具有全局唯一性,删除标记则是一个标记位,比如通过0或1表示,用来标识该数据是否已被删除,其他数据主键和详情信息均采用加密算法进行加密,将加密后的密文保存在状态数据库中以实现对数据隐私性的保护。但本领域技术人员应当理解的是,本发明实施例中的黑名单数据的记录格式不限于上述所述的五个字段来表示,当为了实现某种业务请求时,可使用其中部分字段填写,或者加入新的字段。

操作日志则记录了对状态数据库的每一次更新操作,包括操作机构的身份标识以及操作的相关参数。区块链的所有节点会收集其他节点广播的数据共享业务请求(主要指数据上传和删除),并对请求的有效性和顺序进行共识。根据共识结果,将相应的业务操作打包成一个区块,并将新的区块返回给区块链各节点。随着数据相关业务操作的累计,区块链平台会不断生成新的区块并累计,新区块通过哈希指针建立和已有最新区块的链接,据此表示区块间的顺序。对于存放进来的历史数据源,因为它们是不能被修改的,我们可以对大数据作hash处理,并加上时间戳,存在区块链之上。在未来的某一时刻,当我们需要验证原始数据地真实性时,可以对对应的数据做同样的hash处理,如果得出的答案是相同的,则说明数据是没有被篡改过的。

区块链平台采用智能合约方式实现机构的业务操作,智能合约将业务的操作映射为对状态数据库的读写操作,并根据共识结果在全网节点上统一执行,以保证各节点状态数据库的一致性。一个智能合约是一套以数字形式定义的承诺(promises),包括合约参与方可以在上面执行这些承诺的协议。

业务平台会调用各机构节点上的智能合约,对全网节点广播相应的业务请求,具体包括黑名单数据的上传、删除和查询三大类操作。根据所需的业务操作类型,调用的智能合约方法不同,比如当需要上传数据时,调用区块链智能合约的数据上传方法,当需要删除数据时,调用区块链智能合约的数据删除方法,当需要查询数据时,调用区块链智能合约的数据查询方法。

下面以黑名单这种黑名单数据为例,对本发明实施例所公开的采用哈希脱敏处理的区块链黑名单共享方法进行详细描述。

本发明实施例中,所述区块链平台,主要包含数据层、网络层和智能合约三个部分。

数据层包含两个部分:第一个是黑名单状态数据库,其记录了所有机构上传的黑名单数据,第二个是机构操作日志,其以链式结构记录了所有机构的上传和删除操作,查询操作不做共识,也不对数据库进行修改,不记录进操作日志。

所述黑名单状态数据库每条数据库记录的格式如下:

黑名单信息={索引号,身份证,姓名,黑名单详情信息,上传机构的公钥,删除标记},其中,索引号由最近的一次操作id(交易号)确认,身份证和姓名均采用sha1算法进行脱敏处理;黑名单详情信息采用上传者的公钥进行椭圆曲线加密,删除标记为0或1,若为0,表示该数据没有被删除,若为1,表示该数据已被删除;数据库采用kv数据库实现,以身份证和姓名为主键。

操作日志则记录了对黑名单状态数据库的每一次更新操作,包括操作机构的身份标识以及操作的相关参数。操作日志将每一次更新操作都作为一笔交易,并生成一个全局唯一的交易号对其进行标识。操作日志是以链式结构进行存储,链接按时序连接不同的区块,每一个区块封装了若干排序的交易,区块头则记录了上一区块的哈希值。一旦之前的区块信息进行了更改,就出现区块链连接不上的现象,可有效杜绝数据篡改行为。

区块链的主要核心是对网络节点所收集的操作进行共识,并生成区块,本发明的共识过程如下:

1.网络节点将本机构的业务请求通过各自的区块链节点发送到kafka集群;

2.kafka集群收集所有的请求,并按kafka排序算法对所有请求进行排序;

3.kafka集群将经排序的请求队列返回给各节点;

4.各节点按时间或按交易数对请求队列进行切分,每一个部分打包成一个区块;

5.区块链的共识过程中不断生成新的区块,节点接收到区块后,会再次检查交易的有效性,并在自己的节点上执行该操作。

区块链上的所有操作都是采用智能合约执行,即采用智能合约实现对黑名单状态数据库的读写操作。区块链实现了智能合约的黑名单上传、删除和查询三大方法,由业务平台根据不同的业务需求进行调用。其中,上传方法是将黑名单信息写入到状态数据库中;删除方法是将对应的黑名单删除标记写为1;查询方法则是根据黑名单的身份证和姓名读取对应的黑名单记录。

业务平台会调用机构节点上的智能合约,通过网络层向全网节点广播相应的业务请求,具体包括黑名单的上传、删除和查询三大类操作。

参照图4所示,黑名单的上传是机构将最新收集的黑名单信息上传到区块链黑名单状态数据库的过程,其主要包含以下步骤:

1、机构的业务人员根据预定义的黑名单数据格式填写字段,包括黑名单人员的姓名n、身份证id、黑名单详情m,在业务系统上提交上传申请。

2、上传接口采用sha1算法对姓名n和身份证id进行脱敏处理,得到相应的姓名密文ns和身份证密文ids,然后采用椭圆曲线加密算法和业务方的公钥kp对黑名单详情m进行加密,得到详情的密文ms;基于区块链的数据脱敏技术能保证数据私密性,为隐私保护下的数据开放提供了解决方案。数据脱敏技术主要是采用了哈希处理等加密算法。

3、上传接口调用区块链智能合约的上传方法,将经过脱敏和加密处理后的数据ns、ids和ms、公钥kp作为参数传递给智能合约的方法接口。

4、智能合约的名单上传方法会根据姓名密文ns和身份证密文ids检查该黑名单信息的重复性,若不重复,则将该请求发送到区块链全网进行共识,若重复,则向本机构业务平台返回名单重复消息。

5、等待共识确认后,各网络节点将该黑名单信息写入至各节点的状态数据库中进行保存,并将删除标记记为0。

参照图5所示,黑名单的删除是机构删除本机构之前上传的黑名单信息,其主要包含以下步骤:

1、机构的业务人员选择本机构上传的一条记录,在业务系统提交对该黑名单的删除申请。

2、删除接口获取该记录的索引值h,并采用业务方的私钥ks对索引值进行椭圆曲线加密,得到相应的索引值密文hs。

3、删除接口调用区块链智能合约的名单删除方法,将索引值h、加密后的索引值hs发送给智能合约的方法接口。

4、智能合约的名单删除方法使用索引值h对应的黑名单数据中的公钥kp对加密后的索引值hs进行解密,若解密后的索引值h’和传送来的索引值h不匹配,则拒绝删除该黑名单,若成功,则广播该请求至全网进行共识。

5、等待共识确认后,各网络节点将状态数据库中对应的黑名单信息的删除标记记为1。

参照图6所示,黑名单的查询是机构根据身份证和姓名查询该用户是否为黑名单用户,并得到黑名单具体信息的过程,其主要包含以下步骤:

1、机构的业务人员输入待查询黑名单信息的身份证n和姓名id,在业务平台中提交对该黑名单的查询请求。

2、查询接口采用sha1算法获得身份证和姓名的哈希值ns和ids;

3、查询接口调用区块链智能合约的查询方法,将身份证和姓名的哈希值ns和ids发送到智能合约的方法接口。

4、智能合约的查询方法根据身份证和姓名的哈希值ns和ids,在黑名单状态数据库中进行查询,若没有查询到,则返回空;若查询到相应的记录,则获取相应记录中的索引值h、加密的黑名单详情ms和上传者的公钥kp。

5、查询机构的网络节点将查询请求全网广播,并同时发送本机构的公钥kp1、待查询的黑名单索引值h、加密的详情密文ms和上传者的公钥kp。

6、网络其他节点捕获到该查询请求后,会检查上传者公钥是否为自己的公钥,若不是,则抛弃该请求,否则,首先使用私钥ks来对加密的详情ms进行解密,然后使用传来的公钥对kp1该信息进行加密,得到详情密文ms1,接着使用私钥ks对原始加密的详情ms进行加密,得到签名后的密文ms2,把两份密文ms1和ms2,以及自己的公钥kp进行全网广播。

7、查询机构捕获到返回消息后,使用上传者的公钥kp对相应的密文ms2进行解密,验证解密后的密文ms3是否和状态数据库中的密文ms一致,若不一致,则抛弃该消息,若一致,则使用自己的密钥ks1对相应的密文ms1进行解密,得到所需的黑名单详情信息m。

本发明实施例所公开的一种采用哈希脱敏处理的区块链黑名单共享方法,位于区块链中节点的各机构可随时上传、删除和获取相应的数据,为各机构的数据分析奠定基础,从而实现各机构的互惠互利,也满足敏感数据的时效性和规模等要求。此外,黑名单数据的上传中,采用脱敏和加密的方式将敏感数据存储到区块链上,保证了敏感数据的不变性和安全性。

再请参照图2、图3所示,与上述方法相对应的,本发明另一实施例还提供了一种基于哈希脱敏处理的区块链敏感数据共享系统,用以执行上述方法,所述系统包括:业务平台和区块链平台,其中,

所述业务平台,由各参与机构搭建,用于向所述区块链平台发送各机构的业务请求,以及接收从所述区块链平台返回的处理结果;

所述区块链平台,接收所述业务平台的业务请求,在平台的全部网络节点进行广播,根据共识结果在全网节点统一执行或不执行该业务请求,并返回处理结果给所述业务平台;其中,

所述区块链平台包含多个由上述机构搭建并接入区块链网络的网络节点,各业务平台通过各自的网络节点发送相应的业务请求,所述业务平台包括数据上传接口、数据删除接口和数据查询接口,分别用于黑名单数据的上传、删除和查询,其中,至少针对通过上传接口上传的部分数据字段进行脱敏和数据加密处理,针对查询业务请求,在区块链平台的全网节点不作共识,而针对上传和删除请求,则需经过全网共识后方在各节点的状态数据库进行更新。

本发明实施例中所述的黑名单数据处理系统未详尽之处,请参阅上述实施例中的敏感数据共享方法,故在此不作赘述。

本发明所提出的采用区块链实现去中心化的黑名单数据分享方案,不仅拓宽了区块链技术的应用领域,还为金融、安全等领域的敏感数据共享提供了一种新的解决途径和思路,解决了原有的敏感数据共享的成本高、数据的时效性和安全性较差等问题。

上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1