一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的数据读写方法及装置、系统与流程

2022-06-01 15:44:55 来源:中国专利 TAG:


1.本说明书一个或多个实施例涉及区块链领域,尤其涉及一种基于区块链的数据读写方法及装置、系统。


背景技术:

2.区块链技术(也被称为,分布式账本技术)是一种去中心化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。
3.鉴于区块链技术存在上述优势,诸多用户选择将数据存储至区块链系统,以保证数据的安全性。


技术实现要素:

4.有鉴于此,本说明书一个或多个实施例提供一种基于区块链的数据读写方法及装置、系统。
5.为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
6.根据本说明书一个或多个实施例的第一方面,提出了一种基于区块链的数据读写系统,包括:客户端、数据管理平台和区块链系统;其中,
7.所述客户端,用于发起数据读写请求,以指示所述数据管理平台对属于目标数据分组的目标数据进行读取或写入;
8.所述数据管理平台,用于接收所述数据读写请求,并在基于预先记录的用户账户对各个数据分组的管理权限信息确定所述数据读写请求的请求发起方账户具有针对所述目标数据分组的读写权限的情况下,向所述区块链系统发起针对所述目标数据的管理交易;
9.所述区块链系统,用于在区块链中存储所述数据管理平台提交的属于各个数据分组的数据;以及,响应于所述管理交易,执行针对所述目标数据的读取操作或写入操作。
10.根据本说明书一个或多个实施例的第二方面,提出了一种基于区块链的数据读写方法,应用于数据管理平台,包括:
11.接收客户端发起的数据读写请求,所述数据读写请求用于指示所述数据管理平台对属于目标数据分组的目标数据进行读取或写入;
12.在基于预先记录的用户账户对各个数据分组的管理权限信息,确定所述数据读写请求的请求发起方账户具有针对所述目标数据分组的读写权限的情况下,向区块链系统发起针对所述目标数据的管理交易,以指示所述区块链系统执行针对所述目标数据的读取操作或写入操作;
13.其中,所述区块链系统,用于在区块链中存储所述数据管理平台提交的属于各个数据分组的数据。
14.根据本说明书一个或多个实施例的第三方面,提出了一种基于区块链的数据读写
装置,应用于数据管理平台,包括:
15.接收单元,接收客户端发起的数据读写请求,所述数据读写请求用于指示所述数据管理平台对属于目标数据分组的目标数据进行读取或写入;
16.确定单元,在基于预先记录的用户账户对各个数据分组的管理权限信息,确定所述数据读写请求的请求发起方账户具有针对所述目标数据分组的读写权限的情况下,向区块链系统发起针对所述目标数据的管理交易,以指示所述区块链系统执行针对所述目标数据的读取操作或写入操作;
17.其中,所述区块链系统,用于在区块链中存储所述数据管理平台提交的属于各个数据分组的数据。
18.根据本说明书一个或多个实施例的第四方面,提出了一种电子设备,包括:
19.处理器;
20.用于存储处理器可执行指令的存储器;
21.其中,所述处理器通过运行所述可执行指令以实现如第二方面所述的方法。
22.根据本说明书一个或多个实施例的第五方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第二方面所述方法的步骤。
附图说明
23.图1是一示例性实施例提供的一种基于区块链的数据读写系统的示意图。
24.图2是一示例性实施例提供的一种基于区块链的数据读写方法的流程图。
25.图3是一示例性实施例提供的一种基于区块链的数据写入方法的交互图。
26.图4是一示例性实施例提供的一种基于区块链的数据读取方法的交互图。
27.图5是一示例性实施例提供的一种设备的结构示意图。
28.图6是一示例性实施例提供的一种基于区块链的数据读写装置的框图。
具体实施方式
29.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
30.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
31.相关技术在采用区块链技术对数据进行存储时,通常采用数据加密的方式规避数据泄露等安全性问题。这种方式尽管起到了保证数据安全性的作用,但是难以在用户之间进行数据共享。
32.为此,本领域技术人员提出了联盟链的概念,在联盟链中,仅联盟内的成员可以获
取链上存储的加密数据,而联盟外的用户则无法获取链上存储的加密数据。其中,联盟内的成员通过链下传递密钥的方式,获取加密数据的明文。
33.不难看出,联盟链的提出,尽管使得链上数据能够在规定的联盟范围内进行数据共享。但是,该方式不仅需要以链为单位对数据共享的范围进行划分,且需要在链下频繁传递数据密钥,以达到数据共享的目的。一旦密钥在传递过程中泄露,数据明文被窃取的风险也随之提高。换言之,联盟链在实现数据共享的同时,在一定程度上牺牲了数据的安全性。除此之外,链下的密钥传递过程涉及双方的身份验证等操作,导致这个共享过程较为复杂。
34.为此,为了在实现数据共享的前提下,兼顾数据的安全性,并降低数据共享操作的繁琐程度,本说明书提出了一种基于区块链的数据读写系统。
35.图1为一示例性实施例示出的一种基于区块链的数据读写系统的示意图。如图1所示,该系统可以包括:客户端11、数据管理平台12和区块链系统13;其中,
36.客户端11,用于发起数据读写请求,以指示数据管理平台12对属于目标数据分组的目标数据进行读取或写入;
37.数据管理平台12,用于接收所述数据读写请求,并在基于预先记录的用户账户对各个数据分组的管理权限信息确定所述数据读写请求的请求发起方账户具有针对所述目标数据分组的读写权限的情况下,向区块链系统13发起针对所述目标数据的管理交易;
38.区块链系统13,用于在区块链中存储数据管理平台12提交的属于各个数据分组的数据;以及,响应于所述管理交易,执行针对所述目标数据的读取操作或写入操作。
39.由上述介绍可知,相关技术之所以无法在实现数据共享的同时,保证数据的安全性,且数据共享过程较为复杂,是由于相关技术以链为单位实现数据的共享,允许所有成员获取加密数据,并通过链下传递密钥的方式实现明文数据的获取而导致的。
40.有鉴于此,本说明书一方面不再以链为单位限制数据分享的范围,另一方面不再通过链下密钥传递的方式实现数据明文的共享。
41.在本说明书中,在用户使用的客户端11与区块链系统13之间引入了数据管理平台12。该数据管理平台12可以预先设置有若干逻辑层面的数据分组,并记录有用户账户对各个数据分组的管理权限信息。在此基础上,数据管理平台12在接收到客户端11发送的数据读写请求的情况下,即可基于预先记录的管理权限信息,判断数据读写请求的请求发起方账户是否具有针对目标数据分组的读写权限,其中,仅在该请求发起方账户具有读写权限的情况下,才向区块链系统13发起针对请求中指示的目标数据的管理交易,进而指示区块链系统13对目标数据进行读取或写入。
42.应当理解的是,在数据管理平台12中预先设置若干数据分组,且记录有用户账户对各个数据分组的管理权限信息,相当于规定了各个用户账户针对属于各个数据分组的数据的读写权限,例如,假设预先设置了a、b两个分组,那么,可以记录有哪些用户账户具有针对属于数据分组a的数据的读写权限、哪些用户账户具有针对属于数据分组b的数据的读写权限。在此基础上,本领域技术人员只需为需要进行数据共享的用户账户分配同一数据分组的读写权限,即可实现部分用户账户之间的数据共享。
43.显然,该方式相当于是基于逻辑分组,为各个用户账户分配了数据的读写权限,在此基础上,只需数据管理平台12进行权限判定,即可确定是否执行针对目标数据的读取和写入,避免了相关技术中需要通过链下密钥传递以获取数据明文,而导致的数据共享操作
繁琐的问题。相应的,由于无需再进行链下密钥传递,也避免了相关技术中由于密钥泄露,而导致的在实现数据共享的同时,无法兼顾数据安全性的问题。
44.在本说明书中,数据管理平台12在接收到客户端11发送的数据读写请求之后,唯有该请求的请求发起方账户具有针对目标数据分组的读写权限的情况下,才向区块链系统13发起针对目标数据的管理交易。那么,在进行权限判定之前,数据管理平台12首先需要确定用户请求访问的目标数据所属的目标数据分组。本说明书在不同场景下,可以采用不同方式确定出目标数据所属的目标数据分组。
45.在一实施例中,数据读写请求中可以包含目标数据分组的分组标识,那么,数据管理平台12在接收到数据读写请求的情况下,可以从数据读写请求中读取该分组标识,并将该分组标识所对应的数据分组确定为目标数据所属的目标数据分组。本实施例确定目标数据分组的方式,通常应用于发起数据读写请求的用户知晓自身所要读写的目标数据属于哪一数据分组的情况。
46.例如,在数据读写请求用于指示执行针对目标数据的写入操作时,用户可以在数据读写请求中写入分组标识,以指定目标数据所属的目标数据分组,在此基础上,数据管理平台12即可读取请求中的分组标识,并基于该分组标识确定出目标数据所属的目标数据分组,进而判定数据读写请求的请求发起方账户是否具有针对目标数据分组的读写权限。
47.再例如,在数据读写请求用于指示执行针对目标数据的读取操作时,用户知晓目标数据所属的目标数据分组,那么,可以在数据读写请求中写入该目标数据分组的分组标识,以便数据管理平台12在接收到数据读写请求的情况下,直接基于数据读写请求中包含的分组标识确定出目标数据分组,并判定数据读写请求的请求发起方账户是否具有针对目标数据分组的读写权限。
48.在另一实施例中,数据管理平台12可以在本地存储分组标识与数据标识之间的对应关系,以便在接收到客户端11发送的数据读写请求的情况下,可以根据数据读写请求中包含的目标数据的数据标识,从存储的对应关系中查询与该数据标识对应的分组标识,进而将与查询到的分组标识对应的数据分组确定为目标数据所属的目标数据分组。
49.在实际应用中,本实施例确定目标数据分组的方式,多用于数据读写请求用于指示数据管理平台12读取链上已存储数据的情况,即目标数据为链上已存储数据的情况;相应的,该链上已存储数据的数据标识与其所属数据分组的分组标识之间的对应关系,可以在对该已存储数据进行存储时,由数据管理平台12记录。
50.相较于上一实施例的目标数据分组确定方式,本实施例的确定方式,客户端11只需在数据读写请求中写入目标数据的数据标识,即可实现针对目标数据的读取,简化了目标数据的请求方的操作。然而,本实施例中的数据管理平台12需要额外记录数据标识与分组标识之间的对应关系,占用了数据管理平台12的存储空间。具体采用哪种方式确定目标数据分组,可由本领域技术人员根据实际需求确定,本说明书对此不做限制。
51.在本说明书中,区块链系统13也可以维护有区块链中存储的数据的数据标识与该数据所属数据分组的分组标识之间的对应关系。在此基础上,本说明书即可在客户端11发送的数据读写请求用于指示数据管理平台12执行针对目标数据的读取操作时,根据链上存储的该对应关系,验证数据管理平台12中确定的分组标识是否确实为目标数据所属的目标数据分组的分组标识。
52.在一实施例中,基于链上存储的对应关系,对数据管理平台12中确定的分组标识进行验证的操作,可由区块链系统13执行。具体的,区块链系统13在执行针对目标数据的读取操作之前,可以优先读取管理交易中包含的目标数据的数据标识,并基于区块链系统13中维护的对应关系,确定出与目标数据对应的分组标识,在此基础上,即可进一步将确定出的分组标识和管理交易中的分组标识进行对比,在两者一致的情况下,读取目标数据,并将读取到的目标数据返回至数据管理平台12。
53.应当理解的是,本实施例相当于是将管理交易中包含的分组标识和数据标识,与区块链系统13中维护的对应关系中的记录进行比对,当比对结果表明一致,则允许执行针对目标数据的读取操作。
54.在另一实施例中,基于链上存储的对应关系,对数据管理平台12中确定的分组标识进行验证的操作,可由数据管理平台12执行。具体的,区块链系统13在执行针对目标数据的读取操作时,一方面,可以基于管理交易中包含的目标数据的数据标识,获取链上存储的目标数据;另一方面,可以根据管理交易中包含的目标数据和维护的对应关系,确定出与该目标数据对应的分组标识。在此基础上,可以将获取到的目标数据和确定出的分组标识均返回至数据管理平台;而数据管理平台12在接收到返回的目标数据和分组标识后,即可将接收到的分组标识与本地确定的与目标数据的数据标识对应的分组标识进行比较,若两者一致,则证明本地确定的分组标识确实为目标数据所属的目标数据分组的分组标识,因此,可以将区块链系统13返回的目标数据转发至客户端11,若两者不一致,则证明本地确定的分组标识有误,不为目标数据所属的目标数据分组的分组标识,此时,不将区块链系统13返回的目标数据转发至客户端11,以避免数据泄露至不具备权限的用户。
55.当然,上述两实施例均是示例性的,在实际操作中,是否需要对数据管理平台12本地确定的分组标识进行验证,以及由哪一主体执行该验证操作,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
56.需要声明的是,上述两实施例所验证的对象,即数据管理平台12本地确定的分组标识,可以为通过上文所介绍的任一种方式确定的分组标识,例如,可以为上文所述的从数据读取请求中读取的分组标识,也可以为基于数据管理平台12本地存储的数据标识与分组标识的对应关系确定的分组标识。
57.其中,在数据管理平台12通过不同方式确定分组标识时,基于区块链系统13中维护的对应关系对该分组标识进行验证的意义是不同的。具体的:
58.在本地确定的分组标识为从数据读取请求中读取的分组标识的情况下,无论是目标数据的确定,还是目标数据分组的确定,均是基于数据读写请求确定,换言之,即便证明请求发起方账户具有针对目标数据分组的读写权限,也不代表其具有针对目标数据的读取权限,除非证明根据数据读写请求中指示的分组标识确定的数据分组,确实为目标数据所属的目标数据分组,因此,在该情况下,基于链上存储的对应关系对确定的分组标识进行验证的意义便在于:数据读写请求中包含的分组标识所对应的数据分组确实为“与其包含的数据标识对应的目标数据所属的目标数据分组”。
59.而在本地确定的分组标识为根据本地记录的对应关系确定时,该本地记录的对应关系可能经由非法分子篡改,若经由非法分子篡改则将导致权限判定的误判。因此,在该情况下,基于链上存储的对应关系对确定的分组标识进行验证的意义在于:避免由于数据管
理平台12中记录的对应关系被篡改,而导致链上数据的泄露。
60.在本说明书中,还可以对数据进行加密,以进一步对提高数据的安全性。其中,用于对数据进行加密的密钥可以通过多种方式获得。
61.在一实施例中,数据管理平台12可以为各个数据分组设置单独的分组密钥,以在需要对属于目标数据分组的目标数据进行写入时,通过该分组密钥对目标数据进行加密后,再基于加密后的目标数据,向区块链系统13发起用于指示对加密后的目标数据进行写入的管理交易。在该实施例中,相当于属于同一数据分组的数据均通过与该数据分组对应的分组密钥进行加密,并对加密后的数据进行上链。
62.在另一实施例中,数据管理平台12也可以为各个数据派生单独的数据密钥,以进一步提高数据的安全性。在实际操作中,数据管理平台12可以为各个数据分组设置单独的分组根密钥,以在接收到针对属于目标数据分组的目标数据的写入请求时,基于与目标数据分组对应的分组根密钥派生与目标数据唯一对应的数据密钥,并基于派生的数据密钥对目标数据进行加密后,向区块链系统13发起用于指示对加密后的目标数据进行写入的管理交易。在此基础上,区块链系统13即可响应于接收到的管理交易,对经由数据密钥加密后的目标数据进行存储。需要声明的是,在实际派生与目标数据对应的数据密钥时,可以基于分组根密钥和目标数据的相关信息进行派生,例如,该相关信息可以包含目标数据的哈希、摘要等若干信息中的至少一种。
63.在本实施例中,数据管理平台12在为各个数据派生唯一对应的数据密钥后,可以保存各个数据的数据标识与其数据密钥的对应关系。那么,在需要对目标数据进行读取时,可以发起用于指示区块链系统13将经由数据密钥加密后的目标数据返回至数据管理平台12的管理交易,并在接收到加密后的目标数据后,基于与目标数据唯一对应的数据密钥进行解密,进而将解密得到的目标数据返回至客户端11。
64.在本实施例中,数据管理平台12可以存储有与区块链系统13唯一对应的区块链根密钥,以用于为各个数据分组派生分组根密钥。其中,数据管理平台12中还可以进一步规定有具有数据分组创建权限的管理账户,那么,数据管理平台12在接收到任一客户端发送的数据分组创建指令时,即可判断该数据分组创建指令是否由数据管理平台12中规定的管理账户发起,若是,则创建新增数据分组,并基于存储的区块链根密钥为该新增数据分组派生分组根密钥。
65.在本说明书中,数据管理平台12还可以规定有具有账户管理权限的管理账户。在此基础上,具有该账户管理权限的用户即可通过向数据管理平台12发送账户管理指令的方式,对任一数据分组的管理权限信息进行修改。具体的,数据管理平台12在接收到任一客户端发送的针对任一数据分组的账户管理指令后,即可判断该账户管理指令是否是由规定的管理账户发起,若是,则基于账户管理指令中包含的指示信息,对该任一数据分组的管理权限信息进行更新,以对具有该任一数据分组的管理权限的账户进行调整。例如,可以增加或减少具有该任一数据分组的管理权限的账户。
66.需要声明的是,本说明书中的区块链系统在不同场景下可以采用不同方式进行部署。例如,本说明书中的区块链系统可以采用区块链技术的传统架构进行部署,即区块链系统中的所有节点均通过在相应实体设备上部署区块链代码而形成,大多数情况下,每个节点均对应于一个实体设备;再例如,本说明书中的区块链系统也可以采用区块链技术中的
baas(blockchain as a service)架构进行部署,即区块链系统中的所有节点均通过云服务在云端实现的虚拟机上部署区块链代码而形成,区块链节点无需一一对应于相应的实体设备。当然,上述部署方式均是示意性的,具体采用何种方式部署区块链系统,可由本领域技术人员根据实际需求确定,本说明书对此不作限制。
67.由上述技术方案可知,本说明书中的数据读写系统通过引入数据管理平台,并在数据管理平台中设置若干数据分组的方式,对存储于区块链的数据进行了逻辑层面的划分。进一步的,该数据管理平台中还记录有用户账户对各个数据分组的管理权限信息,使得数据管理平台可以在接收到数据读写请求的情况下,基于记录的管理权限信息甄别请求发起方账户是否具有针对相应数据的读写权限,并仅在相应账户具有权限的情况下,才向区块链系统发起针对相应数据的管理交易,以指示区块链系统执行针对相应数据的读取操作或写入操作。
68.本说明书相当于是以逻辑分组为单位实现数据共享,规避了相关技术中需要以链为单位对数据的共享范围进行划分的情况。应当理解的是,相关技术中的共享范围划分方式,不仅需要依托于实际部署的区块链,且无法在同一区块链下实现部分用户之间的数据共享,可扩展性较差。而本说明书基于数据分组对共享范围进行划分,由于数据分组属于逻辑层面的划分,不受存储结构的限制,只需对数据分组的管理权限信息进行变更,即可重新划分共享范围,可扩展性较好。
69.除此之外,本说明书中的数据读写系统,由数据管理平台根据管理权限信息判定是否从区块链中获取数据,并将获取到的数据返回至客户端,避免了相关技术中由于数据密文被直接返回至客户端、需要链下传递密钥以获取数据明文,进而导致数据安全性被牺牲的问题。
70.进一步的,本说明书中的数据管理平台在对数据进行存储时,也可以在对数据进行加密后,再将加密后的数据上链至区块链。例如,可以为各个数据分组设置独立的分组根密钥,那么,在对任一数据进行上链时,即可优先通过该任一数据所属数据分组的分组根密钥为该任一数据派生唯一对应的数据密钥,以基于派生得到的数据密钥对该任一数据进行加密,再将加密后的数据上链至区块链,进而提高数据的安全性。
71.本说明书还提出了一种基于区块链的数据读写方法,应用于上文所介绍的数据读写系统中的数据管理平台。该方法中的大多数操作方式,例如,如何进行权限判定、如何确定目标数据分组、如何为各个数据进行加密等,均已在上文中详细介绍,在下文中不再赘述。
72.图2为一示例性实施例示出的一种基于区块链的数据读写方法的流程图。该方法应用于数据管理平台,如图2所示,该方法可以包括:
73.步骤202,接收客户端发起的数据读写请求,所述数据读写请求用于指示所述数据管理平台对属于目标数据分组的目标数据进行读取或写入。
74.如上所述,本说明书在用户使用的客户端与区块链系统之间引入了数据管理平台。该数据管理平台可以预先设置有若干逻辑层面的数据分组,并记录有用户账户对各个数据分组的管理权限信息。在此基础上,数据管理平台在接收到客户端发送的数据读写请求的情况下,即可基于预先记录的管理权限信息,判断数据读写请求的请求发起方账户是否具有针对目标数据分组的读写权限,其中,仅在该请求发起方账户具有读写权限的情况
下,才向区块链系统发起针对请求中指示的目标数据的管理交易,进而指示区块链系统对目标数据进行读取或写入。
75.如上所述,在进行权限判定之前,数据管理平台首先需要确定用户请求访问的目标数据所属的目标数据分组。本说明书在不同场景下,可以采用不同方式确定出目标数据所属的目标数据分组。在一种情况下,数据读写请求中可以包含目标数据分组的分组标识,那么,数据管理平台在接收到数据读写请求的情况下,可以从数据读写请求中读取该分组标识,并将该分组标识所对应的数据分组确定为目标数据所属的目标数据分组。在另一种情况下,数据管理平台可以在本地存储分组标识与数据标识之间的对应关系,以便在接收到客户端发送的数据读写请求的情况下,可以根据数据读写请求中包含的目标数据的数据标识,从存储的对应关系中查询与该数据标识对应的分组标识,进而将与查询到的分组标识对应的数据分组确定为目标数据所属的目标数据分组。
76.步骤204,在基于预先记录的用户账户对各个数据分组的管理权限信息,确定所述数据读写请求的请求发起方账户具有针对所述目标数据分组的读写权限的情况下,向区块链系统发起针对所述目标数据的管理交易,以指示所述区块链系统执行针对所述目标数据的读取操作或写入操作;其中,所述区块链系统,用于在区块链中存储所述数据管理平台提交的属于各个数据分组的数据。
77.如上所述,区块链系统也可以维护有区块链中存储的数据的数据标识与该数据所属数据分组的分组标识之间的对应关系。在此基础上,本说明书即可在客户端11发送的数据读写请求用于指示数据管理平台执行针对目标数据的读取操作时,根据链上存储的该对应关系,验证数据管理平台中确定的分组标识是否确实为目标数据所属的目标数据分组的分组标识。
78.在一种情况下,该验证操作可由区块链系统执行。具体的,区块链系统在执行针对目标数据的读取操作之前,可以优先读取管理交易中包含的目标数据的数据标识,并基于区块链系统中维护的对应关系,确定出与目标数据对应的分组标识,在此基础上,即可进一步将确定出的分组标识和管理交易中的分组标识进行对比,在两者一致的情况下,读取目标数据,并将读取到的目标数据返回至数据管理平台。
79.在另一种情况下,验证操作可由数据管理平台执行,具体的,区块链系统在执行针对目标数据的读取操作时,一方面,可以基于管理交易中包含的目标数据的数据标识,获取链上存储的目标数据;另一方面,可以根据管理交易中包含的目标数据和维护的对应关系,确定出与该目标数据对应的分组标识。在此基础上,可以将获取到的目标数据和确定出的分组标识均返回至数据管理平台;而数据管理平台在接收到返回的目标数据和分组标识后,即可将接收到的分组标识与本地确定的与目标数据的数据标识对应的分组标识进行比较,若两者一致,则证明本地确定的分组标识确实为目标数据所属的目标数据分组的分组标识,因此,可以将区块链系统返回的目标数据转发至客户端,若两者不一致,则证明本地确定的分组标识有误,不为目标数据所属的目标数据分组的分组标识,此时,不将区块链系统返回的目标数据转发至客户端,以避免数据泄露至不具备权限的用户。
80.如上所述,说明书还可以对数据进行加密,以进一步对提高数据的安全性。其中,用于对数据进行加密的密钥可以通过多种方式获得。例如,数据管理平台可以为各个数据分组设置单独的分组根密钥,以在接收到针对属于目标数据分组的目标数据的写入请求
时,基于与目标数据分组对应的分组根密钥派生与目标数据唯一对应的数据密钥,并基于派生的数据密钥对目标数据进行加密后,向区块链系统发起用于指示对加密后的目标数据进行写入的管理交易。
81.如上所述,数据管理平台可以存储有与区块链系统唯一对应的区块链根密钥,以用于为各个数据分组派生分组根密钥。其中,数据管理平台中还可以进一步规定有具有数据分组创建权限的管理账户,那么,数据管理平台在接收到任一客户端发送的数据分组创建指令时,即可判断该数据分组创建指令是否由数据管理平台中规定的管理账户发起,若是,则创建新增数据分组,并基于存储的区块链根密钥为该新增数据分组派生分组根密钥。
82.如上所述,数据管理平台还可以规定有具有账户管理权限的管理账户。在此基础上,具有该账户管理权限的用户即可通过向数据管理平台发送账户管理指令的方式,对任一数据分组的管理权限信息进行修改。具体的,数据管理平台在接收到任一客户端发送的针对任一数据分组的账户管理指令后,即可判断该账户管理指令是否是由规定的管理账户发起,若是,则基于账户管理指令中包含的指示信息,对该任一数据分组的管理权限信息进行更新,以对具有该任一数据分组的管理权限的账户进行调整。例如,可以增加或减少具有该任一数据分组的管理权限的账户。
83.由上述技术方案可知,通过本说明书的技术方案,数据管理平台在接收到客户端发起的数据读写请求的情况下,可以基于记录的用户账户对各个数据分组的管理权限信息,判断数据读写请求的请求发起方账户是否具有针对目标数据所属目标数据分组的读写权限,且仅在是的情况下,向区块链系统发起针对目标数据的管理交易,以指示区块链系统对目标数据进行读取操作或写入操作,避免了相关技术中仅能够在联盟链成员之间进行数据共享的问题,以及共享过程中需要进行链下密钥传递,而导致的数据安全性下降的问题。
84.图3为一示例性实施例示出的一种基于区块链的数据写入方法的交互图。如图3所示,该方法可以包括以下步骤:
85.步骤301,客户端基于目标数据和目标数据分组的分组标识生成数据写入请求。
86.在本实施例中,用户可以在自身所持有的电子设备中登录自身所持有的用户账号,以形成与数据管理平台对应的客户端。那么,当用户需要将目标数据存储至区块链时,即可在客户端中进行一定的操作,以指定要将目标数据属于哪一数据分组,在此基础上,客户端可以基于待存储的目标数据和指定的目标数据分组的分组标识生成数据写入请求,并将生成的数据写入请求发送至数据管理平台。
87.步骤302,客户端将生成的数据写入请求发送至数据管理平台。
88.步骤303,数据管理平台读取目标数据和分组标识。
89.在本实施例中,数据管理平台中可以预先设置有若干数据分组,以用于划分各个用户账户对存储于区块链中的数据的读写权限。那么,数据管理平台在接收到数据写入请求的情况下,即可判断请求发起方账户是否具有其指定的目标数据分组的读写权限。
90.举例而言,数据管理平台中设置的数据分组,以及与各个数据分组对应的管理权限信息可以如下表1所示:
91.92.表1
93.由上表1可知,账户1、账户3和账户5具有针对数据分组a的读写权限;账户1、账户2和账户4具有针对数据分组b的读写权限;账户2、账户3和账户4具有针对数据分组c的读写权限。
94.假设发起数据写入请求的用户账户为账户1,且数据写入请求中包含的分组标识为“b”。那么,数据管理平台即可基于表1的记录以及分组标识“b”确定数据写入请求的请求发起方账户,即账户1具有针对分组b的读写权限。
95.步骤304,数据管理平台基于分组标识判断请求发起方账户是否具有针对目标数据分组的读写权限;若是,则跳转至步骤305。
96.步骤305,数据管理平台为目标数据派生数据密钥。
97.在本实施例中,在确定请求发起方账户具有针对目标数据分组的读写权限之后,即可基于与目标数据分组对应的分组根密钥为目标数据派生数据密钥,以对目标数据进行加密。
98.承接上述举例,假设数据管理平台为分组a设置的分组根密钥为密钥a、为分组b设置的分组根密钥为密钥b、为分组c设置的分组根密钥为密钥c,且目标数据为数据x。那么,在确定账户1具有针对分组b的读写权限后,即可基于密钥b为数据x派生唯一对应的数据密钥x。
99.步骤306,数据管理平台基于派生得到的数据密钥对目标数据进行加密。
100.承接上述举例,在派生得到密钥x后,即可基于密钥x对数据x进行加密,并基于加密后的数据x生成写入交易。其中,该写入交易被发送至区块链系统,以指示区块链系统执行针对加密后的数据x的写入操作。
101.步骤307,数据管理平台基于分组标识和加密后的目标数据,生成写入交易。
102.步骤308,数据管理平台将写入交易发送至区块链系统。
103.步骤309,区块链系统对写入交易中包含的加密后的目标数据进行存储。
104.在本实施例中,区块链系统在接收到写入交易后,即可将写入交易中包含的加密后的目标数据写入区块链的存储结构中。同时,还可以生成与目标数据唯一对应的哈希值,以作为目标数据的链上唯一标识。其中,该哈希值与目标数据的分组标识被关联存储于区块链中,以用于标注目标数据所属的数据分组。
105.承接上述举例,区块链系统在完成针对加密后的数据x的存储之后,即可生成与数据x唯一对应的哈希值x’,以作为数据x的链上唯一标识。
106.步骤310,区块链系统生成与目标数据唯一对应的哈希值,并对哈希值与分组标识进行关联存储。
107.步骤311,区块链系统将生成的哈希值返回至数据管理平台。
108.在本实施例中,在生成与目标数据唯一对应的哈希值后,即可将哈希值返回至数据管理平台,以由数据管理平台记录目标数据的数据编号、哈希值、数据密钥,以及目标数据分组的分组标识之间的对应关系。
109.步骤312,数据管理平台记录数据编号、哈希值、数据密钥,以及分组标识的对应关系。
110.不难理解的是,在本实施例中,目标数据的数据标识在不同的阶段可以由不同的
形式表征。具体的,在区块链系统与数据管理系统之间进行交互时,可以将该哈希值作为目标数据的数据标识;而在数据管理平台与客户端进行交互时,可以将目标数据本身具有的数据编号作为目标数据的数据标识(在数据写入请求中可以包含目标数据的数据编号),譬如,对于货品单据这一数据而言,可以将其单据编号作为该数据的数据标识。当然,上述举例仅是示意性的,具体在哪一阶段采用哪一种数据标识,可由本领域技术人员根据实际需求确定,本实施例对此不作限制。
111.由上述技术方案可知,通过本实施例的技术方案,数据管理平台可以在接收到针对目标数据的数据写入请求时,基于预先记录的用户账户对各个数据分组的管理权限信息,判断请求发起方账户是否具有针对目标数据分组的读写权限,且仅在具有权限的情况下,对该目标数据上链至区块链,避免了相关技术中需要依托于实际的区块链对数据共享范围进行划分的情况。
112.图4为一示例性实施例示出的一种基于区块链的数据读取方法的交互图。如图4所示,该方法可以包括以下步骤:
113.步骤401,客户端基于目标数据的数据编号和目标数据分组的分组标识生成数据读取请求。
114.在通过上一实施例的方式,将数据存储至区块链之后,用户即可对属于具有读写权限的数据分组的数据进行读取。具体的,用户同样可以在电子设备中登录自身所持有的用户账户,以形成与数据管理平台对应的客户端,在此基础上,用户即可在客户端中执行一定的操作,以指定要执行针对哪一数据的读取操作。
115.步骤402,客户端将生成的数据读取请求发送至数据管理平台。
116.步骤403,数据管理平台读取数据编号和分组标识。
117.步骤404,数据管理平台基于分组标识判断请求发起方账户是否具有针对目标数据分组的读写权限;若是,则跳转至步骤405。
118.在本实施例中,由于数据读取请求中包含目标数据分组的分组标识,那么,在进行权限判定时,只需基于从数据读取请求中读取该分组标识,即可确定目标数据所属的目标数据分组。
119.承接上一实施例的举例,假设发起数据读取请求的用户所持有的用户账户为账户2,且数据读取请求中包含的分组标识为标识“b”,那么,根据表1所示的管理权限信息,可以确定账户2具有针对分组b的读写权限。
120.步骤405,数据管理平台基于数据编号确定目标数据的哈希值。
121.承接上述举例,在确定账户2具有针对目标数据分组的读写权限的情况下,即可进一步根据在数据写入过程中记录的对应关系,确定出目标数据的哈希值。
122.步骤406,数据管理平台基于分组标识和哈希值,生成读取交易。
123.承接上述举例,在确定出哈希值之后,即可基于分组标识和哈希值生成读取交易,并发送至区块链系统。
124.步骤407,数据管理平台将读取交易发送至区块链系统。
125.步骤408,区块链系统在维护的对应关系中查询与读取交易中包含的哈希值对应的分组标识,以验证读取交易中的分组标识;在两者一致的情况下,执行步骤408。
126.在本实施例中,区块链系统在接收到读取交易的情况下,即可基于维护的哈希值
与分组标识的对应关系,对读取交易中包含的分组标识和哈希值进行验证。其中,当两者一致时,再获取加密的目标数据,并将获取到的加密后的目标数据返回至数据管理平台。
127.步骤409,区块链系统基于读取交易中包含的哈希值获取加密后的目标数据。
128.步骤410,区块链系统将加密后的目标数据返回至数据管理平台。
129.步骤411,数据管理平台基于哈希值查询与目标数据唯一对应的数据密钥。
130.承接上述举例,假设数据读取请求中的目标数据的数据编号为x,且经由上一实施例的写入方式,记录的数据编号、分组标识、数据密钥的对应关系如表2所示:
[0131][0132][0133]
表2
[0134]
那么,即可确定与数据x对应的数据密钥为密钥x。在此基础上,即可通过密钥x对区块链系统返回的加密的数据x进行解密,以得到数据x的明文。
[0135]
步骤412,数据管理平台基于查询到的数据密钥对区块链系统返回的加密后的目标数据进行解密。
[0136]
步骤413,数据管理平台将解密得到的目标数据返回至客户端。
[0137]
承接上述举例,即可将解密得到的数据x的明文返回至客户端。
[0138]
由上述技术方案可知,本实施例由数据管理平台掌握各个数据的数据密钥,使得数据管理平台在数据读取过程中,若确定请求发起方账户具有读写权限,可以直接基于本地保存的数据密钥对区块链系统返回的加密数据进行解密后,转发至客户端,避免了相关技术中需要进行链下密钥传递,而导致的数据安全性下降的问题。
[0139]
图5是一示例性实施例提供的一种设备的示意结构图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
[0140]
请参考图6,基于区块链的数据读写装置可以应用于如图5所示的设备中,以实现本说明书的技术方案。其中,该基于区块链的数据读写装置可以包括:
[0141]
接收单元601,接收客户端发起的数据读写请求,所述数据读写请求用于指示所述数据管理平台对属于目标数据分组的目标数据进行读取或写入;
[0142]
确定单元602,在基于预先记录的用户账户对各个数据分组的管理权限信息,确定所述数据读写请求的请求发起方账户具有针对所述目标数据分组的读写权限的情况下,向区块链系统发起针对所述目标数据的管理交易,以指示所述区块链系统执行针对所述目标数据的读取操作或写入操作;
[0143]
其中,所述区块链系统,用于在区块链中存储所述数据管理平台提交的属于各个数据分组的数据。
[0144]
可选的,
[0145]
确定单元602还被用于:在所述数据读写请求中包含分组标识的情况下,将所述数据读写请求中包含的分组标识确定为所述目标数据所属的目标数据分组;或者,
[0146]
确定单元602还被用于:在所述数据读写请求中包含目标数据的数据标识的情况下,根据本地存储的分组标识与数据标识之间的对应关系,查询与所述数据读写请求中包含的数据标识对应的分组标识,以作为所述目标数据分组。
[0147]
可选的,所述区块链系统用于维护在区块链中存储的数据的数据标识与该数据所属数据分组的分组标识之间的对应关系;
[0148]
接收单元601还被用于:接收所述区块链系统基于所述管理交易中包含的数据标识,返回所述目标数据及其对应的分组标识;以及,在接收到的分组标识和本地确定的与所述数据标识对应的分组标识一致的情况下,将所述区块链系统基于所述数据标识返回的目标数据转发至所述客户端。
[0149]
可选的,还包括:
[0150]
加密单元603,基于与所述目标数据唯一对应的数据密钥对所述目标数据加密,所述数据密钥由与所述目标数据分组对应的分组根密钥派生得到;
[0151]
确定单元602具体被用于:基于经由所述数据密钥加密得到的目标数据,生成用于指示所述区块链系统对加密后的目标数据进行存储的管理交易,并将生成的管理交易发送至所述区块链系统。
[0152]
可选的,
[0153]
接收单元601还被用于:接收任一客户端发送的数据分组创建指令;
[0154]
还包括:创建单元604,在所述数据分组创建指令由所述数据管理平台中规定的管理账户发起的情况下,创建新增数据分组;以及,派生单元605,基于与所述区块链系统对应的区块链根密钥,为所述新增数据分组派生分组根密钥。
[0155]
可选的,
[0156]
接收单元601还被用于:接收任一客户端发送的针对任一数据分组的账户管理指令;
[0157]
还包括:更新单元606,在所述账户管理指令由所述数据管理平台中规定的管理账户发起的情况下,基于所述账户管理指令中包含的指示信息,对与所述任一数据分组对应的管理权限信息进行更新,以对具有所述任一数据分组的管理权限的账户进行调整。
[0158]
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
[0159]
在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0160]
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或
非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
[0161]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0162]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0163]
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0164]
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0165]
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0166]
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献