数据共享方法、装置、设备及存储介质与流程

文档序号:21179329发布日期:2020-06-20 17:41阅读:196来源:国知局
数据共享方法、装置、设备及存储介质与流程

本申请属于区块链技术领域,尤其涉及一种数据共享方法、装置、设备及存储介质。



背景技术:

区块链技术也被称之为分布式账本技术,是一种互联网数据库技术,其特点是去中心化、公开透明。区块链目前主要有三种分类,分别是公有链、私有链和联盟链。

其中,联盟链同时兼顾了公有链的去中心化和私有链的快速交易的特点,在银行、保险等多个领域得到了迅速发展。联盟链中通常包括多个全节点和多个记账节点,全节点可以是参与交易验证并同步联盟链全部账本的设备,记账节点可以是只参与交易验证但不同步联盟链全部账本的设备。

现有联盟链中的记账节点在进行数据共享时,提供数据的记账节点和获取数据的记账节点均需要验证彼此的身份,才能够完成数据的共享。对于不想公开身份的记账节点,为了保护自身隐私,通常不对数据进行共享,导致联盟链的可共享数据的规模较小。



技术实现要素:

本申请实施例提供一种数据共享方法、装置、设备及存储介质,以解决联盟链的可共享数据的规模较小的问题。

为了解决上述技术问题,本申请是这样实现的:

第一方面,本申请实施例提供了一种数据共享方法,所述方法应用于联盟链的全节点,所述联盟链还包括多个记账节点,所述方法包括:

接收第一记账节点对已上链且加密的目标数据的共享请求;

生成对所述目标数据进行共享的目标提案,将所述目标提案发送至上传所述目标数据的第二记账节点,以使所述第二记账节点生成是否通过所述目标提案的投票结果;

在接收到所述第二记账节点生成的通过所述目标提案的投票结果的情况下,将解密所述目标数据的私钥发送至所述第一记账节点,以使所述第一记账节点通过所述私钥共享所述目标数据。

第二方面,本申请实施例提供了一种数据共享装置,所述装置应用于联盟链,所述联盟链还包括多个记账节点,所述装置包括:

接收模块,用于接收第一记账节点对已上链且加密的目标数据的共享请求;

提案生成模块,用于生成对所述目标数据进行共享的目标提案,将所述目标提案发送至上传所述目标数据的第二记账节点,以使所述第二记账节点生成是否通过所述目标提案的投票结果;

共享模块,用于在接收到所述第二记账节点生成的通过所述目标提案的投票结果的情况下,将解密所述目标数据的私钥发送至所述第一记账节点,以使所述第一记账节点通过所述私钥共享所述目标数据。

第三方面,本申请实施例提供了一种区块链设备,包括:处理器以及存储有计算机程序指令的存储器;

所述处理器执行所述计算机程序指令时实现如第一方面所述的数据共享方法。

第四方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现如第一方面所述的数据共享方法。

相较于现有技术,本申请具有以下有益效果:

在本申请实施例中,第一记账节点想要共享某数据时,可以向联盟链的全节点发送对该数据的共享请求。之后,全节点可以向上传上述数据的第二记账节点发送对该数据进行共享的提案。如果第二记账节点同意该提案,全节点可以将用于共享上述数据的私钥发送给第一记账节点,使得第二记账节点无需直接与第一记账节点共享数据,避免了第二记账节点与第一记账节点彼此验证身份,保护了第二记账节点的隐私,从而减少了第二记账节点在共享数据时的顾虑。这样,联盟链中的各个记账节点无需担心共享数据会带来隐私泄露,故而记账节点将不再排斥对数据进行共享,从而扩大了联盟链的可共享数据的规模。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请一个实施例提供的网络场景示意图;

图2是本申请另一个实施例提供的数据共享方法的信令示意图;

图3是本申请另一个实施例提供的数据共享方法的信令示意图;

图4是本申请另一个实施例提供的数据共享装置的结构示意图;

图5是本申请另一个实施例提供的数据共享装置的结构示意图;

图6是本申请又一个实施例提供的区块链设备的结构示意图。

具体实施方式

下面将详细描述本申请的各个方面的特征和示例性实施例,为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及具体实施例,对本申请进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本申请,并不被配置为限定本申请。对于本领域技术人员来说,本申请可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本申请的示例来提供对本申请更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

联盟链是区块链中的一种,由于联盟链同时兼顾了公有链的去中心化和私有链的快速交易的特点,因此联盟链在银行、保险等多个领域得到了迅速发展。联盟链中通常包括多个全节点和多个记账节点,其中,全节点可以是参与交易验证并同步联盟链全部账本的设备,记账节点可以是只参与交易验证但不同步联盟链全部账本的设备,且记账节点之间可以相互共享数据。由于现有技术中,联盟链中的记账节点在进行数据共享时,提供数据的记账节点和获取数据的记账节点均需要验证彼此的身份,才能够完成数据的共享,因此,对于那些不想公开身份的记账节点,其为了保护自身隐私,通常不对数据进行共享。现有技术中的上述共享机制,阻碍了记账节点对数据进行共享,导致联盟链中的可共享数据的规模较小。

