基于区块链的数据共享方法、电子设备和存储介质转让专利

申请号 : CN202010623214.X

文献号 : CN111797415A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 程晗蕾鲁静宋斌段焱明胡康

申请人 : 远光软件股份有限公司

摘要 :

本申请公开了基于区块链的数据共享方法、电子设备和存储介质,其中,所述数据共享方法包括:区块链的管理平台接收数据需求方关于目标数据的访问请求;在可信执行环境中执行区块链的智能合约以判断数据需求方是否满足目标数据的访问权限条件;若满足,配置数据需求方相应的数据访问权限。通过上述方式,本申请能够有效提高数据共享的隐私性、安全性和高效性。

权利要求 :

1.一种基于区块链的数据共享方法,其特征在于,包括:所述区块链的管理平台接收数据需求方关于目标数据的访问请求;

在可信执行环境中执行所述区块链的智能合约以判断所述数据需求方是否满足所述目标数据的访问权限条件;

若满足,配置所述数据需求方相应的数据访问权限。

2.根据权利要求1所述的数据共享方法,其特征在于,所述目标数据包括链下存储数据;

所述配置所述数据需求方相应的数据访问权限包括:向所述数据需求方开放所述目标数据的链下访问权限。

3.根据权利要求1所述的数据共享方法,其特征在于,所述区块链包括智能合约集合,所述智能合约集合中的智能合约配置有相应的标识信息;所述访问请求中包括所调用的智能合约的标识信息;

所述在可信执行环境中执行所述区块链的智能合约以判断所述数据需求方是否满足所述目标数据的访问权限条件包括:查询所述智能合约集合,确定所述访问请求中的标识信息对应的智能合约;

执行所述标识信息对应的智能合约以判断所述数据需求方是否满足所述目标数据的访问权限条件。

4.根据权利要求1所述的数据共享方法,其特征在于,所述智能合约采用第一加解密算法加密,并配置有相应的公私钥对;

所述在可信执行环境中执行所述区块链的智能合约以判断所述数据需求方是否满足所述目标数据的访问权限条件包括:将所述智能合约利用所述公私钥对中的公钥进行签名后发送至所述可信执行环境;

在所述可信执行环境中利用所述公私钥对中的私钥进行签名验证;

在验证通过后,利用所述第一加解密算法解密得到所述智能合约的明文;

在所述可信执行环境中执行所述智能合约的明文以判断所述数据需求方是否满足所述访问权限条件。

5.根据权利要求4所述的数据共享方法,其特征在于,还包括:在所述可信执行环境中执行所述智能合约结束并获得执行结果后,采用第二加解密算法将所述执行结果进行加密;

将加密后的所述执行结果进行分布式存储。

6.根据权利要求1所述的数据共享方法,其特征在于,所述配置所述数据需求方相应的数据访问权限包括:执行所述智能合约,从所述目标数据的数据提供方的账户或所述区块链的公共账户中转移所述目标数据对应的数据通证至所述数据需求方的账户。

7.根据权利要求6所述的数据共享方法,其特征在于,所述从所述目标数据的数据提供方的账户或所述区块链的公共账户中转移所述目标数据对应的数据通证至所述数据需求方的账户还包括:配置所述数据通证对应的访问条件;所述访问条件包括数据访问时限、数据操作权限、通证转移方式和通证销毁方式中的至少一种;

将配置后的所述数据通证转移至所述数据需求方的账户。

8.根据权利要求1~7任一项所述的数据共享方法,其特征在于,还包括:在所述可信执行环境中执行所述智能合约结束并获得执行结果后,将所述可信执行环境中的智能合约销毁。

9.一种电子设备,其特征在于,包括处理器、存储器和通信电路,所述处理器耦接所述存储器和所述通信电路;其中,所述通信电路用于所述电子设备与外部设备进行通信;

所述存储器用于存储程序指令;

所述处理器用于执行所述程序指令以实现如权利要求1~8任一项所述的数据共享方法。

10.一种计算机存储介质,其特征在于,所述存储介质用于存储程序指令,所述程序指令能够被处理器执行以实现如权利要求1~8任一项所述的数据共享方法。

说明书 :

基于区块链的数据共享方法、电子设备和存储介质

技术领域

[0001] 本申请涉及区块链应用技术领域,特别是涉及基于区块链的数据共享方法、电子设备和存储介质。

背景技术

[0002] 当前在每一个行业和业务职能领域,数据成为了重要的生产因素,大量的数据不仅种类繁多,且存储方式多样,容易形成数据孤岛,而开放的数据共享平台又易造成隐私数据的泄露,使得数据共享的高效性和安全性面临较大的挑战。

发明内容

