一种基于区块链的数据共享交换方法技术

技术编号:25439830 阅读:35 留言:0更新日期:2020-08-28 22:27
本发明专利技术公开了一种基于区块链的数据共享交换方法,设置包括Master节点、Slave节点和区块链的数据共享系统,提供数据的参与方将数据存储至Slave节点,提供数据应用代码的参与方通过Master节点将代码部署至Slave节点,并由Slave节点建立包含代码的Docker镜像,参与方通过Master节点实现代码订阅和代码调用,在数据共享交换过程中由区块链记录各项交易。本发明专利技术在保证提供数据服务的参与方数据不出库的前提下实现不同参与方之间数据的共享交换以及交易可信记录。

【技术实现步骤摘要】
一种基于区块链的数据共享交换方法
本专利技术属于数据共享
,更为具体地讲,涉及一种基于区块链的数据共享交换方法。
技术介绍
随着大数据和云计算时代的到来,数据展现出巨大的潜在价值,数据的共享交换有助于消除不同机构之间的信息孤岛,实现信息的流通并利用数据做出合理的决策。图1是传统的数据共享架构图。如图1所示,该数据共享方案基于可信的第三方服务器,不同的数据共享参与方将各自的代码、数据及相关权限保存在中心化的第三方服务器中,在数据共享交换过程中,参与方发起代码调用请求,第三方负责检查是否有权限调用代码并负责代码的调用,完成数据的查询、分析,实现数据的共享交换。在这种模式下,每个参与方对于自身的数据、代码没有控制权,如果第三方服务器是恶意的,则有可能篡改数据和代码的归属权、泄露隐私数据或者让不具有相关权限的参与方调用代码使用其它参与方的数据。基于目前数据共享交换中存在的安全风险,需要一种新的数据共享交换架构,不依赖于中心化第三方实现不同参与方之间数据、代码的互通,同时保障数据、代码的合法使用以及隐私安全。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于区块链的数据共享交换方法,在保证提供数据服务的参与方数据不出库的前提下实现不同参与方之间数据的共享交换以及交易可信记录。为了实现上述专利技术目的,本专利技术基于区块链的数据共享交换方法包括以下步骤:S1:设置数据共享系统,包括Master节点,Slave节点和区块链,其中:Master节点用于保存所有参与方和数据Slave节点的信息,并作为所有参与方请求的入口,接收每个参与方发来的请求进行审核后转发至相应Slave节点;Slave节点用于存储参与方数据,每个提供数据的参与方对应一个或多个Slave节点,Slave节点接收其它参与方的代码以及相关请求,提供安全环境进行代码存储和运行;区块链包括若干区块链节点,用于在数据共享交换过程中作为可信第三方数据库记录数据、代码的归属权以及参与方进行的数据共享交换操作;S2:数据共享系统启动时进行初始化,具体包括:Master节点、各个Slave节点和各个区块链节点分别向第三方权威机构申请数字证书;数据共享交换的每个参与方分别在Mater节点上进行注册,每个参与方分别设置一对非对称加密算法的公私钥来标识各自身份,其中公钥对其它所有参与方可见,私钥由各参与方自行安全存储;每个提供数据的参与方将其对应的Slave节点在Mater节点上进行注册,注册信息中包括Slave节点信息以及所存储数据的描述性信息;Mater节点将注册到其上的参与方信息和Slave节点信息保存到区块链上,保存在区块链上的信息对所有参与方可见;S3:提供数据应用代码的参与方将代码进行加密,将加密代码的解密密钥采用所要部署的Slave节点对应参与方公钥进行加密,然后将加密代码、加密后的解密密钥连同部署请求一起发送至Master节点,Master节点对该部署请求进行审核,如果审核不通过则将审核结果反馈至参与方,如果审核通过则将审核通过的部署请求转发给对应Slave节点;然后Master节点将加密代码、加密后的解密密钥、部署请求以及部署请求的审核结果作为一条代码部署交易保存到区块链上;Slave节点在接收到Master节点发来的部署请求后,再次进行审核,如果审核不通过则将审核结果通过Master节点反馈至代码部署的参与方,如果审核通过则从区块链上下载加密代码和加密后的解密密钥,首先采用对应参与方的私钥对加密后的解密密钥进行解密,再采用解密密钥对加密代码进行解密,在本地建立包含代码的Docker镜像,以便后续在安全运行环境中运行;Slave节点将对部署请求的处理结果更新至区块链上的对应代码部署交易中;S4:需要订阅代码的参与方向Master节点发送订阅请求,Master节点在接收到订阅请求后,首先对该订阅请求进行审核,如果审核不通过则将审核结果反馈至参与方,审核通过后将订阅请求转发给相应Slave节点;然后Mater节点将订阅请求和订阅请求的审核结果作为一条代码订阅交易保存到区块链上;Slave节点接收到订阅请求后,再次对订阅请求进行审核,如果审核不通过则将审核结果通过Master节点反馈至参与方,如果审核通过则在代码对应Docker镜像的基础上建立Docker容器并启动代码运行,为该代码生成一个调用凭证,并采用订阅该代码参与方的公钥对调用凭证进行加密,然后将加密后的调用凭证上传到区块链上;Slave节点将对订阅请求的处理结果更新至区块链上的对应代码订阅交易中;S5:参与方从区块链上下载已订阅代码的调用凭证并采用自身私钥解密,在需要进行代码调用时,将代码对应的调用凭证和包含代码执行参数的调用请求一起发送至Master节点,Master节点在区块链上新增一条代码调用交易并将调用凭证和调用请求转发至对应Slave节点;Slave节点对调用凭证进行验证,如果验证不通过则将验证结果通过Master节点反馈至代码调用的参与方,如果验证通过则调用运行在Docker容器中的代码,Docker容器通过特定的通信接口接收调用请求,根据调用请求中的代码执行参数运行代码,代码运行过程中通过预设的数据访问接口访问数据库,得到代码调用执行结果,然后生成本次代码调用执行结果的交付凭证,使用代码调用参与方的公钥对该交付凭证进行加密,然后将加密后的交付凭证上传到区块链上;Slave节点将对调用请求的处理结果更新至区块链上的对应代码调用交易中;代码调用的参与方从区块链上下载交付凭证,采用自身私钥解密后从中提取代码调用执行结果。本专利技术基于区块链的数据共享交换方法,设置包括Master节点、Slave节点和区块链的数据共享系统,提供数据的参与方将数据存储至Slave节点,提供数据应用代码的参与方通过Master节点将代码部署至Slave节点,并由Slave节点建立包含代码的Docker镜像,参与方通过Master节点实现代码订阅和代码调用,在数据共享交换过程中由区块链记录各项交易。本专利技术具有以下有益效果:1)相比于传统的数据共享交换方法中参与方的请求直接发送给服务器,本专利技术中Master节点可以通过预设规则(例如黑白名单)或人工审核对发往Slave节点的请求进行审核,过滤掉没有权限的非法请求,这些非法请求不会发往Slave节点,实现了对Slave节点的访问控制;2)相比于传统的数据共享交换方案中参与方将数据交付给第三方,在本专利技术的整个数据共享交换过程中,提供代码服务的参与方能够将代码部署到Slave节点并使用数据服务,做到数据不出库;同时Slave节点可以为代码提供基于Docker的安全运行环境,保障代码安全;此外还可以通过设置代码对数据的访问控制规则,进一步保障数据安全;3)相比于传统的数据共享架构,区块链的出现可以明确数据和代码的归属权,使得参与方无法对过去的数据共享交易记录抵赖,并且防止中心化的服务器篡改交易记录。这是因为区块链中每一个本文档来自技高网...