为了解决现有技术问题,本申请实施例提供了一种数据共享方法、装置、设备及存储介质。下面首先对本申请实施例所提供的数据共享方法进行介绍。

数据共享方法的执行主体可以是联盟链中的全节点,该全节点可以由加入联盟的各个商业机构共同指定,如指定对联盟链进行维护的业务服务商机房中的某台服务器作为全节点。网络场景图可以如图1所示,全节点100可以接收联盟链中任一记账节点103发送的对某数据的共享请求,发送该共享请求的任一记账节点可以称为第一记账节点101,然后全节点100可以基于该共享请求生成对该数据进行共享的提案,并将该提案发送给上传上述数据的记账节点,该记账节点可以称为第二记账节点102。如果第二记账节点102同意上述提案,可以向全节点100发送通过该提案的投票结果,进而全节点100可以将解密上述数据的私钥发送至第一记账节点101,然后第一记账节点101可以通过私钥解密上述数据,完成对上述数据的共享处理。

如图2所示,本申请实施例提供的数据共享方法包括以下步骤:

s201、第二记账节点向全节点发送待加密的目标数据的上链请求。

在一个示例实施例中,申请人发现,出于数据保护的目的,通常由记账节点自身对待上链的数据进行加密处理后,再通过全节点完成上链,这样,虽然实现了数据保护的目的,但是只有对数据进行加密的记账节点能够对数据进行解密。由于该记账节点拥有上述数据的所有权,因此其可以决定是否对目标数据进行共享。当该记账节点想要分享该加密数据时,在现有的联盟链架构下,只能由该记账节点自身将私钥发送给分享者,而这势必会泄露该记账节点的隐私。

申请人在付出创造性劳动后,对联盟链中的全节点进行了改进,即由全节点对数据加密,以克服现有的联盟链架构带来的上述问题。

具体的,当第二记账节点想要将目标数据上传至联盟链时,第二记账节点可以生成待加密的目标数据的上链请求,然后将该上链请求发送至全节点。

s202、全节点基于上链请求为目标数据分配公钥和私钥。

在一个示例实施例中,全节点在接收到待加密的目标数据的上链请求后,可以为目标数据分配公钥和私钥。

s203、全节点利用公钥对目标数据进行加密,并对目标数据进行上链。

在一个示例实施例中,全节点可以利用公钥对目标数据进行加密,并在加密完成后,对加密后的目标数据进行上链处理。

通过上述处理,全节点获取了对目标数据进行解密的私钥,从而为后续的由全节点将私钥分享给第一记账节点的处理,提供了私钥来源。

在一个示例实施例中,也可以仍由记账节点对数据进行加密,记账节点在加密完成后,可以主动将私钥发送给全节点,或者由全节点向记账节点发起私钥获取请求,例如,全节点在接收到第二记账节点生成的通过目标提案的投票结果的情况下,可以主动向第二记账节点发起私钥获取请求,以获取私钥。通过上述处理,全节点也可以获取到解密目标数据的私钥。

s204、全节点将私钥返回给第二记账节点。

在一个示例实施例中,全节点在为目标数据分配公钥和私钥之后,可以将私钥返回至第二记账节点,使得第二记账节点可以基于私钥对目标数据进行解密,以拥有目标数据的所有权。

s205、第一记账节点向全节点发送目标数据的共享请求。

在一个示例实施例中,当第一记账节点想要共享目标数据时,第一记账节点可以向全节点发送共享请求,该共享请求可以携带有目标数据的信息,如目标数据所在的区块。

s206、全节点基于共享请求,生成对目标数据进行共享的目标提案。

在一个示例实施例中,全节点在接收到上述共享请求后,可以生成一个对目标数据进行共享的提案,该提案可以称为目标提案,目标提案的具体内容为:全节点是否可以将解密目标数据的私钥发送至第一记账节点。

s207、全节点将目标提案发送至第二记账节点。

在一个示例实施例中,全节点可以基于预先记录的数据与上传数据的记账节点的对应关系,查找到上传目标数据的第二记账节点,然后将目标提案发送至第二记账节点。

s208、第二记账节点对目标提案进行投票,生成是否通过目标提案的投票结果。

在一个示例实施例中,第二记账节点在接收到目标提案后,可以对目标提案进行投票。如果同意将目标数据共享给第一记账节点,则第二记账节点可以生成通过目标提案的投票结果;如果不同意将目标数据共享给第一记账节点,则第二记账节点可以生成不通过目标提案的投票结果。