[0003] 本申请主要解决的技术问题是:提供基于区块链的数据共享方法、电子设备和存储介质,能有效提高数据共享的隐私性、安全性和高效性。
[0004] 为解决上述技术问题,本申请采用的一个技术方案是:提供一种基于区块链的数据共享方法,包括:区块链的管理平台接收数据需求方关于目标数据的访问请求;在可信执行环境中执行区块链的智能合约以判断数据需求方是否满足目标数据的访问权限条件;若满足,配置数据需求方相应的数据访问权限。
[0005] 可选地,目标数据包括链下存储数据;配置数据需求方相应的数据访问权限包括:向数据需求方开放目标数据的链下访问权限。
[0006] 可选地,区块链包括智能合约集合,智能合约集合中的智能合约配置有相应的标识信息;访问请求中包括所调用的智能合约的标识信息;在可信执行环境中执行区块链的智能合约以判断数据需求方是否满足目标数据的访问权限条件包括:查询智能合约集合,确定访问请求中的标识信息对应的智能合约;执行标识信息对应的智能合约以判断数据需求方是否满足目标数据的访问权限条件。
[0007] 可选地,智能合约采用第一加解密算法加密,并配置有相应的公私钥对;在可信执行环境中执行智能合约以判断数据需求方是否满足访问权限条件包括:将智能合约利用公私钥对中的公钥进行签名后发送至可信执行环境;在可信执行环境中利用公私钥对中的私钥进行签名验证;在验证通过后,利用第一加解密算法解密得到智能合约的明文;在可信执行环境中执行智能合约的明文以判断数据需求方是否满足访问权限条件。
[0008] 可选地,在可信执行环境中执行智能合约结束并获得执行结果后,采用第二加解密算法将执行结果进行加密;将加密后的执行结果进行分布式存储。
[0009] 可选地,配置数据需求方相应的数据访问权限包括:执行智能合约,从目标数据的数据提供方的账户或区块链的公共账户中转移目标数据对应的数据通证至数据需求方的账户。
[0010] 可选地,从目标数据的数据提供方的账户或区块链的公共账户中转移目标数据对应的数据通证至数据需求方的账户还包括:配置数据通证对应的访问条件;访问条件包括数据访问时限、数据操作权限、通证转移方式和通证销毁方式中的至少一种;将配置后的数据通证转移至数据需求方的账户。
[0011] 可选地,在可信执行环境中执行智能合约结束并获得执行结果后,将可信执行环境中的智能合约销毁。
[0012] 为解决上述技术问题,本申请采用的另一个技术方案是:提供一种电子设备,包括处理器、存储器和通信电路,处理器耦接存储器和通信电路;其中,通信电路用于电子设备与外部设备进行通信;存储器用于存储程序指令;处理器用于执行程序指令以实现上述本申请基于区块链的数据共享方法。
[0013] 为解决上述技术问题,本申请采用的又一个技术方案是:提供一种计算机存储介质,用于存储程序指令,程序指令能够被处理器执行以实现上述本申请基于区块链的数据共享方法。
[0014] 本申请的有益效果是:
[0015] 本实施例管理平台通过接收数据需求方的访问请求,在判断数据需求方满足相应的访问权限条件时配置数据需求方相应的访问权限,如此可以有效减少恶意访问造成数据隐私泄露的可能,有效提高数据共享的安全性;管理平台通过智能合约自动执行访问权限条件的判断,还可以减少人为干涉,提高访问权限条件判断的准确度、可信度和公平性;并且,通过在可信执行环境中执行智能合约进行判断,可以有效提高判断过程的安全性与隐私性,并提升链上事务处理效率和数据共享效率。

附图说明

[0016] 图1是本申请数据共享系统实施例的结构示意图;
[0017] 图2是本申请基于区块链的数据共享方法第一实施例的流程示意图;
[0018] 图3是本申请基于区块链的数据共享方法第二实施例的流程示意图;
[0019] 图4是本申请基于区块链的数据共享方法第三实施例的流程示意图;
[0020] 图5是本申请基于区块链的数据共享方法第四实施例的流程示意图;
[0021] 图6是本申请电子设备实施例的结构示意图;
[0022] 图7是本申请存储介质实施例的结构示意图。

具体实施方式

