基于区块链数据的访问方法和装置、处理器及电子设备与流程

    专利查询2022-08-11  120



    1.本技术涉及区块链技术领域,具体而言,涉及一种基于区块链数据的访问方法和装置、处理器及电子设备。


    背景技术:

    2.区块链网络是一种利用p2p通讯技术实现对等通信、利用共识机制实现记账合法性、利用链式结构存储数据的共同记账的解决方案。目前当业务链上存在数据隔离需求时通常是建立不同的应用通道来隔离不同的数据账本。当同一业务场景存在多种的链上数据隔离需求,或者联盟组织机构间存在多种数据共享策略时,需要创建不同的应用通道或建立满足多种访问策略的账本副本数据,在合约层需要实现复杂的权限控制逻辑。特别是当数据隔离需求和共享策略发证变更时就需要重建应用通道或变更账本的访问控制逻辑控制,上述方法存在获取数据访问权限的效率比较低的问题。
    3.针对相关技术中针对多种数据访问策略,通过在智能合约层部署复杂的权限控制逻辑来实现,导致获取区块链数据访问权限的效率比较低的问题,目前尚未提出有效的解决方案。


    技术实现要素:

    4.本技术的主要目的在于提供一种基于区块链数据的访问方法和装置、处理器及电子设备,以解决相关技术中针对多种数据访问策略,通过在智能合约层部署复杂的权限控制逻辑来实现,导致获取区块链数据访问权限的效率比较低的问题。
    5.为了实现上述目的,根据本技术的一个方面,提供了一种基于区块链数据的访问方法。该方法包括:获取目标用户对区块链数据的交易请求一,其中,所述交易请求一中至少包括:所述目标用户的目标身份id和所述目标用户的目标属性列表;依据所述目标身份id,素数集合和素数域,确定所述目标用户对所述区块链数据是否具有有效操作权限,其中,所述素数集合由多个用户的身份id和所述身份id对应的素数组成,所述素数域由256位的素数组成;若所述目标用户具有有效操作权限,则依据所述目标属性列表和预设属性控制列表,确定所述交易请求一是否在权限许可范围内,其中,所述预设属性控制列表由至少一个操作权限id,至少一类操作权限和所述操作权限对应的属性门限表达式组成;若所述交易请求一在权限许可范围内,则获取目标数据信息,其中,所述目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,所述交易请求一对应的操作权限为目标操作权限,所述目标属性门限表达式为所述目标操作权限对应的属性门限表达式;通过所述目标用户的目标属性私钥对所述目标数据信息进行解密,得到初始数据信息,其中,所述目标属性私钥通过区块链节点生成。
    6.进一步地,依据所述目标身份id,素数集合和素数域,确定所述目标用户对所述区块链数据是否具有有效操作权限包括:判断所述素数集合是否存在所述目标身份id;若存在,则依据所述素数集合确定所述目标身份id对应的目标素数;通过所述目标素数和所述
    素数域确定所述目标用户是否具有有效操作权限。
    7.进一步地,通过所述目标素数和所述素数域确定所述目标用户是否具有有效操作权限包括:将所述目标素数与所述素数域进行取余处理,得到结果值;若所述结果值不是预设数值,则表示所述目标用户具有有效操作权限。
    8.进一步地,若所述目标用户具有有效操作权限,则依据所述目标属性列表和预设属性控制列表,确定所述交易请求一是否在权限许可范围内包括:确定所述预设属性控制列表中所述交易请求一对应的目标操作权限id;在所述预设属性控制列表中确定所述目标操作权限id对应的所述目标属性门限表达式;将所述目标属性门限表达式与所述目标属性列表进行匹配处理;若匹配通过,则表示所述交易请求一在权限许可范围内。
    9.进一步地,若所述交易请求一在权限许可范围内,则获取目标数据信息包括:若所述交易请求一在权限许可范围内,通过所述区块链节点得到所述初始数据信息;获取所述公共密钥和所述目标属性门限表达式;通过所述公共密钥和所述目标属性门限表达式对所述初始数据信息进行加密处理,得到目标数据信息。
    10.进一步地,在获取目标用户对区块链数据访问的交易请求一之前,所述方法还包括:通过预设方法确定业务链中的主区块链节点,其中,所述业务链由多个区块链节点组成;通过所述主区块链节点进行参数生成,得到属性加密主密钥、所述公共密钥和所述素数域;将所述属性加密主密钥、所述公共密钥和所述素数域广播至所述业务链中的所有区块链节点,以完成共识。
    11.进一步地,在将所述属性加密主密钥、所述公共密钥和所述素数域广播至所述业务链中的所有区块链节点,以完成共识之后,所述方法还包括:对所述目标用户的目标身份id和所述目标属性列表进行合法性验证;若合法性验证通过,则依据所述属性加密主密钥,所述公共密钥和所述目标属性列表,生成所述目标用户的目标属性私钥。
    12.进一步地,在依据所述属性加密主密钥和所述公共密钥,生成所述目标用户的目标属性私钥之后,所述方法还包括:在所述素数域中选取一个素数作为所述目标用户的目标素数,并将选取的素数从所述素数域中删除;构建所述目标身份id与所述目标素数的映射关系;将所述目标身份id与所述目标素数添加到所述素数集合中。
    13.进一步地,在将所述目标身份id与所述目标素数添加到所述素数集合中之后,所述方法还包括:获取撤销所述目标用户的有效操作权限的交易请求二;依据所述目标身份id,对所述素数集合中的目标身份id和所述目标素数进行删除或冻结处理;将所述目标素数恢复至所述素数域中。
    14.为了实现上述目的,根据本技术的另一方面,提供了一种基于区块链数据的访问装置。该装置包括:第一获取单元,用于获取目标用户对区块链数据的交易请求一,其中,所述交易请求一中至少包括:所述目标用户的目标身份id和所述目标用户的目标属性列表;第一确定单元,用于依据所述目标身份id,素数集合和素数域,确定所述目标用户对所述区块链数据是否具有有效操作权限,其中,所述素数集合由多个用户的身份id和所述身份id对应的素数组成,所述素数域由256位的素数组成;第二确定单元,用于若所述目标用户具有有效操作权限,则依据所述目标属性列表和预设属性控制列表,确定所述交易请求一是否在权限许可范围内,其中,所述预设属性控制列表由至少一个操作权限id,至少一类操作权限和所述操作权限对应的属性门限表达式组成;第二获取单元,用于若所述交易请求一
    在权限许可范围内,则获取目标数据信息,其中,所述目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,所述交易请求一对应的操作权限为目标操作权限,所述目标属性门限表达式为所述目标操作权限对应的属性门限表达式;解密单元,用于通过所述目标用户的目标属性私钥对所述目标数据信息进行解密,得到初始数据信息,其中,所述目标属性私钥通过区块链节点生成。
    15.进一步地,所述第一确定单元包括:判断子单元,用于判断所述素数集合是否存在所述目标身份id;第一确定子单元,用于若存在,则依据所述素数集合确定所述目标身份id对应的目标素数;第二确定子单元,用于通过所述目标素数和所述素数域确定所述目标用户是否具有有效操作权限。
    16.进一步地,所述第二确定子单元包括:处理模块,用于将所述目标素数与所述素数域进行取余处理,得到结果值;确定模块,用于若所述结果值不是预设数值,则表示所述目标用户具有有效操作权限。
    17.进一步地,所述第二确定单元包括:第三确定子单元,用于确定所述预设属性控制列表中所述交易请求一对应的目标操作权限id;第四确定子单元,用于在所述预设属性控制列表中确定所述目标操作权限id对应的所述目标属性门限表达式;匹配子单元,用于将所述目标属性门限表达式与所述目标属性列表进行匹配处理;第五确定子单元,用于若匹配通过,则表示所述交易请求一在权限许可范围内。
    18.进一步地,所述第二获取单元包括:第一获取子单元,用于若所述交易请求一在权限许可范围内,通过所述区块链节点得到所述初始数据信息;第二获取子单元,用于获取所述公共密钥和所述目标属性门限表达式;处理子单元,用于通过所述公共密钥和所述目标属性门限表达式对所述初始数据信息进行加密处理,得到目标数据信息。
    19.进一步地,所述装置还包括:第三确定单元,用于在获取目标用户对区块链数据访问的交易请求一之前,通过预设装置确定业务链中的主区块链节点,其中,所述业务链由多个区块链节点组成;第一生成单元,用于通过所述主区块链节点进行参数生成,得到属性加密主密钥、所述公共密钥和所述素数域;广播单元,用于将所述属性加密主密钥、所述公共密钥和所述素数域广播至所述业务链中的所有区块链节点,以完成共识。
    20.进一步地,所述装置还包括:验证单元,用于在将所述属性加密主密钥、所述公共密钥和所述素数域广播至所述业务链中的所有区块链节点,以完成共识之后,对所述目标用户的目标身份id和所述目标属性列表进行合法性验证;第二生成单元,用于若合法性验证通过,则依据所述属性加密主密钥,所述公共密钥和所述目标属性列表,生成所述目标用户的目标属性私钥。
    21.进一步地,所述装置还包括:选取单元,用于在依据所述属性加密主密钥和所述公共密钥,生成所述目标用户的目标属性私钥之后,在所述素数域中选取一个素数作为所述目标用户的目标素数,并将选取的素数从所述素数域中删除;构建单元,用于构建所述目标身份id与所述目标素数的映射关系;添加单元,用于将所述目标身份id与所述目标素数添加到所述素数集合中。
    22.进一步地,所述装置还包括:第三获取单元,用于在将所述目标身份id与所述目标素数添加到所述素数集合中之后,获取撤销所述目标用户的有效操作权限的交易请求二;处理单元,用于依据所述目标身份id,对所述素数集合中的目标身份id和所述目标素数进
    行删除或冻结处理;恢复单元,用于将所述目标素数恢复至所述素数域中。
    23.为了实现上述目的,根据本技术的一个方面,提供了一种处理器,处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的基于区块链数据的访问方法。
    24.为了实现上述目的,根据本技术的一个方面,提供了一种电子设备,电子设备包括一个或多个处理器和存储器,存储器用于存储一个或多个处理器实现上述任意一项的基于区块链数据的访问方法。
    25.通过本技术,采用以下步骤:获取目标用户对区块链数据的交易请求一,其中,交易请求一中至少包括:目标用户的目标身份id和目标用户的目标属性列表;依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限,其中,素数集合由多个用户的身份id和身份id对应的素数组成,素数域由256位的素数组成;若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内,其中,预设属性控制列表由至少一个操作权限id,至少一类操作权限和操作权限对应的属性门限表达式组成;若交易请求一在权限许可范围内,则获取目标数据信息,其中,目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,交易请求一对应的操作权限为目标操作权限,目标属性门限表达式为目标操作权限对应的属性门限表达式;通过目标用户的目标属性私钥对目标数据信息进行解密,得到初始数据信息,其中,目标属性私钥通过区块链节点生成,解决了相关技术中针对多种数据访问策略,通过在智能合约层部署复杂的权限控制逻辑来实现,导致获取区块链数据访问权限的效率比较低的问题。通过目标用户的id,素数集合和素数域能够确认目标用户是否具有有效操作权限,通过目标属性列表和预设属性控制列表能够确认目标用户的操作是否在权限允许范围内,避免了通过在智能合约层部署复杂的权限控制逻辑来实现对数据访问策略的控制,进而达到了提高获取区块链数据访问权限的效率的效果。
    附图说明
    26.构成本技术的一部分的附图用来提供对本技术的进一步理解,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1是根据本技术实施例提供的基于区块链数据的访问方法的流程图;图2是根据本技术实施例提供的可选的基于区块链数据的访问方法的流程图;图3是根据本技术实施例提供的基于区块链数据的访问装置的示意图;图4是根据本技术实施例提供的可选的基于区块链数据的访问系统的示意图;图5是根据本技术实施例提供的可选的区块链节点的示意图;图6是根据本技术实施例提供的电子设备的示意图。
    具体实施方式
    27.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
    28.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人
    员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
    29.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
    30.下面结合优选的实施步骤对本发明进行说明,图1是根据本技术实施例提供的基于区块链数据的访问方法的流程图,如图1所示,该方法包括如下步骤:步骤s101,获取目标用户对区块链数据的交易请求一,其中,交易请求一中至少包括:目标用户的目标身份id和目标用户的目标属性列表。
    31.具体地,目标用户发起对区块链数据的交易请求一,交易请求一可以是对区块链数据的查询,修改以及更新等操作。交易请求一中需要包括目标用户的目标身份id和目标用户的目标属性列表。
    32.步骤s102,依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限,其中,素数集合由多个用户的身份id和身份id对应的素数组成,素数域由256位的素数组成。
    33.具体地,通过读取区块链的持久化世界状态数据,得到素数集合,素数域以及预设属性控制列表。素数集合用map《userid,userprime》表示,userid为用户的身份id,userprime为身份id对应的素数。素数域用p{prime1,prime2,prime3......}表示。预设属性控制列表用map《event id,event,attlist》表示,event id表示操作权限id,event表示操作权限,attlist表示操作权限对应的属性门限表达式。例如,event 1对应的属性门限表达式为(attr1 and attr2) and (attr3 or attr4),那么就表示用户需要具有attr1和attr2这两个属性,并同时具有attr3 或 attr4其中之一属性才具有该event 1的权限。根据目标身份id,素数集合和素数域来判断目标用户是否具有对区块链数据的有效操作权限。目标用户被签发操作权限后,可能存在后续由于实际需求对该操作权限冻结和删除操作,所以需要确定该目标用户的操作权限是否有效。
    34.步骤s103,若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内,其中,预设属性控制列表由至少一个操作权限id,至少一类操作权限和操作权限对应的属性门限表达式组成。
    35.具体地,当目标用户的操作权限有效时,将目标属性列表与预设属性控制列表进行匹配,确定目标用户发起的交易请求一是否在权限许可范围内。
    36.步骤s104,若交易请求一在权限许可范围内,则获取目标数据信息,其中,目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,交易请求一对应的操作权限为目标操作权限,目标属性门限表达式为目标操作权限对应的属性门限表达式。
    37.具体地,当交易请求一在权限许可范围内时,通过区块链节点得到目标数据信息。目标数据信息为加密后的数据信息。通过公共密钥和目标属性门限表达式对数据信息进行加密。
    38.步骤s105,通过目标用户的目标属性私钥对目标数据信息进行解密,得到初始数据信息,其中,目标属性私钥通过区块链节点生成。
    39.具体地,得到目标数据信息后,通过目标用户的目标属性私钥对目标数据信息进行解密,得到初始数据信息。
    40.综上所述,通过目标用户的id,素数集合和素数域能够确认目标用户是否具有有效操作权限,通过目标属性列表和预设属性控制列表能够确认目标用户的操作是否在权限允许范围内,避免了通过在智能合约层部署复杂的权限控制逻辑来实现对数据访问策略的控制,提高了获取区块链数据访问权限的效率。
    41.可选地,在本技术实施例提供的基于区块链数据的访问方法中,依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限包括:判断素数集合是否存在目标身份id;若存在,则依据素数集合确定目标身份id对应的目标素数;通过目标素数和素数域确定目标用户是否具有有效操作权限。
    42.具体地,首先判断素数集合中是否存在目标用户的目标身份id,存在时,确定目标身份id对应的目标素数。当素数集合中存在目标用户的身份id和目标用户的素数时,说明目标用户被签发过操作权限。通过目标素数和素数域来确定目标用户的操作权限是否有效。通过上述步骤,能够准确判断目标用户是否被签发过操作权限以及操作权限是否有效,保证了数据的安全性。
    43.可选地,在本技术实施例提供的基于区块链数据的访问方法中,通过目标素数和素数域确定目标用户是否具有有效操作权限包括:将目标素数与素数域进行取余处理,得到结果值;若结果值不是预设数值,则表示目标用户具有有效操作权限。
    44.具体地,将目标用户的素数与素数域进行取余处理,如果取余后的结果不为0(即上述预设数值),则表示目标用户的操作权限有效。这个是由于如果撤销目标用户的操作权限,会将目标用户的目标素数恢复到素数域中,所以将两者进行取余处理,就能够准确判别目标用户的操作权限是否有效。
    45.可选地,在本技术实施例提供的基于区块链数据的访问方法中,若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内包括:确定预设属性控制列表中交易请求一对应的目标操作权限id;在预设属性控制列表中确定目标操作权限id对应的目标属性门限表达式;将目标属性门限表达式与目标属性列表进行匹配处理;若匹配通过,则表示交易请求一在权限许可范围内。
    46.具体地,确定是否在权限许可范围内包括:确定交易请求一对应的目标操作权限id,并从预设属性控制列表中得到目标操作权限对应的目标属性门限表达式。将目标用户的目标属性列表与目标属性门限表达式进行匹配,确定目标用户是否具有目标属性门限表达式要求的属性。当匹配通过说明目标用户发起的交易请求一在权限许可范围内。存在很多用户都具有操作权限,但是用户的操作权限是不同的,所以事先设置好预设属性控制列表,将用户的属性与预设属性控制列表中的属性门限表达式进行匹配,就能够确定用户的发起的操作是否合法。并且在后续的数据访问控制时,只需要维护预设属性控制列表就能够实现多种数据访问策略,提高了获取区块链数据访问权限的效率。
    47.可选地,在本技术实施例提供的基于区块链数据的访问方法中,若交易请求一在权限许可范围内,则获取目标数据信息包括:若交易请求一在权限许可范围内,通过区块链
    节点得到初始数据信息;获取公共密钥和目标属性门限表达式;通过公共密钥和目标属性门限表达式对初始数据信息进行加密处理,得到目标数据信息。
    48.具体地,首先通过区块链节点得到初始数据信息,然后通过公共密钥和目标属性门限表达式对初始数据信息进行加密处理,得到目标数据信息。加密后的数据只能通过目标用户的目标属性私钥才能够进行解密,所以通过对数据信息进行加密是为了进一步保证数据信息的安全性。
    49.可选地,在本技术实施例提供的基于区块链数据的访问方法中,在获取目标用户对区块链数据访问的交易请求一之前,该方法还包括:通过预设方法确定业务链中的主区块链节点,其中,业务链由多个区块链节点组成;通过主区块链节点进行参数生成,得到属性加密主密钥、公共密钥和素数域;将属性加密主密钥、公共密钥和素数域广播至业务链中的所有区块链节点,以完成共识。
    50.具体地,在目标用户发起交易请求一之前,通过对业务链所有区块链节点的个数取余的方法(即上述预设方法)确定出主区块链节点。然后通过主区块链节点生成属性加密主密钥、公共密钥和素数域,将属性加密主密钥、公共密钥和素数域分发至业务链中的所有区块链节点完成共识并持久化为世界状态数据。使用拜占庭共识算法进行三段式共识处理,第一阶段为pre-prepare共识,第二阶段为prepare共识,第三阶段为commit共识,三个阶段为顺序执行,当前一阶段累计收到2f 1个其他节点的一致确认消息后当前阶段的共识完成并进入下一阶段,三个阶段的共识全部完成后,共识工作结束。
    51.可选地,在本技术实施例提供的基于区块链数据的访问方法中,在将属性加密主密钥、公共密钥和素数域广播至业务链中的所有区块链节点,以完成共识之后,该方法还包括:对目标用户的目标身份id和目标属性列表进行合法性验证;若合法性验证通过,则依据属性加密主密钥,公共密钥和目标属性列表,生成目标用户的目标属性私钥。
    52.具体地,对目标用户进行身份id及目标属性列表的校验,校验通过后发起目标用户的目标属性私钥签发请求,根据属性加密主密钥,公共密钥以及目标属性列表生成目标用户的目标属性私钥。通过上述步骤,得到目标属性私钥,便于后续目标用户通过目标属性私钥对目标数据信息进行解密得到初始数据信息。
    53.可选地,在本技术实施例提供的基于区块链数据的访问方法中,在依据属性加密主密钥和公共密钥,生成目标用户的目标属性私钥之后,该方法还包括:在素数域中选取一个素数作为目标用户的目标素数,并将选取的素数从素数域中删除;构建目标身份id与目标素数的映射关系;将目标身份id与目标素数添加到素数集合中。
    54.具体地,在目标用户发起交易请求一之前,对目标用户进行操作权限的签发,在素数域中选取一个素数作为目标用户的目标素数,然后将选取的素数从素数域中删除掉,保证不同用户获取的素数是不一样的。建立目标素数与目标身份id的映射关系,再将目标身份id与目标素数添加到素数集合中。通过上述步骤,保证目标用户的被签发针对区块链数据的操作权限。
    55.可选地,在本技术实施例提供的基于区块链数据的访问方法中,在将目标身份id与目标素数添加到素数集合中之后,该方法还包括:获取撤销目标用户的有效操作权限的交易请求二;依据目标身份id,对素数集合中的目标身份id和目标素数进行删除或冻结处理;将目标素数恢复至素数域中。
    56.具体地,在目标用户被签发针对区块链数据的操作权限之后,还可以对该操作权限进行撤销。通过将素数集合中的目标身份id和目标素数进行删除或冻结,最后再将目标素数恢复到素数域中。通过上述步骤,实现对操作权限的撤销。
    57.本技术实施例提供的基于区块链数据的访问方法,通过获取目标用户对区块链数据的交易请求一,其中,交易请求一中至少包括:目标用户的目标身份id和目标用户的目标属性列表;依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限,其中,素数集合由多个用户的身份id和身份id对应的素数组成,素数域由256位的素数组成;若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内,其中,预设属性控制列表由至少一个操作权限id,至少一类操作权限和操作权限对应的属性门限表达式组成;若交易请求一在权限许可范围内,则获取目标数据信息,其中,目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,交易请求一对应的操作权限为目标操作权限,目标属性门限表达式为目标操作权限对应的属性门限表达式;通过目标用户的目标属性私钥对目标数据信息进行解密,得到初始数据信息,其中,目标属性私钥通过区块链节点生成,解决了相关技术中针对多种数据访问策略,通过在智能合约层部署复杂的权限控制逻辑来实现,导致获取区块链数据访问权限的效率比较低的问题。通过目标用户的id,素数集合和素数域能够确认目标用户是否具有有效操作权限,通过目标属性列表和预设属性控制列表能够确认目标用户的操作是否在权限允许范围内,避免了通过在智能合约层部署复杂的权限控制逻辑来实现对数据访问策略的控制,进而达到了提高获取区块链数据访问权限的效率的效果。
    58.如图2所示,根据本技术实施例提供的可选的基于区块链数据的访问方法的流程图。步骤s201:业务链的区块链节点启动,启动时根据业务链上参与区块链共识的区块链节点的个数计算出主区块链节点的序号,由主区块链节点生成属性加密主密钥main key、公共密钥public key及素数域p,将属性加密主密钥main key、公共密钥public key及素数域p分发至业务链所有区块链节点以完成共识并持久化为世界状态数据。
    59.步骤s202:发起的属性加密控制权限初始化请求,生成对应的预设属性控制列表map《event id,event,attlist》,该请求同样需要经过共识并持久化为世界状态数据。
    60.步骤s203:对目标用户进行身份id及目标属性列表进行校验,校验通过后发起用户属性加密私钥签发请求,根据main key、public key和目标属性列表userattrlist,为目标用户生成与属性集合关联的目标属性私钥private key。在素数域p{prime1,prime2,prime3......}中为目标用户申请一个素数userprime,从p中删除已分配userprime,保证不同用户获取的userprime不一样,然后将目标用户id和目标素数存入素数集合map《userid,userprime》中。
    61.步骤s204:当需要撤销目标用户的权限时,发起撤销请求,从map《userid,userprime》中删除或者冻结该目标用户id和目标用户的素数userprime,并在素数域p{prime1,prime2,prime3......}中恢复为目标用户申请的素数userprime。
    62.步骤s205:目标用户发起对区块链数据的交易请求一,请求中包含目标身份id和目标属性列表attlist,首先判断交易请求中的目标身份id是否在map《userid,userprime》中;其次通过目标用户的素数和素数域,判断目标用户的权限是否已经撤销;最后通过map《event,attlist》判断目标用户发起交易请求一是否在权限许可范围内。
    63.步骤s206:交易请求一在权限许可范围内时,获取初始数据信息message,并通过public key和map《event id,event,attlist》中的目标属性门限表达式进行加密,输出基于属性加密的密文encrypted message。
    64.步骤s207:获取基于属性加密的密文encrypted message,通过目标用户的目标属性私钥private key进行解密,得到数据message。
    65.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
    66.本技术实施例还提供了一种基于区块链数据的访问装置,需要说明的是,本技术实施例的基于区块链数据的访问装置可以用于执行本技术实施例所提供的用于基于区块链数据的访问方法。以下对本技术实施例提供的基于区块链数据的访问装置进行介绍。
    67.图3是根据本技术实施例的基于区块链数据的访问装置的示意图。如图3所示,该装置包括:第一获取单元301,第一确定单元302,第二确定单元303,第二获取单元304和解密单元305。
    68.第一获取单元301,用于获取目标用户对区块链数据的交易请求一,其中,交易请求一中至少包括:目标用户的目标身份id和目标用户的目标属性列表;第一确定单元302,用于依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限,其中,素数集合由多个用户的身份id和身份id对应的素数组成,素数域由256位的素数组成;第二确定单元303,用于若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内,其中,预设属性控制列表由至少一个操作权限id,至少一类操作权限和操作权限对应的属性门限表达式组成;第二获取单元304,用于若交易请求一在权限许可范围内,则获取目标数据信息,其中,目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,交易请求一对应的操作权限为目标操作权限,目标属性门限表达式为目标操作权限对应的属性门限表达式;解密单元305,用于通过目标用户的目标属性私钥对目标数据信息进行解密,得到初始数据信息,其中,目标属性私钥通过区块链节点生成。
    69.本技术实施例提供的基于区块链数据的访问装置,通过第一获取单元301获取目标用户对区块链数据的交易请求一,其中,交易请求一中至少包括:目标用户的目标身份id和目标用户的目标属性列表;第一确定单元302依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限,其中,素数集合由多个用户的身份id和身份id对应的素数组成,素数域由256位的素数组成;第二确定单元303若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内,其中,预设属性控制列表由至少一个操作权限id,至少一类操作权限和操作权限对应的属性门限表达式组成;第二获取单元304若交易请求一在权限许可范围内,则获取目标数据信息,其中,目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,交易请求一对应的操作权限为目标操作权限,目标属性门限表达式为目标操作权限对应的属性门限表达式;解密单元305通过目标用户的目标属性私钥对目标数据信息进行解密,得到
    初始数据信息,其中,目标属性私钥通过区块链节点生成,解决了相关技术中针对多种数据访问策略,通过在智能合约层部署复杂的权限控制逻辑来实现,导致获取区块链数据访问权限的效率比较低的问题。通过目标用户的id,素数集合和素数域能够确认目标用户是否具有有效操作权限,通过目标属性列表和预设属性控制列表能够确认目标用户的操作是否在权限允许范围内,避免了通过在智能合约层部署复杂的权限控制逻辑来实现对数据访问策略的控制,进而达到了提高获取区块链数据访问权限的效率的效果。
    70.可选地,在本技术实施例提供的基于区块链数据的访问装置中,第一确定单元302包括:判断子单元,用于判断素数集合是否存在目标身份id;第一确定子单元,用于若存在,则依据素数集合确定目标身份id对应的目标素数;第二确定子单元,用于通过目标素数和素数域确定目标用户是否具有有效操作权限。
    71.可选地,在本技术实施例提供的基于区块链数据的访问装置中,第二确定子单元包括:处理模块,用于将目标素数与素数域进行取余处理,得到结果值;确定模块,用于若结果值不是预设数值,则表示目标用户具有有效操作权限。
    72.可选地,在本技术实施例提供的基于区块链数据的访问装置中,第二确定单元303包括:第三确定子单元,用于确定预设属性控制列表中交易请求一对应的目标操作权限id;第四确定子单元,用于在预设属性控制列表中确定目标操作权限id对应的目标属性门限表达式;匹配子单元,用于将目标属性门限表达式与目标属性列表进行匹配处理;第五确定子单元,用于若匹配通过,则表示交易请求一在权限许可范围内。
    73.可选地,在本技术实施例提供的基于区块链数据的访问装置中,第二获取单元304包括:第一获取子单元,用于若交易请求一在权限许可范围内,通过区块链节点得到初始数据信息;第二获取子单元,用于获取公共密钥和目标属性门限表达式;处理子单元,用于通过公共密钥和目标属性门限表达式对初始数据信息进行加密处理,得到目标数据信息。
    74.可选地,在本技术实施例提供的基于区块链数据的访问装置中,该装置还包括:第三确定单元,用于在获取目标用户对区块链数据访问的交易请求一之前,通过预设装置确定业务链中的主区块链节点,其中,业务链由多个区块链节点组成;第一生成单元,用于通过主区块链节点进行参数生成,得到属性加密主密钥、公共密钥和素数域;广播单元,用于将属性加密主密钥、公共密钥和素数域广播至业务链中的所有区块链节点,以完成共识。
    75.可选地,在本技术实施例提供的基于区块链数据的访问装置中,该装置还包括:验证单元,用于在将属性加密主密钥、公共密钥和素数域广播至业务链中的所有区块链节点,以完成共识之后,对目标用户的目标身份id和目标属性列表进行合法性验证;第二生成单元,用于若合法性验证通过,则依据属性加密主密钥,公共密钥和目标属性列表,生成目标用户的目标属性私钥。
    76.可选地,在本技术实施例提供的基于区块链数据的访问装置中,该装置还包括:选取单元,用于在依据属性加密主密钥和公共密钥,生成目标用户的目标属性私钥之后,在素数域中选取一个素数作为目标用户的目标素数,并将选取的素数从素数域中删除;构建单元,用于构建目标身份id与目标素数的映射关系;添加单元,用于将目标身份id与目标素数添加到素数集合中。
    77.可选地,在本技术实施例提供的基于区块链数据的访问装置中,该装置还包括:第三获取单元,用于在将目标身份id与目标素数添加到素数集合中之后,获取撤销目标用户
    的有效操作权限的交易请求二;处理单元,用于依据目标身份id,对素数集合中的目标身份id和目标素数进行删除或冻结处理;恢复单元,用于将目标素数恢复至素数域中。
    78.基于区块链数据的访问装置包括处理器和存储器,上述第一获取单元301,第一确定单元302,第二确定单元303,第二获取单元304和解密单元305。等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
    79.处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现对区块链数据的访问控制。
    80.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
    81.如图4所示,根据本技术实施例提供的可选的基于区块链数据的访问系统的示意图。上述系统包含业务链1、区块链节点2、运营管理系统3和业务系统4。
    82.业务链1:为根据业务系统4的上链业务需求组建而成,链上包括多个区块链节点2,均属于业务链的成员节点,成员节点上均部署有与运营管理系统3进行系统操作请求交互的属性加密控制系统智能合约。业务链中区块链节点总数为3f 1个,其中f表示可支持的容错节点个数,最小值为1,业务请求均采用pbft拜占庭容错算法进行共识,一笔共识请求必须在业务链中的每个验证节点收到至少2f 1个来自其他验证节点的一致的确认消息后,该笔交易才能完成当前阶段的共识,拜占庭容错算法三个阶段的共识都完成后才共识成功,系统数据访问控制策略更新请求和业务请求才被执行,执行结果才能作为合法数据生成新的区块并进行持久化。
    83.区块链节点2:用于接收运营管理系统3发起的属性加密控制策略更新请求以及业务系统4发起的业务请求,所有验证节点内部结构均一致,对交易进行权限验证并完成参数合法性校验,校验通过后将交易广播至业务链1中的其他所有区块链节点2,接收其他区块链节点2的待共识的区块广播通知等。
    84.运营管理系统3:是区块链节点2的配套运营管理系统,一个运营管理系统3可根据业务链1的联盟运营公约同时对接1个或多个区块链节点2进行节点属性加密控制策略交易请求发起,即业务链1的多个区块链节点2同时配套多个运营管理系统3,每个运营管理系统3的内部结构均一致,可对系统中存量链上数据对应数据的访问策略进行查看,同时支持用户发起存量属性加密控制策略维护请求。
    85.业务系统4:在运营管理系统3上设定业务智能合约产生的业务数据的访问权限,同时根据可访问用户的用户属性为用户签发对应的访问私钥。
    86.如图5所示,根据本技术实施例提供的可选的区块链节点的示意图。该区块链节点包括交易路由及数据处理装置11、系统合约共识及执行装置12、业务合约共识及执行装置13。
    87.交易路由及数据处理装置11:负责接收运营管理系统3发起的属性加密控制系统智能合约请求以及业务系统4发起的业务交易请求,验证交易请求中的用户与用户请求的操作权限是否匹配,并根据系统合约共识及执行装置12持久化的属性加密权限控制信息进行数据加工处理,并将加工后的数据返回给运营管理系统3和业务系统4。具体包括交易路由模块111、属性加密控制模块、数据处理模块113。
    88.交易路由模块111:将运营管理系统3发起的业务智能合约属性加密控制变更操作请求转发到系统合约共识及执行装置12,将业务系统4发起的业务更新及查询请求转发到业务合约共识及执行装置14,并将数据处理模块113处理的交易数据包应答回对应的请求系统。
    89.属性加密控制模块112:从系统合约共识及执行装置12读取持久化世界状态数据,得到预设属性控制列表map《event id,event,attlist》、素数域p{prime1,prime2,prime3......}、素数集合map《userid,userprime》。根据用户id判断用户是否在map《userid,userprime》中,不存在则表示该用户未被签发权限,直接拒绝交易。通过用户对应的素数userprime与素数域取余,得到结果值,若结果值不为0,表明该用户未被撤销,若为0,表示已被撤销,直接结束;依据用户的属性列表和预设属性控制列表判断是否在权限许可范围内,只有符合权限的用户请求才能进行路由转发。
    90.数据处理模块113:对数据进行属性加密处理,并将经过处理的策略相关的密文作为交易应答包进行应答。
    91.系统合约共识及执行装置12:密文加密策略维护及用户属性私钥签发及撤销信息维护。具体包括密钥控制模块121、指令共识模块122、持久化模块123。
    92.密钥控制模块121是对运营管理系统3发起的交易参数进行校验并进行指令共识预处理的模块,主要操作包括:1、生成属性加密主密钥mainkey、公共密钥publickey及素数域p{prime1,prime2,prime3......},并通过指令共识模块122分发至业务链1中的所有区块链节点,由指令共识模块122完成共识,并由持久化模块123持久化为世界状态数据。
    93.2、接收运营管理系统3发起的属性加密控制权限初始化请求,并生成预设属性控制列表map《event id,event,attlist》,该请求需要经过指令共识模块122共识后并由持久化模块123持久化为世界状态数据。
    94.3、接收运营管理系统3发起属性加密密钥签发请求,根据mainkey、publickey和目标用户的目标属性列表userattrlist,为目标用户生成与属性集合关联的目标属性私钥privatekey。在素数域p{prime1,prime2,prime3......}中为用户申请一个素数userprime,该请求需要经过指令共识模块122共识后并由持久化模块123持久化为世界状态数据,从p中删除已分配userprime,保证不同用户获取的userprime不一样,然后素数和目标用户的id存入素数集合map《userid,userprime》中。
    95.4、接收运营管理系统3发起属性加密撤销请求,该请求需要经过指令共识模块122共识后并由持久化模块123持久化为世界状态数据,从map《userid,userprime》中删除或冻结该用户,并在素数域p{prime1,prime2,prime3......}中恢复为用户申请的素数userprime。
    96.指令共识模块122:使用拜占庭共识算法对交易进行三段式共识过程,第一阶段为pre-prepare共识,第二阶段为prepare共识,第三阶段为commit共识,三个阶段为顺序执行,当前一阶段累计收到2f 1个其他交易共识节点的一致确认消息后当前阶段的共识完成并进入下一阶段,三个阶段的共识全部完成后代表该笔交易请求合法,交易可进一步进行持久化操作。
    97.持久化模块123:对共识通过的交易进行最终执行处理,将生成的区块及执行后的
    世界状态数据进行持久化更新。
    98.业务合约共识及执行装置13:业务链业务交易请求处理的核心工作装置,负责对业务系统4发起的业务请求进行合法性校验,根据智能合约交易请求完成交易校验、安全共识及账本持久化步骤,具体包括交易校验模块131、交易共识模块132和持久化模块133。
    99.本发明实施例提供了一种处理器,处理器用于运行程序,其中,程序运行时执行基于区块链数据的访问方法。
    100.如图6所示,本发明实施例提供了一种电子设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取目标用户对区块链数据的交易请求一,其中,交易请求一中至少包括:目标用户的目标身份id和目标用户的目标属性列表;依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限,其中,素数集合由多个用户的身份id和身份id对应的素数组成,素数域由256位的素数组成;若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内,其中,预设属性控制列表由至少一个操作权限id,至少一类操作权限和操作权限对应的属性门限表达式组成;若交易请求一在权限许可范围内,则获取目标数据信息,其中,目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,交易请求一对应的操作权限为目标操作权限,目标属性门限表达式为目标操作权限对应的属性门限表达式;通过目标用户的目标属性私钥对目标数据信息进行解密,得到初始数据信息,其中,目标属性私钥通过区块链节点生成。
    101.可选地,依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限包括:判断素数集合是否存在目标身份id;若存在,则依据素数集合确定目标身份id对应的目标素数;通过目标素数和素数域确定目标用户是否具有有效操作权限。
    102.可选地,通过目标素数和素数域确定目标用户是否具有有效操作权限包括:将目标素数与素数域进行取余处理,得到结果值;若结果值不是预设数值,则表示目标用户具有有效操作权限。
    103.可选地,若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内包括:确定预设属性控制列表中交易请求一对应的目标操作权限id;在预设属性控制列表中确定目标操作权限id对应的目标属性门限表达式;将目标属性门限表达式与目标属性列表进行匹配处理;若匹配通过,则表示交易请求一在权限许可范围内。
    104.可选地,若交易请求一在权限许可范围内,则获取目标数据信息包括:若交易请求一在权限许可范围内,通过区块链节点得到初始数据信息;获取公共密钥和目标属性门限表达式;通过公共密钥和目标属性门限表达式对初始数据信息进行加密处理,得到目标数据信息。
    105.可选地,在获取目标用户对区块链数据访问的交易请求一之前,该方法还包括:通过预设方法确定业务链中的主区块链节点,其中,业务链由多个区块链节点组成;通过主区块链节点进行参数生成,得到属性加密主密钥、公共密钥和素数域;将属性加密主密钥、公共密钥和素数域广播至业务链中的所有区块链节点,以完成共识。
    106.可选地,在将属性加密主密钥、公共密钥和素数域广播至业务链中的所有区块链节点,以完成共识之后,方法还包括:对目标用户的目标身份id和目标属性列表进行合法性
    验证;若合法性验证通过,则依据属性加密主密钥,公共密钥和目标属性列表,生成目标用户的目标属性私钥。
    107.可选地,在依据属性加密主密钥和公共密钥,生成目标用户的目标属性私钥之后,该方法还包括:在素数域中选取一个素数作为目标用户的目标素数,并将选取的素数从素数域中删除;构建目标身份id与目标素数的映射关系;将目标身份id与目标素数添加到素数集合中。
    108.可选地,在将目标身份id与目标素数添加到素数集合中之后,该方法还包括:获取撤销目标用户的有效操作权限的交易请求二;依据目标身份id,对素数集合中的目标身份id和目标素数进行删除或冻结处理;将目标素数恢复至素数域中。本文中的设备可以是服务器、pc、pad、手机等。
    109.本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取目标用户对区块链数据的交易请求一,其中,交易请求一中至少包括:目标用户的目标身份id和目标用户的目标属性列表;依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限,其中,素数集合由多个用户的身份id和身份id对应的素数组成,素数域由256位的素数组成;若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内,其中,预设属性控制列表由至少一个操作权限id,至少一类操作权限和操作权限对应的属性门限表达式组成;若交易请求一在权限许可范围内,则获取目标数据信息,其中,目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,交易请求一对应的操作权限为目标操作权限,目标属性门限表达式为目标操作权限对应的属性门限表达式;通过目标用户的目标属性私钥对目标数据信息进行解密,得到初始数据信息,其中,目标属性私钥通过区块链节点生成。
    110.可选地,依据目标身份id,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限包括:判断素数集合是否存在目标身份id;若存在,则依据素数集合确定目标身份id对应的目标素数;通过目标素数和素数域确定目标用户是否具有有效操作权限。
    111.可选地,通过目标素数和素数域确定目标用户是否具有有效操作权限包括:将目标素数与素数域进行取余处理,得到结果值;若结果值不是预设数值,则表示目标用户具有有效操作权限。
    112.可选地,若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内包括:确定预设属性控制列表中交易请求一对应的目标操作权限id;在预设属性控制列表中确定目标操作权限id对应的目标属性门限表达式;将目标属性门限表达式与目标属性列表进行匹配处理;若匹配通过,则表示交易请求一在权限许可范围内。
    113.可选地,若交易请求一在权限许可范围内,则获取目标数据信息包括:若交易请求一在权限许可范围内,通过区块链节点得到初始数据信息;获取公共密钥和目标属性门限表达式;通过公共密钥和目标属性门限表达式对初始数据信息进行加密处理,得到目标数据信息。
    114.可选地,在获取目标用户对区块链数据访问的交易请求一之前,该方法还包括:通过预设方法确定业务链中的主区块链节点,其中,业务链由多个区块链节点组成;通过主区
    块链节点进行参数生成,得到属性加密主密钥、公共密钥和素数域;将属性加密主密钥、公共密钥和素数域广播至业务链中的所有区块链节点,以完成共识。
    115.可选地,在将属性加密主密钥、公共密钥和素数域广播至业务链中的所有区块链节点,以完成共识之后,该方法还包括:对目标用户的目标身份id和目标属性列表进行合法性验证;若合法性验证通过,则依据属性加密主密钥,公共密钥和目标属性列表,生成目标用户的目标属性私钥。
    116.可选地,在依据属性加密主密钥和公共密钥,生成目标用户的目标属性私钥之后,该方法还包括:在素数域中选取一个素数作为目标用户的目标素数,并将选取的素数从素数域中删除;构建目标身份id与目标素数的映射关系;将目标身份id与目标素数添加到素数集合中。
    117.可选地,在将目标身份id与目标素数添加到素数集合中之后,该方法还包括:获取撤销目标用户的有效操作权限的交易请求二;依据目标身份id,对素数集合中的目标身份id和目标素数进行删除或冻结处理;将目标素数恢复至素数域中。
    118.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
    119.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
    120.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
    121.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
    122.在一个典型的配置中,计算设备包括一个或多个处理器 (cpu)、输入/输出接口、网络接口和内存。
    123.存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
    124.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
    计算机的存储介质的例子包括,但不限于相变内存 (pram)、静态随机存取存储器 (sram)、动态随机存取存储器 (dram)、其他类型的随机存取存储器 (ram)、只读存储器 (rom)、电可擦除可编程只读存储器 (eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器 (cd-rom)、数字多功能光盘 (dvd) 或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
    125.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
    ……”
    限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
    126.本领域技术人员应明白,本技术的实施例可提供为方法、系统或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
    127.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。

    技术特征:
    1.一种基于区块链数据的访问方法,其特征在于,包括:获取目标用户对区块链数据的交易请求一,其中,所述交易请求一中至少包括:所述目标用户的目标身份id和所述目标用户的目标属性列表;依据所述目标身份id,素数集合和素数域,确定所述目标用户对所述区块链数据是否具有有效操作权限,其中,所述素数集合由多个用户的身份id和所述身份id对应的素数组成,所述素数域由256位的素数组成;若所述目标用户具有有效操作权限,则依据所述目标属性列表和预设属性控制列表,确定所述交易请求一是否在权限许可范围内,其中,所述预设属性控制列表由至少一个操作权限id,至少一类操作权限和所述操作权限对应的属性门限表达式组成;若所述交易请求一在权限许可范围内,则获取目标数据信息,其中,所述目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,所述交易请求一对应的操作权限为目标操作权限,所述目标属性门限表达式为所述目标操作权限对应的属性门限表达式;通过所述目标用户的目标属性私钥对所述目标数据信息进行解密,得到初始数据信息,其中,所述目标属性私钥通过区块链节点生成。2.根据权利要求1所述的方法,其特征在于,依据所述目标身份id,素数集合和素数域,确定所述目标用户对所述区块链数据是否具有有效操作权限包括:判断所述素数集合是否存在所述目标身份id;若存在,则依据所述素数集合确定所述目标身份id对应的目标素数;通过所述目标素数和所述素数域确定所述目标用户是否具有有效操作权限。3.根据权利要求2所述的方法,其特征在于,通过所述目标素数和所述素数域确定所述目标用户是否具有有效操作权限包括:将所述目标素数与所述素数域进行取余处理,得到结果值;若所述结果值不是预设数值,则表示所述目标用户具有有效操作权限。4.根据权利要求1所述的方法,其特征在于,若所述目标用户具有有效操作权限,则依据所述目标属性列表和预设属性控制列表,确定所述交易请求一是否在权限许可范围内包括:确定所述预设属性控制列表中所述交易请求一对应的目标操作权限id;在所述预设属性控制列表中确定所述目标操作权限id对应的所述目标属性门限表达式;将所述目标属性门限表达式与所述目标属性列表进行匹配处理;若匹配通过,则表示所述交易请求一在权限许可范围内。5.根据权利要求4所述的方法,其特征在于,若所述交易请求一在权限许可范围内,则获取目标数据信息包括:若所述交易请求一在权限许可范围内,通过所述区块链节点得到所述初始数据信息;获取所述公共密钥和所述目标属性门限表达式;通过所述公共密钥和所述目标属性门限表达式对所述初始数据信息进行加密处理,得到目标数据信息。6.根据权利要求1所述的方法,其特征在于,在获取目标用户对区块链数据访问的交易
    请求一之前,所述方法还包括:通过预设方法确定业务链中的主区块链节点,其中,所述业务链由多个区块链节点组成;通过所述主区块链节点进行参数生成,得到属性加密主密钥、所述公共密钥和所述素数域;将所述属性加密主密钥、所述公共密钥和所述素数域广播至所述业务链中的所有区块链节点,以完成共识。7.根据权利要求6所述的方法,其特征在于,在将所述属性加密主密钥、所述公共密钥和所述素数域广播至所述业务链中的所有区块链节点,以完成共识之后,所述方法还包括:对所述目标用户的目标身份id和所述目标属性列表进行合法性验证;若合法性验证通过,则依据所述属性加密主密钥,所述公共密钥和所述目标属性列表,生成所述目标用户的目标属性私钥。8.根据权利要求7所述的方法,其特征在于,在依据所述属性加密主密钥和所述公共密钥,生成所述目标用户的目标属性私钥之后,所述方法还包括:在所述素数域中选取一个素数作为所述目标用户的目标素数,并将选取的素数从所述素数域中删除;构建所述目标身份id与所述目标素数的映射关系;将所述目标身份id与所述目标素数添加到所述素数集合中。9.根据权利要求8所述的方法,其特征在于,在将所述目标身份id与所述目标素数添加到所述素数集合中之后,所述方法还包括:获取撤销所述目标用户的有效操作权限的交易请求二;依据所述目标身份id,对所述素数集合中的目标身份id和所述目标素数进行删除或冻结处理;将所述目标素数恢复至所述素数域中。10.一种基于区块链数据的访问装置,其特征在于,包括:第一获取单元,用于获取目标用户对区块链数据的交易请求一,其中,所述交易请求一中至少包括:所述目标用户的目标身份id和所述目标用户的目标属性列表;第一确定单元,用于依据所述目标身份id,素数集合和素数域,确定所述目标用户对所述区块链数据是否具有有效操作权限,其中,所述素数集合由多个用户的身份id和所述身份id对应的素数组成,所述素数域由256位的素数组成;第二确定单元,用于若所述目标用户具有有效操作权限,则依据所述目标属性列表和预设属性控制列表,确定所述交易请求一是否在权限许可范围内,其中,所述预设属性控制列表由至少一个操作权限id,至少一类操作权限和所述操作权限对应的属性门限表达式组成;第二获取单元,用于若所述交易请求一在权限许可范围内,则获取目标数据信息,其中,所述目标数据信息是通过公共密钥和目标属性门限表达式加密后的数据信息,所述交易请求一对应的操作权限为目标操作权限,所述目标属性门限表达式为所述目标操作权限对应的属性门限表达式;解密单元,用于通过所述目标用户的目标属性私钥对所述目标数据信息进行解密,得
    到初始数据信息,其中,所述目标属性私钥通过区块链节点生成。11.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至9中任意一项所述的基于区块链数据的访问方法。12.一种电子设备,其特征在于,包括一个或多个处理器和存储器,所述存储器用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至9中任意一项所述的基于区块链数据的访问方法。

    技术总结
    本申请公开了一种基于区块链数据的访问方法和装置、处理器及电子设备,涉及区块链技术领域,该方法包括:获取目标用户对区块链数据的交易请求一;依据目标身份ID,素数集合和素数域,确定目标用户对区块链数据是否具有有效操作权限;若目标用户具有有效操作权限,则依据目标属性列表和预设属性控制列表,确定交易请求一是否在权限许可范围内;若交易请求一在权限许可范围内,则获取目标数据信息;通过目标用户的目标属性私钥对目标数据信息进行解密,得到初始数据信息。通过本申请,解决了相关技术中针对多种数据访问策略,通过在智能合约层部署复杂的权限控制逻辑来实现,导致获取区块链数据访问权限的效率比较低的问题。区块链数据访问权限的效率比较低的问题。区块链数据访问权限的效率比较低的问题。


    技术研发人员:裴磊 黄肇敏 彭顺求 岑健明
    受保护的技术使用者:中国工商银行股份有限公司
    技术研发日:2022.04.25
    技术公布日:2022/5/25
    转载请注明原文地址:https://tc.8miu.com/read-6491.html

    最新回复(0)