s209、第二记账节点将投票结果返回给全节点。

在一个示例实施例中,第二记账节点在生成投票结果后,可以将投票结果返回给全节点。

s210、在投票结果为通过所述目标提案的情况下,全节点将解密所述目标数据的私钥发送至所述第一记账节点;在投票结果为不通过所述目标提案的情况下,全节点向第一记账节点发送拒绝共享的消息。

在一个示例实施例中,一方面,全节点在接收到通过目标提案的投票结果的情况下,可以将解密目标数据的私钥发送至第一记账节点。

具体的,全节点可以将私钥存储在一个特定区域,如联盟链中的某个设备中,并设置一个私钥的查看列表,全节点可以通过将第一记账节点添加到该查看列表的方式,赋予第一记账节点查看私钥的权限,然后由第一记账节点主动去上述特定区域获取私钥,变相的实现了全节点将私钥发送至第一记账节点。

另一方面,全节点在接收到不通过目标提案的投票结果的情况下,可以向第一记账节点发送拒绝共享的消息。

s211、第一记账节点利用私钥对目标数据进行解密,完成对目标数据的共享处理。

在一个示例实施例中,第一记账节点在接收到私钥后,可以利用私钥对目标数据进行解密,从而完成了对目标数据的共享处理。

容易理解的是,在上述对目标数据的共享处理中,第一记账节点并未与第二记账节点直接进行数据共享,而是从全节点处获取了共享目标数据所需要的私钥,进而在第一记账节点与第二记账节点未验证彼此身份的前提下,实现了第一记账节点对目标数据的共享,从而保护了第二记账节点的隐私,消除了第二记账节点在共享数据时因担心隐私泄露所产生的顾虑,使得第二记账节点愿意将数据共享到联盟链中。这样,联盟链中的各个记账节点无需担心共享数据会带来隐私泄露,故而记账节点将不再排斥对数据进行共享,从而扩大了联盟链的可共享数据的规模。

可选的,由于上链处理对数据量存在限制,超过预设数据量的数据将不能进行上链处理,因此,对于数据量较大的目标数据,为了能够对其进行上链处理以及后续的分享处理,全节点可以对目标数据进行如下处理:在目标数据的数据量大于预设数据量的情况下,全节点对目标数据进行分片,得到多个分片数据。相应的,上述利用公钥对目标数据进行加密,并对目标数据进行上链的处理,可以如下:全节点利用公钥对每个分片数据进行加密,并对所有的分片数据进行上链。

通过上述对目标数据的分片处理,解决了超过预设数据量的数据将不能进行上链处理的问题,拓宽了记账节点进行上链处理的数据选择范围,进而也拓宽了可共享的数据选择范围,进一步扩大了联盟链的可共享数据的规模。

可选的,为了确保联盟链中可共享数据的安全性,全节点在接收到上链请求后,可以对上链请求的合法性进行验证,相应的处理可以如下:验证上链请求的合法性;在验证上链请求合法的情况下,通过上链请求;在验证上链请求不合法的情况下,拒绝上链请求。相应的,全节点可以在通过上链请求的情况下,为目标数据分配公钥和私钥。

在一个示例实施例中,全节点可以对目标数据进行哈希校验,如原始完整数据哈希唯一性校验,同时,全节点可以对第二记账节点的身份进行身份校验。如果哈希校验和身份校验均通过,则全节点可以验证上链请求合法;如果哈希校验和身份校验均未通过,或者哈希校验和身份校验只通过一项,则全节点均可以验证上链请求不合法。通过上述处理,全节点可以确保待上链的数据是合法的,从而保证了已上链的数据是安全的,进而可以确保联盟链中可共享数据的安全性。

可选的,如图3所示,第二记账节点也可以主动将目标数据共享给特定的记账节点,相应的处理可以如下:

s305、第二记账节点将目标数据共享至第三记账节点的共享请求,发送至全节点。

在一个示例实施例中,第二记账节点如果想要将目标数据分享给任一记账节点时,该记账节点可以称为第三记账节点,第二记账节点可以生成将目标数据共享至第三记账节点的共享请求,然后将该共享请求发送至全节点。

s306、全节点基于将目标数据共享至第三记账节点的共享请求,将解密目标数据的私钥发送至第三记账节点。

在一个示例实施例中,全节点在接收到将目标数据共享至第三记账节点的共享请求的情况下,可以将私钥发送至第三记账节点,以使第三记账节点对目标数据进行共享。通过上述处理,可以拓宽记账节点将数据共享出去的渠道,进一步扩大了联盟链的可共享数据的规模。