[0023] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0024] 参阅图1,图1是本申请数据共享系统实施例的结构示意图。本实施例数据共享系统100包括:管理平台101、区块链节点102、数据共享方103。本实施例管理平台101可以包括数据共享系统100中管理数据的事物或其集合。管理平台101可以接收数据需求方关于目标数据的访问请求,并在判断数据需求方满足相应的访问权限条件时,配置数据需求方相应的数据访问权限。
[0025] 管理平台101可以是区块链网络中的节点或多个节点的集合。比如管理平台101可以是区块链网络中的管理节点,可以参与执行区块链网络中的相关事务,也可以同步区块链分布式账本110中的区块链数据。或者,管理平台101也可以是数据提供方的节点,可以获取数据提供方的数据并将数据进行分布式存储。管理平台101本身也可作为数据提供方,可以采集和存储数据,和/或向数据需求方提供其所需的数据。管理平台101还可以提供数据托管服务,可以存储并管理数据提供方的数据。管理平台101也可以是数据需求方的节点,通过自动执行区块链的智能合约校验数据需求方是否满足访问权限条件,确定是否配置数据需求方相应的访问权限。
[0026] 管理平台101例如是计算机,可以执行相应的程序指令以实现对数据的访问控制,并且可以与区块链网络中的区块链节点102进行信息交互。或者,管理平台101也可以包括多个设备的集合。例如,管理平台101数据采集设备、处理设备、通信设备、存储设备等。管理平台101可以利用数据采集设备采集数据,而后利用处理设备对数据进行处理后,存储至存储设备,还可以通过通信设备接收数据需求方的访问请求等。
[0027] 本实施例中,管理平台101可以对共享数据系统中数据的访问权限进行管理。例如,管理平台101在接收到数据需求方关于目标数据的访问请求后,可以在可信执行环境中执行区块链的智能合约,判断数据需求方是否满足相应的访问权限条件,以此确定是否配置相应的访问权限给数据需求方。管理平台101通过智能合约自动执行访问权限条件的判断,可以减少人为干涉,提高访问权限条件判断的准确度、可信度和公平性;并且,通过在可信执行环境中执行智能合约进行判断,可以有效提高信息安全性与隐私性,并提升链上事务处理效率。
[0028] 本实施例中,数据共享方103可以包括数据提供方和数据需求方。数据提供方可以包括提供数据的人或事物或其集合。数据共享系统100中可以有多个数据提供方,数据提供方可以与管理平台101和/区块链节点102进行信息交互。数据提供方可以将数据存储至本地数据库,或者是上传至云端数据库。数据提供方也可将数据发送至区块链节点102进行分布式存储;或者是将数据发送给管理平台101进行托管。数据提供方也可以是区块链网络中的节点,可以参与执行区块链网络中的相关事务。数据提供方将数据上传至数据共享系统100后,还可以向管理平台101发送上传数据的消息,以便管理平台101可以及时更新数据的相关信息。
[0029] 数据需求方可以包括访问数据的人或事物或其集合。数据共享系统100中可以有多个数据需求方,数据需求方可以与管理平台101、数据提供方和/区块链节点102进行信息交互。数据需求方可以发送关于目标数据的访问请求至管理平台101,并在管理平台101判断满足相应的访问权限条件后获得相应的访问权限。数据需求方可以是客户端,比如手机客户端,可以接收用户的数据访问需求并形成相应的数据访问请求,而后通过发送至管理平台101请求访问数据。数据需求方也可以是区块链网络中的节点,可以参与执行区块链网络中的相关事务。
[0030] 本实施例中,数据提供方与数据需求方用于描述在某一目标数据实现共享的过程中所属的角色,在某些时刻,数据提供方与数据需求方可以更换身份,并执行其他步骤。例如,数据需求方也可以将数据上传至数据共享系统100,作为数据提供方向其他数据需求方提供相应的数据;反之,数据提供方在某些时候也可以作为数据需求方访问数据共享系统100中其他数据提供方上传的数据。
[0031] 可选地,数据共享系统100中的各个参与方均可以作为数据提供方,通过采集获取数据并依据相应的方式存储数据,比如链上存储或链下存储,使得数据需求方可以在满足访问权限时进行数据访问。各个参与方也可在有需要时作为数据需求方,通过获取相应的数据通证获得目标数据的访问权限,从而实现多方的数据共享。
[0032] 本实施例数据共享系统100中共享的数据可以包括区块链分布式账本110中的区块链数据和/或链下数据库120中的数据。数据需求方请求访问的目标数据可以是链上存储数据,也可以是链下存储数据。例如,数据提供方可以将共享的数据发送至区块链节点102,由区块链节点102打包并共识后存储至区块链分布式账本110。管理平台101可以同步区块链分布式账本110并保存完整的区块链数据,则数据需求方可以向管理平台101请求访问相应的区块链数据。或者管理平台101可以保存部分或全部区块链节点102的地址以及节点对应保存的区块链数据的目录文件,通过向数据提供方提供数据存储方的地址及相关信息实现数据的共享。或者,数据提供方也可以将共享的数据存储至链下数据库120,比如数据存储方的本地存储空间或云端存储空间,或者数据共享系统100的云端数据库等。管理平台101可以保存链下数据库120中数据的存储地址,通过向数据需求方开放相应的存储地址实现数据共享。
[0033] 本实施例中,数据共享系统100还可以构建链上存储和链下存储的架构。例如,数据共享系统100可以设置云端数据库,用于存储数据提供方的原始数据,区块链分布式账本110中则可以存储原始数据对应的加密值和/或标识信息,既有利于实现数据的隐私隔离与不可更改,还可以节省区块链节点102的计算量与存储空间。数据需求方可以通过查询区块链分布式账本110中存储的区块链数据确定所需要访问的数据的加密值或标识信息,而后向管理平台101发出相应的访问请求,便于管理平台101快速确定其所要访问的目标数据并进行相应的访问权限条件判断。
[0034] 可选地,数据共享系统100还可以设置目录文件数据库130,用于管理数据分布系统中共享数据的目录及相关信息。目录文件数据库130可以分别保存区块链分布式账本110中数据的目录文件和链下数据库120中数据的目录文件,有利于对共享数据的有序管理,且便于快速及时地实现区块链分布式账本110与链下数据库120中数据目录的同步更新。目录文件数据库130还可以提供相应的接口供管理平台101或数据需求方进行数据查询。
[0035] 本实施例区块链网络中包括多个区块链节点102,区块链节点102可以参与区块链的背书、排序、打包区块、通信和记账等事务。本实施例中,区块链节点102可以与管理平台101、数据提供方和/或数据需求方进行信息交互。区块链节点102可以接收数据提供方的数据,依据数据共享系统100的规则存储数据,并向数据提供方分配相应的数据通证作为对数据的控制凭证。区块链节点102还可以获取区块链网络中数据通证的相关交易信息,并将数据通证的分配记录或扣除记录进行分布式存储。
[0036] 本实施例数据共享系统100通过管理平台101实现对共享数据的访问管理,在判断数据需求方满足访问权限条件时配置数据需求方相应的访问权限,如此可以有效减少恶意访问造成数据隐私泄露的可能,有效提高数据共享的安全性;管理平台101通过智能合约自动执行访问权限条件的判断,还可以减少人为干涉,提高访问权限条件判断的准确度、可信度和公平性;并且通过在可信执行环境中执行智能合约进行判断,可以有效提高判断过程的安全性与隐私性,并提升链上事务的处理效率和数据共享效率。
[0037] 参阅图2,图2是本申请基于区块链的数据共享方法第一实施例的流程示意图。本实施例包括:
[0038] S101:管理平台接收数据需求方关于目标数据的访问请求。
[0039] 本实施例中,管理平台可以接收数据需求方关于目标数据的访问请求。目标数据可以是区块链分布式账本中的区块链数据,数据需求方可以向管理平台发起关于区块链数据的访问请求。或者,目标数据也可以是区块链分布式账本以外的数据,比如链下数据库中的数据,管理平台也可以接收数据需求方关于链下存储数据的访问请求。数据需求方对目标数据的访问包括但不限于下载、查阅、修改、合并、删除等数据操作。
[0040] 目标数据的访问请求中可以包括目标数据的标识信息、链下存储地址、在区块链分布式账本中的位置信息或其他相关信息,使得管理平台在接收到访问请求时确定数据需求方所请求访问的目标数据以及目标数据的存储位置。
[0041] 例如,数据需求方在需要访问链下数据库中存储的目标数据时,可以向管理平台发送关于链下数据库中的目标数据的访问请求。访问请求中可以包括目标数据的链下存储地址。管理平台接收到访问请求后,可以通过访问请求中的存储地址确定数据需求方所要访问的目标数据。
[0042] 数据需求方也可以向管理平台发送关于区块链分布式账本中存储的目标数据的访问请求。访问请求中可以包括目标数据在区块链分布式账本中的位置信息,比如目标数据所属区块的高度和目标数据的哈希值。管理平台在接收到数据需求方的访问请求后,可以基于区块高度和哈希值快速定位到数据需求方所需要访问的数据。
[0043] 可选地,数据提供方将数据存储时还可以配置数据相应的数据标识,或是由管理平台配置数据的数据标识。例如,数据提供方或管理平台可以依据数据提供方的身份信息、数据的存储时间、存储地址等相关信息生成数据的数据标识。或者,数据提供方或管理平台也可以依据数据名称、数据类型、属性描述、数据大小等相关信息生成数据的数据标识。数据标识与相应的数据关联后存储,以便于管理平台或数据需求方进行数据查询。管理平台还可以统一管理数据共享系统中的链上和/或链下存储数据的数据标识,并可以向数据需求方提供数据查询通道。数据需求方在向管理平台发送访问请求之前还可以通过数据查询通道查询所需数据的数据标识,而后基于数据标识形成相应的目标数据的访问请求,并发送至管理平台。
[0044] S102:管理平台在可信执行环境中执行智能合约以判断数据需求方是否满足目标数据的访问权限条件。
[0045] 本实施例中,管理平台在接收到数据需求方的访问请求后,可以判断数据需求方是否满足目标数据对应的访问权限条件。数据共享系统中的每一笔数据均可以配置相应的访问权限条件,可以由数据提供方或者管理平台进行条件配置。例如,数据提供方存储数据时,可以配置数据相应的访问权限条件,仅允许满足访问权限条件的数据需求方取得相应数据的访问权限而进行数据访问。
[0046] 访问权限条件可以包括关于数据需求方的身份、访问时间、访问次数、访问方式等的条件。比如,访问权限条件包括数据需求方需经过数据共享系统中CA节点的身份认证,则管理平台可以判断数据需求方是否获得CA节点的认证而具有相应的CA证书。再比如,访问权限条件可以包括数据需求方访问数据次数不超过三次,则管理平台可以判断数据需求方当前对该数据的访问次数是否超过次数限制。
[0047] 管理平台进行访问权限条件判断可以是从数据需求方发送的访问请求中包含的信息进行判断。例如,数据需求方向管理平台发送访问请求,访问请求中可以包括数据需求方的相关身份信息,管理平台可以解析访问请求获取数据需求方的身份信息,通过判断身份信息的合法性以判断数据需求方是否满足相应的访问权限条件。或者管理平台也可以从数据共享系统中的数据访问记录或数据需求方的相关信息进行判断。例如,管理平台接收到数据需求方的访问请求后,可以从数据共享系统的数据访问记录中查询该访问请求对应的数据的访问记录,判断数据需求方的访问时间或访问次数等是否满足相应的条件,以此确定数据需求方是否满足相应的访问权限条件。
[0048] 本实施例中,管理平台可以在可信执行环境中执行智能合约以判断数据需求方是否满足目标数据的访问权限条件。可信执行环境可以安全地处理私密信息,并保障信息的明文不会泄漏出去,同时还能证明数据未经篡改。管理平台在可信执行环境中执行智能合约,智能合约的明文对外不可见,其执行过程中的相关数据或信息亦不可见,如此可以有效保护数据隐私安全,还能提高执行结果的可信度。
[0049] 管理平台在接收到数据需求方的访问请求时,可以在可信执行环境中调用区块链的智能合约来判断数据需求方是否满足目标数据对应的访问权限条件。数据需求方所提供的相关信息,比如身份信息、历史访问信息等,在可信执行环境中进行判断,对外不可见,如此可以有效保护数据需求方的隐私安全,并且访问权限条件的判断过程隐私执行,可以防止数据篡改,有效提高判断结果的可信度。
[0050] 在一些实施方式中,区块链还包括智能合约集合,智能合约集合中的智能合约配置有相应的标识信息。智能合约集合中的各个智能合约在被执行时实现相应的功能,例如包括对不同数据需求方的访问权限条件判断、数据通证的转移、数据共享方式等。智能合约配置有相应的标识信息,标识信息可以用于区分每个智能合约,有利于管理平台进行查询与调用。标识信息例如是管理平台依据智能合约的部署时间、功能描述等相关信息生成的。或者,标识信息也可以是管理平台按照智能合约的部署顺序配置的编号等。
[0051] 区块链智能合约集合中的所有标识信息还可以对外公开,形成智能合约列表。智能合约列表中可以显示智能合约的标识信息以及其他相关的描述信息。例如,智能合约列表中可以包括智能合约的标识信息、智能合约的二进制哈希值、创建者的地址、合约版本号和公钥等。管理平台还可以提供智能合约的查询通道,便于数据需求方或其他参与方快速查询所要调用的智能合约的标识信息,还可以隐藏智能合约的业务逻辑,提高安全性。
[0052] 数据需求方在向管理平台发起访问请求时,访问请求中还可以包括所调用的智能合约的标识信息。管理平台接收到数据需求方的访问请求后,判断数据需求方是否满足目标数据的访问权限条件,具体还可以包括:查询智能合约集合,确定访问请求中的标识信息对应的智能合约;执行标识信息对应的智能合约以判断数据需求方是否满足数据的访问权限条件。例如,管理平台在接收到数据需求方的访问请求后,可以解析访问请求获得访问请求中的标识信息,并在智能合约集合中进行查询,快速确定所需要调用的智能合约。管理平台可以发送相应的指令在可信执行环境中执行标识信息对应的智能合约,以判断数据需求方是否满足目标数据的访问权限条件。
[0053] 在一些实施方式中,管理平台在首次接入可信执行环境之前,还可以向远程证明主机申请进行远程证明,以确保管理平台的身份可信且执行环境可信。管理平台在通过远程证明认证后,即可接入可信执行环境中执行相应的操作,如此可以进一步提高访问权限条件判断的准确性和可靠性。
[0054] 本实施例中,若管理平台判断数据需求方满足相应的访问权限条件,则可以执行S103的步骤。若管理平台判断数据需求方不满足相应的访问权限条件,可以拒绝数据需求方的访问。
[0055] S103:管理平台配置数据需求方相应的数据访问权限。
[0056] 本实施例中,管理平台在判断数据需求方满足相应的访问权限条件后,可以配置数据需求方相应的访问权限条件,从而数据需求方可以进行数据访问。数据需求方可以发起对区块链分布式账本中的区块链数据的访问请求,或者数据需求方也可以发起对链下数据库中数据的访问请求,管理平台在判断其满足访问权限条件时,依据访问请求以及判断结果配置相应的数据访问权限至数据需求方,数据需求方可以在访问权限内进行数据访问。管理平台也可以在可信执行环境中执行相应的智能合约进行数据访问权限的配置。
[0057] 例如,数据需求方可以请求对区块链分布式账本中存储的数据进行访问,例如是下载或查阅区块链数据,则管理平台可以配置数据需求方关于区块链分布式账本中对应数据的访问权限,允许数据需求方执行相应的数据操作。可选地,区块链分布式账本中存储的数据若加密,则管理平台配置相应的访问权限还可以包括向数据需求方提供解密后的数据或是提供解密的秘钥。
[0058] 数据需求方请求访问的目标数据还可以包括链下存储数据。例如,数据需求方可以向管理平台请求操作数据共享系统中存储于链下数据库中的数据,则管理平台配置相应的访问权限还可以包括向数据需求方开放目标数据的链下存储地址,从而数据需求方可以通过链下存储地址访问数据。链下存储数据加密时,管理平台还可以将数据进行解密或是向数据提供方提供解密秘钥等。
[0059] 在一些实施方式中,数据存储于数据提供方的本地存储或云端存储空间的,管理平台配置数据需求方相应的数据访问权限还可以包括向数据提供方发送允许数据需求方进行数据访问的消息,从而数据提供方可以在接收到消息后向数据需求方开放相应数据的访问权限。在另一些实施方式中,数据需求方也可以直接向数据提供方发送数据访问请求,数据提供方也可以自行判断数据需求方是否具备对应的访问权限条件,并且在判断满足相应的访问权限条件时,向数据需求方开放对应数据的访问权限。
[0060] 本实施例管理平台通过接收数据需求方的访问请求,在判断数据需求方满足相应的访问权限条件时配置数据需求方相应的访问权限,如此可以有效减少恶意访问造成数据隐私泄露的可能,有效提高数据共享的安全性;管理平台通过智能合约自动执行访问权限条件的判断,还可以减少人为干涉,提高访问权限条件判断的准确度、可信度和公平性;并且,通过在可信执行环境中执行智能合约进行判断,可以有效提高判断过程的安全性与隐私性,并提升链上事务处理效率和数据共享效率。
[0061] 本实施例中,步骤S101~S103的顺序是本实施例中的描述顺序,不限制为本实施例基于区块链的数据共享方法在执行过程中的顺序,在能够实现本方法的前提下,某些步骤可以调换顺序、同时执行或是单独执行其一。
[0062] 参阅图3,图3是本申请基于区块链的数据共享方法第二实施例的流程示意图。本实施例是在本申请基于区块链的数据共享方法第一实施例的基础上进一步描述,本实施例与本申请基于区块链的数据共享方法第一实施例的相同的步骤在此不再赘述。本实施例包括:
[0063] S201:管理平台接收数据需求方关于目标数据的访问请求。
[0064] 本实施例中,管理平台在接收到数据需求方的访问请求后,可以在可信执行环境中执行区块链的智能合约以判断数据需求方是否满足目标数据的访问权限条件,例如包括S202~S205的步骤。
[0065] S202:管理平台将智能合约用公钥进行签名后发送至可信执行环境。
[0066] 本实施例中,区块链的智能合约还采用第一加解密算法进行加密,并配置有相应的公私钥对。第一加解密算法例如是国密算法SM4,智能合约在部署至区块链上时,通过第一加解密算法进行加密后存储,加密后其明文信息对外不可见。智能合约还配置有相应的公私钥对,例如是利用国密算法SM2生成唯一的公私钥对,私钥存储至可信执行环境中并与对应的智能合约关联,公钥则对外公开。
[0067] 管理平台接收到数据需求方的访问请求后,确定访问请求所要调用的智能合约,还可以利用智能合约的公钥对其进行签名,如此可以有效证明智能合约来源的可靠性以及智能合约的有效性。管理平台可以将签名后的智能合约发送至可信执行环境,以在可信执行环境中执行智能合约,有效提高智能合约执行的安全性和隐私性。例如,管理平台可以建立SSL/TLS信息传输安全通道,利用该通道将智能合约或其他相关的数据发送至可信执行环境,提高数据传输的安全性。
[0068] S203:管理平台在可信执行环境中利用私钥进行签名验证。
[0069] 管理平台将签名后的智能合约发送至可信执行环境后,可以利用可信执行环境中存储的智能合约的私钥进行签名验证,以验证智能合约来源的可靠性,并确认智能合约没有被篡改。管理平台通过利用智能合约的公私钥对进行签名和签名验证,有效减少了智能合约在传输过程中被篡改的可能,提高了智能合约执行的可信度。
[0070] 在本实施例中,若管理平台对智能合约的签名验证通过,则可以执行S204的步骤;若签名验证不通过,则可以拒绝执行该智能合约。
[0071] S204:管理平台在可信执行环境中利用第一加解密算法解密得到智能合约的明文。
[0072] 本实施例中,管理平台还可以在可信执行环境中对智能合约进行解密以得到智能合约的明文。具体地,管理平台在可信执行环境中利用第一加解密算法解密得到智能合约的明文。例如,智能合约采用SM4加密算法进行加密,管理平台可以在可信执行环境中利用相应的解密算法进行解密。
[0073] 管理平台可以在利用私钥对智能合约进行签名验证通过后,才对智能合约进行解密。管理平台在可信执行环境中解密智能合约得到智能合约的明文,该明文信息对外不可见,仅在可信执行环境中执行,以有效保证智能合约的隐私性和安全性。
[0074] S205:管理平台在可信执行环境中执行智能合约的明文以判断数据需求方是否满足访问权限条件。
[0075] 本实施例中,智能合约的明文中可以包括智能合约的执行逻辑以及相关的参数。管理平台在解密得到智能合约的明文后,可以在可信执行环境中执行智能合约的明文,以判断数据需求方是否满足相应的访问权限条件。
[0076] 本实施例中,若管理平台判断数据需求方满足相应的访问权限条件,则可以执行S206的步骤。若管理平台判断数据需求方不满足相应的访问权限条件,则可以拒绝数据需求方的访问;或者,管理平台还可以输出执行智能合约判断不通过的执行结果,并反馈至数据需求方。
[0077] S206:管理平台配置数据需求方相应的数据访问权限。
[0078] 在本实施例中,管理平台还可以将每次智能合约的执行结果加密后进行分布式存储,有效保存数据需求方请求访问数据的记录。例如,管理平台还可以执行以下S207的步骤。
[0079] S207:管理平台采用第二加解密算法将执行结果进行加密,并将加密后的执行结果进行分布式存储。
[0080] 管理平台每次执行智能合约得到相应的执行结果,可以将执行结果加密输出,以保护数据需求方的隐私安全。例如,管理平台执行智能合约判断数据需求方是否满足访问权限条件得到相应的执行结果,包括判断通过或者不通过的相关信息,管理平台可以在可信执行环境中采用第二加解密算法,比如国密算法SM3,将执行结果进行加密后再对外输出。
[0081] 管理平台还可以将加密后的执行结果进行分布式存储。例如,管理平台可以将加密后的执行结果广播至区块链网络,由区块链节点进行排序打包成区块,并经过RAFT等共识机制的共识验证后进行分布式存储。管理平台将智能合约的执行结果进行分布式存储,可以有效保存每一次数据需求方请求访问数据的记录,实现数据访问记录的可查性。
[0082] 在本实施例中,管理平台在可信执行环境中执行智能合约结束后,还可以执行S208的步骤。
[0083] S208:管理平台将可信执行环境中的智能合约销毁。
[0084] 管理平台在可信执行环境中执行智能合约,并获得相应的执行结果后,可信执行环境中的智能合约将立即销毁,有效保护智能合约的安全与隐私。
[0085] 例如,管理平台在可信执行环境中执行智能合约判断数据需求方是否满足目标数据对应的访问权限条件,在执行智能合约结束后得到满足访问权限条件或不满足访问权限条件的执行结果,则管理平台可以立即将该智能合约销毁,得到的执行结果还可以经第二加解密算法加密后从可信执行环境中输出。
[0086] 管理平台在下一次调用执行智能合约时,可以重新将智能合约发送至可信执行环境中执行,同样地,在获得执行结果后将智能合约销毁,有效保护智能合约的安全和隐私。
[0087] 本实施例通过将智能合约加密,可以有效保护智能合约的隐私安全,管理平台调用智能合约时,利用智能合约对应的公钥签名后发送至可信执行环境中执行,可以有效减少智能合约在传输过程中被篡改的可能,提高智能合约执行的可信度;智能合约在执行完成后即被销毁,可以有效提高其安全性;管理平台还将智能合约的执行结果加密输出,还可以有效保护数据需求方的隐私安全,并且加密后的执行结果进行分布式存储,使得数据访问请求记录可查,有效提高数据共享的安全性。
[0088] 本实施例中,步骤S201~S208的顺序是本实施例中的描述顺序,不限制为本实施例基于区块链的数据共享方法在执行过程中的顺序,在能够实现本方法的前提下,某些步骤可以调换顺序、同时执行或是单独执行其一。
[0089] 参阅图4,图4是本申请基于区块链的数据共享方法第三实施例的流程示意图。本实施例是在本申请基于区块链的数据共享方法第一实施例的基础上进一步描述,本实施例与本申请基于区块链的数据共享方法第一实施例的相同的步骤在此不再赘述。本实施例包括:
[0090] S301:管理平台接收数据需求方关于目标数据的访问请求。
[0091] S302:管理平台在可信执行环境中执行智能合约以判断数据需求方是否满足目标数据的访问权限条件。
[0092] 在本实施例中,管理平台在可信执行环境中进行访问权限条件判断后,若判断数据需求方满足访问权限条件,还可以配置数据需求方相应的数据访问权限,例如包括在可信执行环境中继续执行S303的步骤。若管理平台判断数据需求方不满足访问权限条件,则可以输出执行结果为不满足访问权限条件。
[0093] S303:管理平台分配目标数据对应的数据通证至数据需求方。
[0094] 本实施例可以通过区块链的数据通证实现对数据的访问权限控制,有利于对数据共享系统中数据的安全访问和管理。数据提供方将数据存储至数据共享系统中的区块链分布式账本或链下数据库中,即可获得相应的数据通证,作为对该笔数据的权限控制。数据需求方也可以通过获取数据通证,取得相应数据的访问权限。
[0095] 本实施例中,管理平台在判断数据需求方满足相应的访问权限条件后,可以在可信执行环境中继续执行智能合约,自动分配目标数据对应的数据通证至数据需求方,从而数据需求方可以获得目标数据的访问权限。管理平台可以形成新的数据通证并分配至数据需求方,或者也可以是从管理平台的账户、区块链的公共账户或数据提供方的账户中转移相应的数据通证至数据需求方。
[0096] 例如,管理平台可以管理区块链的公共账户,公共账户用于保存区块链的数据通证。当管理平台判断数据需求方满足相应的访问权限条件后,可以从区块链的公共账户中转移相应的数据通证至数据需求方的账户。公共账户也可以是区块链创世节点的账户,管理平台也可以从创世节点的账户转移相应的数据通证至数据需求方的账户。
[0097] 可选地,管理平台分配目标数据对应的数据通证至数据需求方还可以包括:从目标数据的数据提供方的账户中转移数据通证至数据需求方的账户。数据提供方在存储数据后获得相应的数据通证,即可获得数据的初始控制权限。在数据需求方发出访问请求后,管理平台判断其满足访问权限条件,即可将目标数据对应的数据通证从数据提供方的账户中转移至数据需求方的账户,通过数据通证的转移来给予数据需求方相应的访问权限。
[0098] 本实施例中,管理平台可以同时接接收一个或多个数据需求方对目标数据的访问请求。当管理平台接收到多个数据需求方对目标数据的访问请求并判断多个数据需求方满足相应的访问权限条件时,管理平台可以执行相应的智能合约分别分配相应的数据通证至每个数据需求方,从而这些数据需求方均可以获得目标数据的访问权限,有利于实现多方的数据共享。或者,管理平台还可以按照接收访问请求的先后顺序,按序在预设的时间间隔分配数据通证至数据需求方,通过错开目标数据的访问时间,可以避免数据共享通道拥堵,提高数据共享效率。
[0099] 在一些实施方式中,管理平台还可以对分配给数据需求方的数据通证设置相应的条件限制,包括对数据通证对应的数据的访问限制以及对数据通证本身的使用限制。例如,管理平台分配目标数据对应的数据通证至数据需求方还可以包括:管理平台配置数据通证对应的访问条件;访问条件包括数据访问时限、数据操作权限、数据通证转移方式和数据通证销毁方式中的至少一种;将配置后的数据通证分配至数据需求方。
[0100] 管理平台配置数据通证对应的访问条件,从而数据需求方可以在满足相应的访问条件下访问目标数据。具体的,数据访问时限可以包括限制数据需求方允许访问目标数据的时间段,例如是允许数据需求方在获得数据通证后的一段时间内,如十天、一个月等,访问目标数据。数据操作权限可以限制数据需求方可以对目标数据执行的操作,包括下载、查阅、修改、合并、删除等其中一种或多种数据操作。
[0101] 数据通证转移方式可以包括访问前转移和访问后转移,访问前转移例如是数据需求方获得数据通证后,在未执行数据访问时即将数据通证转移至其他参与方;访问后转移例如是在数据需求方利用数据通证访问相应的目标数据后,将数据通证转移至数据提供方、管理平台、公共账户或其他参与方。管理平台可以设置数据通证相应的转移方式,使得数据需求方可以在限制的数据通证转移方式内对数据通证进行转移。例如,数据需求方获得的数据通证的转移方式被限制为仅能转移至数据提供方,则可以在访问数据前或访问数据后将该数据通证从数据需求发转移至数据提供方。
[0102] 管理平台还可以设置数据通证销毁方式,在数据通证销毁后,数据需求方不再具有对相应数据的访问权限。例如管理平台配置数据通证销毁方式为访问数据后即销毁,则在数据需求方访问目标数据后,即可将数据需求方的账户中目标数据对应的数据通证销毁。数据通证转移方式与数据通证销毁方式均可以写入区块链的智能合约,在满足相应的条件时,由智能合约自动执行数据通证转移或销毁。
[0103] 在本实施例中,当目标数据对应的数据通证被转移至其他参与方或是被销毁,则该数据需求方不再有权访问该目标数据。数据需求方也可再次向管理平台请求访问目标数据,并在获得相应的数据通证后再次获得访问权限。如此既可以实现对数据的安全访问,还便于在数据更新时通过获取数据通证再次进行访问,实现数据的及时有效共享。
[0104] S304:管理平台将数据通证的分配记录进行分布式存储。
[0105] 在本实施例中,管理平台还可以将数据通证的分配记录进行分布式存储。例如,管理平台在可信执行环境中执行智能合约判断数据需求方满足访问权限条件后,继续执行智能合约分配相应的数据通证至数据需求方,得到相应的执行结果,管理平台可以将执行结果广播至区块链网络,区块链节点可以将分配记录进行排序打包成区块,并在共识确认后存储至区块链分布式账本中。管理平台通过将数据通证的分配记录上链存储,使得数据通证的分配可查可追踪,也即对于数据的访问权限的获得也可追溯。
[0106] 可选地,管理平台对于每一笔数据通证的相关操作,比如生成、转移、销毁等,都可以记录其相关的信息,并以区块链交易的形式进行分布式存储,有效记录每一次数据通证的来源及去向,实现数据通证的可溯源,以及数据访问记录的可追查,有效提高数据访问的安全性。
[0107] S305:数据需求方访问目标数据。
[0108] 本实施例中,数据需求方在获得数据通证后,即可进行相应的数据访问。数据需求方对数据的访问操作包括但不限于下载、查阅、修改、合并、删除等相关的数据操作。数据需求方可以在访问权限中所限制的数据操作权限内,对目标数据进行相应的操作。例如,数据通证对应的访问条件为仅允许下载或查阅数据,则数据需求方可以在获得数据通证后,对数据提供方存储的数据进行下载或查阅。
[0109] 本实施例中,数据需求方还在访问目标数据前,管理平台还可以预先判断数据需求方是否具有相应的数据通证。具体地,管理平台可以判断数据需求方是否具有目标数据对应的数据通证以及判断其对目标数据的访问操作是否在数据通证限定的操作范围内。
[0110] 例如,管理平台可以首先判断数据需求方是否具有相应的数据通证。管理平台可以通过查询数据需求方的账户,确定数据需求方是否具有相应的数据通证。或者,管理平台也可以通过查询区块链分布式账本中相应的数据通证的分配记录,确定数据需求方是否具备相应的数据通证。管理平台在确定数据线需求方具有该数据对应的数据通证后,还可以进一步判断数据访问操作是否在数据通证限定的操作范围内。具体地,管理平台可以判断数据访问操作是否满足操作时限内、限定操作次数内、可操作方式等数据通证对应的操作范围之内。若管理平台判断数据需求方具有所需操作数据对应的数据通证,且数据访问操作方式在数据通证对应的操作范围内,则管理平台可以确定数据需求方满足具备数据访问操作所需的数据通证。若管理平台判断数据需求方不具备相应的数据通证或者数据访问操作超过了数据通证对应的操作范围,则确定数据需求方不具备数据访问操作对应的数据通证,管理平台可以拒绝其进行数据访问。管理平台通过预先验证数据通证,可以有效提高数据访问的安全性,减少恶意访问造成数据泄露的可能。
[0111] 本实施例中,数据共享系统中的数据还可以包括区块链分布式账本中的区块链数据以及链下数据库中的数据。数据需求方获得数据通证后,仅可以访问数据通证所对应的数据,以有效实现数据隔离,保护其他数据的隐私安全。
[0112] S306:管理平台扣除数据需求方相应的数据通证。
[0113] 本实施例中,管理平台还可以在数据需求方访问数据后,扣除数据需求方相应的数据通证,如此可以有效实现数据的访问权限转移。
[0114] 管理平台扣除数据通证例如是将数据提供方账户中该笔数据通证销毁,销毁后数据需求方不再具有相应的数据访问权限。或者,管理平台扣除数据通证也可以是将数据提供方账户中该笔数据通证转移至数据提供方的账户或公共账户,该笔数据通证也可在下一次数据需求方请求访问时再次分配或是其他需求方请求访问时进行分配。可选地,管理平台还可以将数据通证转移至其他数据需求方,以自动实现多个数据需求方对数据的按序访问与操作。
[0115] 本实施例中,管理平台可以通过执行智能合约自动进行数据通证的扣除,数据通证的扣除记录可以记录至区块链分布式账本,从而数据通证的来源及去向可查可溯源。例如,管理平台还可以执行S307的步骤。
[0116] S307:管理平台将数据通证的扣除记录进行分布式存储。
[0117] 本实施例中,管理平台还可以将数据通证的扣除记录进行分布式存储。例如,管理平台可以在数据需求方访问数据后,扣除数据需求方账户中相应的数据通证,并将扣除记录广播至区块链网络,区块链网络中的区块链节点将扣除记录进行排序打包至区块,并在经过共识后存储至区块链分布式账本中,有效实现数据通证的来源及去向可查可溯源,且有利于在出现数据相关的问题时进行责任追查。
[0118] 本实施例管理平台通过接收数据需求方的访问请求,在判断数据需求方满足目标数据对应的访问权限时,向数据需求方分配相应的数据通证,从而数据需求方可以获得目标数据的访问权限,实现目标数据的有效共享;并且管理平台通过在可信执行环境中进行访问权限条件判断以及数据通证的分配,可以有效提升智能合约执行的可信度以及数据通证分配的安全性;数据通证的分配记录和扣除记录均可进行分布式存储,使得数据通证的来源及去向可溯源,且数据的访问操作可查,有利于提高数据共享的安全性。
[0119] 本实施例中,步骤S301~S307的顺序是本实施例中的描述顺序,不限制为本实施例基于区块链的数据共享方法在执行过程中的顺序,在能够实现本方法的前提下,某些步骤可以调换顺序、同时执行或是单独执行其一。本实施例可以与本申请基于区块链的数据共享方法第二实施例结合。
[0120] 参阅图5,图5是本申请基于区块链的数据共享方法第四实施例的流程示意图。本实施例以管理平台为执行主体,包括:
[0121] S401:管理平台接收数据需求方关于目标数据的访问请求。
[0122] S402:管理平台在可信执行环境中执行智能合约以判断数据需求方是否满足目标数据的访问权限条件。
[0123] 在本实施例中,若管理平台判断数据需求方满足目标数据的访问权限条件,则可以执行S403的步骤。若管理平台判断数据需求方不满足目标数据的访问权限条件,则可以拒绝其进行数据访问。
[0124] S403:管理平台配置数据需求方相应的数据访问权限。
[0125] 本实施例中关于管理平台的更多功能和执行步骤,可以参照上述本申请基于区块链的数据共享方法第一至第三实施例的描述,在此不再赘述。
[0126] 参阅图6,图6是本申请电子设备实施例的结构示意图。本实施例电子设备60包括处理器61、存储器62和通信电路63,处理器61耦接存储器62和通信电路63。
[0127] 本实施例中,通信电路63用于电子设备80与外部设备进行通信。存储器62用于存储程序指令。处理器61用于执行程序指令以实现本申请基于区块链的数据共享方法第一至第四实施例中管理平台的步骤。
[0128] 在本实施例中,处理器61还可以称为CPU(Central Processing Unit,中央处理单元)。处理器61可能是一种集成电路芯片,具有信号的处理能力。处理器61还可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0129] 本实施例中关于电子设备60的更多执行过程和功能等可以参照上述本申请基于区块链的数据共享方法第一至第五实施例的描述,在此不再赘述。
[0130] 参阅图7,图7是本申请存储介质实施例的结构示意图。本实施例中存储介质70用于存储程序指令71。程序指令71能够被处理器运行,以实现上述本申请基于区块链的数据共享方法法第一至第四实施例中管理平台的步骤。具体可以参照上述本申请基于区块链的数据共享方法第一至第四实施例的描述,在此不再赘述。
[0131] 本申请基于区块链的数据共享方法第一至第四实施例所涉及的方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质70包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,或包括存储介质的移动终端等其他装置。
[0132] 以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。