【技术保护点】
1.一种基于区块链的数据共享交换方法,其特征在于,包括以下步骤:/nS1:设置数据共享系统,包括Master节点,Slave节点和区块链,其中:/nMaster节点用于保存所有参与方和数据Slave节点的信息,并作为所有参与方请求的入口,接收每个参与方发来的请求进行审核后转发至相应Slave节点;/nSlave节点用于存储参与方数据,每个提供数据的参与方对应一个或多个Slave节点,Slave节点接收其它参与方的代码以及相关请求,提供安全环境进行代码存储和运行;/n区块链包括若干区块链节点,用于在数据共享交换过程中作为可信第三方数据库记录数据、代码的归属权以及参与方进行的数据共享交换操作;/nS2:数据共享系统启动时进行初始化,具体包括:/nMaster节点、各个Slave节点和各个区块链节点分别向第三方权威机构申请数字证书;/n数据共享交换的每个参与方分别在Mater节点上进行注册,每个参与方分别设置一对非对称加密算法的公私钥来标识各自身份,其中公钥对其它所有参与方可见,私钥由各参与方自行安全存储;/n每个提供数据的参与方将其对应的Slave节点在Mater节点上进行注册,注册信息中包括Slave节点信息以及所存储数据的描述性信息;/nMater节点将注册到其上的参与方信息和Slave节点信息保存到区块链上,保存在区块链上的信息对所有参与方可见;/nS3:提供数据应用代码的参与方将代码进行加密,将加密代码的解密密钥采用所要部署的Slave节点对应参与方公钥进行加密,然后将加密代码、加密后的解密密钥连同部署请求一起发送至Master节点,Master节点对该部署请求进行审核,如果审核不通过则将审核结果反馈至参与方,如果审核通过则将审核通过的部署请求转发给对应Slave节点;然后Master节点将加密代码、加密后的解密密钥、部署请求以及部署请求的审核结果作为一条代码部署交易保存到区块链上;/nSlave节点在接收到Master节点发来的部署请求后,再次进行审核,如果审核不通过则将审核结果通过Master节点反馈至代码部署的参与方,如果审核通过则从区块链上下载加密代码和加密后的解密密钥,首先采用对应参与方的私钥对加密后的解密密钥进行解密,再采用解密密钥对加密代码进行解密,在本地建立包含代码的Docker镜像,以便后续在安全运行环境中运行;Slave节点将对部署请求的处理结果更新至区块链上的对应代码部署交易中;/nS4:需要订阅代码的参与方向Master节点发送订阅请求,Master节点在接收到订阅请求后,首先对该订阅请求进行审核,如果审核不通过则将审核结果反馈至参与方,审核通过后将订阅请求转发给相应Slave节点;然后Mater节点将订阅请求和订阅请求的审核结果作为一条代码订阅交易保存到区块链上;/nSlave节点接收到订阅请求后,再次对订阅请求进行审核,如果审核不通过则将审核结果通过Master节点反馈至参与方,如果审核通过则在之前的Docker镜像的基础上建立Docker容器并启动代码运行,为该代码生成一个调用凭证,并采用订阅该代码参与方的公钥对调用凭证进行加密,然后将加密后的调用凭证上传到区块链上;Slave节点将对订阅请求的处理结果更新至区块链上的对应代码订阅交易中;/nS5:参与方从区块链上下载已订阅代码的调用凭证并采用自身私钥解密,在需要进行代码调用时,将代码对应的调用凭证和包含代码执行参数的调用请求一起发送至Master节点,Master节点在区块链上新增一条代码调用交易并将调用凭证和调用请求转发至对应Master节点;/nSlave节点对调用凭证进行验证,如果验证不通过则将验证结果通过Master节点反馈至代码调用的参与方,如果验证通过则调用运行在Docker容器中的代码,Docker容器通过特定的通信接口接收调用请求,根据调用请求中的代码执行参数运行代码,代码运行过程中通过预设的数据访问接口访问数据库,得到代码调用执行结果,然后生成本次代码调用执行结果的交付凭证,使用代码调用参与方的公钥对该交付凭证进行加密,然后将加密后的交付凭证上传到区块链上;Slave节点将对调用请求的处理结果更新至区块链上的对应代码调用交易中;/n代码调用的参与方从区块链上下载交付凭证,采用自身私钥解密后从中提取代码调用执行结果。/n...