在本申请实施例中,第一记账节点想要共享某数据时,可以向联盟链的全节点发送对该数据的共享请求。之后,全节点可以向上传上述数据的第二记账节点发送对该数据进行共享的提案。如果第二记账节点同意该提案,全节点可以将用于共享上述数据的私钥发送给第一记账节点,使得第二记账节点无需直接与第一记账节点共享数据,避免了第二记账节点与第一记账节点彼此验证身份,保护了第二记账节点的隐私,从而减少了第二记账节点在共享数据时的顾虑。这样,联盟链中的各个记账节点无需担心共享数据会带来隐私泄露,故而记账节点将不再排斥对数据进行共享,从而扩大了联盟链的可共享数据的规模。

基于上述实施例提供的数据共享方法,相应地,本申请还提供了数据共享装置的具体实现方式。请参见以下实施例。

首先参见图4,本申请实施例提供的数据共享装置应用于联盟链,所述联盟链还包括多个记账节点,所述装置包括以下模块:

接收模块401,用于接收第一记账节点对已上链且加密的目标数据的共享请求;

提案生成模块402,用于生成对所述目标数据进行共享的目标提案,将所述目标提案发送至上传所述目标数据的第二记账节点,以使所述第二记账节点生成是否通过所述目标提案的投票结果;

共享模块403,用于在接收到所述第二记账节点生成的通过所述目标提案的投票结果的情况下,将解密所述目标数据的私钥发送至所述第一记账节点,以使所述第一记账节点通过所述私钥共享所述目标数据。

可选的,如图5所示,为了对所述目标数据进行上链,所述装置还包括上链模块404,用于:

接收所述第二记账节点对待加密的目标数据的上链请求;

为所述目标数据分配公钥和私钥;

利用所述公钥对所述目标数据进行加密,并对所述目标数据进行上链。

可选的,为了使所述第二记账节点能够对所述目标数据进行解密,所述装置还包括发送模块,用于:

将所述私钥返回至所述第二记账节点,以使所述第二记账节点基于所述私钥对所述目标数据进行解密。

可选的,为了对所述目标数据进行上链,所述上链模块404还用于:

在所述目标数据的数据量大于预设数据量的情况下,对所述目标数据进行分片,得到多个分片数据;

利用所述公钥对每个所述分片数据进行加密,并对所有的所述分片数据进行上链。

可选的,为了保证数据安全,所述装置还包括验证模块,用于:

验证所述上链请求的合法性;

在验证所述上链请求合法的情况下,通过所述上链请求;

在验证所述上链请求不合法的情况下,拒绝所述上链请求;

所述为所述目标数据分配公钥和私钥,包括:

在通过所述上链请求的情况下,为所述目标数据分配公钥和私钥。

可选的,为了保证数据安全,所述验证模块具体用于:

对所述目标数据进行哈希校验,对所述第二记账节点的身份进行身份校验;

如果所述哈希校验和所述身份校验均通过,则验证所述上链请求合法,否则验证所述上链请求不合法。

可选的,为了拓宽共享渠道,所述发送模块还用于:

在接收到所述第二记账节点将所述目标数据共享至第三记账节点的共享请求的情况下,将所述私钥发送至所述第三记账节点。

在本实施例中,经过上述各模块的配合处理,当第一记账节点想要共享某数据时,可以向数据共享装置的接收模块401发送对该数据的共享请求。之后,数据共享装置的提案生成模块402可以向上传上述数据的第二记账节点发送对该数据进行共享的提案。如果第二记账节点同意该提案,数据共享装置的共享模块403可以将用于共享上述数据的私钥发送给第一记账节点,使得第二记账节点无需直接与第一记账节点共享数据,避免了第二记账节点与第一记账节点彼此验证身份,保护了第二记账节点的隐私,从而减少了第二记账节点在共享数据时的顾虑。这样,联盟链中的各个记账节点无需担心共享数据会带来隐私泄露,故而记账节点将不再排斥对数据进行共享,从而扩大了联盟链的可共享数据的规模。

图6为实现本申请各个实施例的一种区块链设备的硬件结构示意图。

区块链设备可以包括处理器601以及存储有计算机程序指令的存储器602。

具体地,上述处理器601可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本申请实施例的一个或多个集成电路。

存储器602可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器602可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器602可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器602可在综合网关容灾设备的内部或外部。在特定实施例中,存储器602是非易失性固态存储器。在特定实施例中,存储器602包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器601通过读取并执行存储器602中存储的计算机程序指令,以实现上述实施例中的任意一种数据共享方法。

在一个示例中,区块链设备还可包括通信接口603和总线610。其中,如图6所示,处理器601、存储器602、通信接口603通过总线610连接并完成相互间的通信。

通信接口603,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。

总线610包括硬件、软件或两者,将区块链设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线610可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。

该区块链设备可以执行本申请实施例中的数据共享方法,从而实现结合图2和图3描述的数据共享方法和装置。

本申请实施例还提供一种计算机可读存储介质,该计算机存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述数据共享方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。

需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。

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