【技术特征摘要】
1.一种基于区块链的数据共享交换方法,其特征在于,包括以下步骤:
S1:设置数据共享系统,包括Master节点,Slave节点和区块链,其中:
Master节点用于保存所有参与方和数据Slave节点的信息,并作为所有参与方请求的入口,接收每个参与方发来的请求进行审核后转发至相应Slave节点;
Slave节点用于存储参与方数据,每个提供数据的参与方对应一个或多个Slave节点,Slave节点接收其它参与方的代码以及相关请求,提供安全环境进行代码存储和运行;
区块链包括若干区块链节点,用于在数据共享交换过程中作为可信第三方数据库记录数据、代码的归属权以及参与方进行的数据共享交换操作;
S2:数据共享系统启动时进行初始化,具体包括:
Master节点、各个Slave节点和各个区块链节点分别向第三方权威机构申请数字证书;
数据共享交换的每个参与方分别在Mater节点上进行注册,每个参与方分别设置一对非对称加密算法的公私钥来标识各自身份,其中公钥对其它所有参与方可见,私钥由各参与方自行安全存储;
每个提供数据的参与方将其对应的Slave节点在Mater节点上进行注册,注册信息中包括Slave节点信息以及所存储数据的描述性信息;
Mater节点将注册到其上的参与方信息和Slave节点信息保存到区块链上,保存在区块链上的信息对所有参与方可见;
S3:提供数据应用代码的参与方将代码进行加密,将加密代码的解密密钥采用所要部署的Slave节点对应参与方公钥进行加密,然后将加密代码、加密后的解密密钥连同部署请求一起发送至Master节点,Master节点对该部署请求进行审核,如果审核不通过则将审核结果反馈至参与方,如果审核通过则将审核通过的部署请求转发给对应Slave节点;然后Master节点将加密代码、加密后的解密密钥、部署请求以及部署请求的审核结果作为一条代码部署交易保存到区块链上;
Slave节点在接收到Master节点发来的部署请求后,再次进行审核,如果审核不通过则将审核结果通过Master节点反馈至代码部署的参与方,如果审核通过则从区块链上下载加密代码和加密后的解密密钥,首先采用对应参与方的私钥对加密后的解密密钥进行解密,...

【专利技术属性】
技术研发人员:陈虹丘志杰康彦博
申请(专利权)人:北京链道科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1