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

文档序号:31053473发布日期:2022-08-06 09:24阅读:84来源:国知局
数据处理方法、装置、设备及存储介质与流程

1.本技术涉及区块链平台技术领域,尤其涉及一种数据处理方法、装置、设备及存储介质。


背景技术:

2.基金交易数据量日益增大,各个银行和基金公司都有自己的基金交易系统。然而,各个银行和基金公司的基金交易系统的数据并不互通,当用户想在不同的基金公司进行业务办理时,用户的数据不能直接从一个基金公司转移到另一家基金公司。
3.现有方案可以通过建立数据共享平台实现不同基金公司的基金交易系统中用户的数据共享,虽然可以为人们的生活提供了极大便利,但是数据共享平台极易收到恶意攻击,数据共享平台上存储的数据可能会出现被恶意用户篡改的风险,因此,如何保证数据共享平台存储的数据的安全成为亟待解决的问题。


技术实现要素:

4.本技术提供一种数据处理方法、装置、设备及存储介质,以保证数据共享平台存储的数据的安全。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,接收第一账户的数据请求信息,数据请求信息用于请求目标数据,数据请求信息包括第一账户的信息;向多个节点发送第一账户的信息,以使得多个节点确定第一账户是否具有获取目标数据的权限;当确定第一账户具有获取目标数据的权限时,获取目标数据,并将目标数据发送给多个节点,以使得多个节点确定目标数据与预先存储的目标数据是否一致;当确定目标数据与多个节点预先存储的目标数据一致时,向第一账户发送目标数据。
7.可选的,第一账户的信息包括第一账户的等级,第一账户具有获取目标数据的权限是指当第一账户的等级大于或等于目标数据的保密等级时,第一账户具有获取目标数据的权限。
8.可选的,接收第一节点上传的目标数据,目标数据为第一节点将原始数据进行转换得到的,目标数据包括原始数据模式、原始数据的关键字、原始数据的样本数据、上传目标数据的时间和原始数据的大小中的一个或多个,第一节点为多个节点中的一个节点;通过哈希算法计算目标数据的第一哈希值,并将第一哈希值以及目标数据保存至第一区块,第一区块为区块链平台新生成的区块。
9.可选的,针对所述多个节点中的每一节点,当第一哈希值与第二哈希值相同时,目标数据与多个节点存储的目标数据一致,第二哈希值为多个节点使用哈希算法对目标数据进行哈希运算得到的。
10.可选的,使用预设加密算法对目标数据进行加密,并向第一账户发送加密后的目标数据。
11.第二方面,本技术提供一种控制器一种数据处理装置,包括:接收单元、发送单元;接收单元,用于接收第一账户的数据请求信息,数据请求信息用于请求目标数据,数据请求信息包括第一账户的信息;发送单元,用于向多个节点发送第一账户的信息,以使得多个节点确定第一账户是否具有获取目标数据的权限;接收单元,还用于当确定第一账户具有获取目标数据的权限时,获取目标数据;发送单元,还用于将目标数据发送给多个节点,以使得多个节点确定目标数据与预先存储的目标数据是否一致;发送单元,还用于在目标数据与预先存储的目标数据一致时,向第一账户发送目标数据。
12.可选的,第一账户的信息包括第一账户的等级,第一账户具有获取目标数据的权限是指当第一账户的等级大于或等于目标数据的保密等级时,第一账户具有获取目标数据的权限。
13.可选的,装置还包括处理单元;接收单元,还用于接收第一节点上传的目标数据,目标数据为第一节点将原始数据进行转换得到的,目标数据包括原始数据模式、原始数据的关键字、原始数据的样本数据、上传目标数据的时间和原始数据的大小中的一个或多个,第一节点为多个节点中的一个节点;处理单元,用于通过哈希算法计算目标数据的第一哈希值,并将第一哈希值以及目标数据保存至第一区块,第一区块为区块链平台新生成的区块。
14.可选的,针对所述多个节点中的每一节点,当第一哈希值与第二哈希值相同时,目标数据与多个节点存储的目标数据一致,第二哈希值为多个节点使用哈希算法对目标数据进行哈希运算得到的。
15.可选的,发送单元具体用于:使用预设加密算法对目标数据进行加密,并向第一账户发送加密后的目标数据。
16.第三方面,一种区块链平台,区块链平台包括:处理器、通信接口和存储器;其中,存储器用于存储一个或多个程序,该一个或多个程序包括计算机执行指令,当区块链平台运行时,处理器执行该区块链平台存储的该计算机执行指令,以使区块链平台执行上述第一方面及其各种可选的实现方式中任意之一的数据处理方法。
17.第四方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该计算机执行上述第一方面及其各种可选的实现方式中任意之一的数据处理方法。
18.基于本技术实施例提供的技术方案,区块链平台在接收到来自第一账户的数据请求信息时,可以向通过多个节点验证第一账户是否具有获取数据的权限。也即,本技术首先通过验证第一账户是否具备获取目标数据权限,防止了恶意用户的访问,以及恶意用户对目标数据的篡改的可能。当确定第一账户具有获取目标数据的权限时,获取目标数据,并将目标数据发送给多个节点,以使得多个节点确定目标数据是否正确,并在确定目标数据为真实的数据的情况下,向第一账户发送目标数据。也就是说,当第一账户具有访问权限时,本技术还利用区块链平台中的所有节点对目标数据进行验证,以确认目标数据是否正确,在目标数据正确的情况下向第一账户发送目标数据。本技术实施例中,在具有安全环境的区块链平台上,通过对第一账户的访问权限验证,以及对目标数据的真实性的双重验证,保证了数据的安全。
附图说明
19.图1为本技术实施例提供的一种区块链平台系统示意图;
20.图2本技术实施例提供的一种数据处理装置的结构示意图;
21.图3a为本技术实施例提供的一种数据处理方法的流程示意图;
22.图3b为本技术实施例提供的一种下一代访问控制(usage control,ucon)模型结构示意图;
23.图4为本技术实施例提供的一种数据处理方法的流程示意图;
24.图5为本技术实施例提供的一种数据处理方法的流程示意图;
25.图6为本技术实施例提供的一种数据处理装置的结构示意图。
具体实施方式
26.下面结合附图对本技术实施例提供的一种数据处理方法、装置、设备及存储介质进行详细地描述。
27.本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。
28.本技术的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
29.此外,本技术的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
30.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
31.在本技术的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
32.在介绍本技术实施例之前,对本技术实施例中的名词进行解释。
33.区块链平台:狭义来讲,区块链平台是一种按照时间顺序将区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链平台技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全的一种全新的分布式基础架构与计算方式。
34.区块链平台可以包括多个区块(block)及节点。该多个区块可以按照时间顺序排列。
35.区块:用于记录一段时间内发生的所有交易和状态结果等,可以为一块独立的虚拟存储空间。
36.哈希算法(hash):可以用于将任意长度的数据变换成固定长度的字符串。该字符串可以称为哈希值。该字符串可以由字母和数字组成。
37.智能合约:表示一种计算机协议,旨在以数字化的方式构建、验证和执行合约,可
以在没有第三方的情况下进行可靠的交易。智能合约以代码形式存储于区块链平台上,在满足预设条件时自动执行。
38.为了实现数据的共享,数据共享平台(例如,可以为共享云盘)越来越受到重视。通过数据共享平台可以实现不同系统的用户的数据共享。虽然数据共享平台可以使得人们可以随时共享数据以及查看存储的数据,但是数据共享平台极易受到恶意攻击,数据共享平台上存储的数据可能会出现被恶意用户篡改的风险。
39.针对上述问题,可以采用下述解决方案:区块链平台通过接收第一账户的数据请求信息,数据请求信息用于请求目标数据,数据请求信息包括第一账户的信息;向多个节点发送第一账户的信息,以使得多个节点确定第一账户是否具有获取目标数据的权限;当确定第一账户具有获取目标数据的权限时,获取目标数据,并将目标数据发送给多个节点,以使得多个节点确定目标数据是否正确;当确定目标数据为真实的数据时,向第一账户发送目标数据。
40.下面结合说明书附图对本技术实施例提供的一种数据处理方法进行说明。
41.本技术实施例提供的确定方法可以应用于图1所示的区块链平台10中,如图1所示,本技术实施例提供一种区块链平台10,该区块链平台10与多个节点通信连接。例如,多个节点可以包括为第一节点、第二节点、第三节点、第四节点...、第n节点,n为大于1的整数。
42.其中,节点可以用于验证存储与区块链平台中的数据,还可以用于确定账户是否有权限访问数据。账户可以通过登录区块链平台中的节点获取区块链平台中的数据。例如,节点可以为终端设备、服务器、计算机等。
43.其中,终端设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,umpc)、上网本等。本技术实施例对该终端的具体形态不作特殊限制。其可以与用户通过键盘、触摸板、触摸屏、遥控器、语音交互或手写设备等一种或多种方式进行人机交互。
44.其中,服务器可以是单独的一个服务器,或者,也可以是由多个服务器构成的服务器集群。部分实施方式中,服务器集群还可以是分布式集群。本技术实施例对服务器的具体实现方式也不作限制。
45.需要说明的是,图1仅为示例性架构图,除图1中所示功能单元之外,该接入系统还可以包括其他功能单元,本技术实施例对此不进行限定。
46.在具体实现时,图1中的各个节点可以采用图2所示的组成结构,或者包括图2所示的部件。图2为本技术实施例提供的一种数据处理装置20的组成示意图,该数据处理装置20包括处理器201、通信接口202、通信线路203以及存储器204。
47.其中,处理器201可以是cpu、通用处理器网络处理器(network processor,np)、数字信号处理器(digital signal processing,dsp)、微处理器、微控制器、可编程逻辑器件(programmable logic device,pld)或它们的任意组合。处理器201还可以是其它具有处理功能的装置,例如电路、器件或软件单元,不予限制。在一种示例中,处理器201可以包括一个或多个cpu,例如,图2中的cpu0和cpu1。
48.通信接口202,用于与其他设备或其它数据处理网络进行数据处理。该其它数据处理网络可以为以太网,无线接入网(radio access network,ran)设备,无线局域网
(wireless local area networks,wlan)等。通信接口可以是单元、电路、通信接口或者任何能够实现数据处理的装置。
49.通信线路203,用于在接入系统所包括的各部件之间传送信息。
50.存储器204,用于存储指令。其中,指令可以是计算机程序。
51.其中,存储器204可以是只读存储器(read-only memory,rom)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是随机存取存储器(random access memory,ram)或可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(ally erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或其他磁存储设备等,不予限制。
52.需要指出的是,存储器204可以独立于处理器201存在,也可以和处理器201集成在一起。存储器204可以用于存储指令或者程序代码或者一些网络数据等。存储器302可以位于数据处理装置20内,也可以位于数据处理装置20外,不予限制。处理器201,用于执行存储器204中存储的指令,以实现本技术下述实施例提供的数据处理方法。
53.作为一种可选的实现方式,数据处理装置20包括多个处理器,例如,除图2中的处理器201之外,还可以包括处理器207。
54.作为一种可选的实现方式,数据处理装置20还包括输出设备205和输入设备206。示例性地,输入设备206是键盘、鼠标、麦克风或操作杆等设备,输出设备205是显示屏、扬声器(speaker)等设备。
55.本技术实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。
56.此外,本技术的各实施例之间涉及的动作、术语等均可以相互参考,不予限制。本技术的实施例中各个设备之间交互的信息名称或信息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称,不予限制。
57.基于上述图1所示的区块链系统,本技术实施例提供了一种区块链的构建方法以及一种数据处理方法。
58.下面先对本技术实施例提供的区块链的构建方法进行说明。
59.一种可能的实施例中,本技术实施例提供的区块链的构建方法可以包括过程。
60.一、响应于预设操作,终端设备在预设系统安装预设文件以提供区块链平台的运行环境。
61.其中,终端设备可以为区块链平台中的一个节点。终端设备可以访问多个节点,并在每个节点进行安装配置文件。
62.其中,预设操作可以包括但不限于:触摸操作、点击操作。预设系统可以包括但不限于linux系统。预设文件可以包括多个文件,例如,多个文件包括:ubuntu16.04.2x64 server、应用容器引擎(docker)等。区块链平台可以为开源区块链平台(如可以为hyperlegder fabric)。
63.作为一种可能的实现方式,终端设备可以先安装ubuntu16.04.2x64server文件以安装linux系统。完成安装linux系统后,终端设备可以依次安装以下预设文件:docker、python包管理工具python-pip、docker-compose、fabric源码、fabric docker镜像以提供区块链平台的运行环境。
64.其中,docker表示模拟容器,可以为用于支持区块链平台的所需要的虚拟环境。python-pip用于提供了对python数据包的查找、下载、安装、卸载的功能。docker-compose表示一种docker组件,可以用于通过模板脚本批量创建docker容器。fabric源码以及fabric docker镜像用于构建区块链平台的区块链平台。
65.需要说明的,终端设备可以响应于第一预设指令安装python-pip,并响应于第二预设指令安装docker-compose,及可以响应于第三预设指令下载fabric源码以及fabric docker镜像,
66.例如,第一预设指令可以为:sudo apt-get install python-pipdocker-compose。终端设备可以响应于第二预设指令。第二预设指令可以为:curl-lhttps://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-uname-s-una me-m》~/docker-compose;sudo chmod+x/usr/local/bin/docker-compose。第三预设指令可以为:git clone https://github.com/hyperledger/fabric.git。
67.进一步的,终端设备还可以通过docker图像(images)来查看已经下载的fabric docker镜像。
68.二、终端设备在区块链平台运行环境中创建频道,并使得多个节点加入频道。
69.作为一种可能的实现方式,终端设备可以通过在generateartifacts.sh脚本中安装配置文件configtx.yaml,以生成频道以及频道对应的频道号。例如,频道号可以包括频道(channel)01、channel02等。多个节点可以根据频道号加入频道号对应的频道。
70.三、终端设备在多个节点中安装智能合约,以使得多个节点链接形成区块链平台。
71.其中,智能合约可以包括访问控制策略。具体的,可以上述描述,不予赘述。访问控制策略可以参照下述实施例中的决策的描述,此处不予赘述。
72.需要说明的,区块链平台中的多个节点之间需要维持长链接以及心跳包以确定多个节点是否正常。长链接表示无论是否有数据传输,多个节点之间都需要处于保持连接状态。心跳包表示每个节点周期性的向其他节点发送数据包,以确定节点之间的数据传输通道是否畅通。
73.需要说明的,终端设备可以响应于对blockchain_manager项目的启动操作,显示区块链平台的各个节点的信息。例如,节点的信息可以包括:节点身份标识(identity document,id)、节点创造时间(creat time)、节点更新时间(update time)、节点网际互连协议(internet protocol,ip)地址、节点名称(name)、应用程序(application,app)id、所属节点分组(group id)中的一个或多个。
74.示例性的,节点的信息可以以表格的形式存储在终端设备。例如,节点的信息可以如表1所示。
75.表1
[0076][0077]
需要说明的是,表1中仅为示例性的,还可以包括其他节点的信息,不予限制。
[0078]
由此,本技术通过建立区块链平台,并将数据存储与区块链平台,可以提高数据安全性。
[0079]
在介绍了本技术实施例提供的区块链的构建方法之后,结合图1所示的区块链平台,下面继续对本技术实施例提供的数据处理方法进行说明。
[0080]
一种可能的实施例中,如图3a所示,本技术实施例提供的数据处理方法可以包括:s301-s304。
[0081]
s301、接收第一账户的数据请求信息。
[0082]
其中,区块链平台可以为图1中的区块链平台10。
[0083]
其中,数据请求信息用于请求目标数据。数据请求信息包括第一账户的信息以及目标数据的标识。
[0084]
例如,第一账户的信息可以包括第一账户的账号、账号对应的密码以及第一账户的等级等。账户的等级可以用于确定账户是否有权限获取目标数据。比如,账户的等级可以包括1级、2级、3级、4级、5级。当然,账户还可以包括其他等级,本技术不予限定。目标数据的标识可以用于唯一的标识目标数据,例如,可以为目标数据的名称、编号等。
[0085]
其中,目标数据可以为元数据。元数据可以是指对原始数据的描述。目标数据可以通过原始数据转换生成,目标数据包括原始数据的模式、原始数据的关键字、原始数据的样本数据、上传目标数据的时间和原始数据的大小中的一个或多个。例如,目标数据可以包括用户身份标识、手机号、用户名、用户交易数据等信息。
[0086]
例如,原始数据的模式可以包括文字模式、数字模式等。原始数据的关键字可以包括用户名、手机号等。原始数据的样本数据可是为原始数据中的部分数据。
[0087]
作为一种可能的实现方式,响应于第一调用操作,目标节点可以向区块链平台发送数据请求信息。相应的,区块链平台接收第一账户发送的数据请求信息。
[0088]
其中,目标节点可以第一账户登录的节点。第一调用操作可以是指第一账户在目标节点上调用目标数据的操作。
[0089]
s302、向多个节点发送第一账户的信息,以使得多个节点确定第一账户是否具有获取目标数据的权限。
[0090]
作为一种可能的实现方式,区块链平台可以向接入区块链平台的多个节点发送第一账户的信息。当多个节点接收到第一账户的信息时,多个节点均可以根据第一账户的等级以及目标数据的保密等级确定第一账户是否具有获取目标数据的权限。
[0091]
一种示例中,当第一账户的等级大于或等于目标数据的保密等级时,节点可以确定第一账户具有获取目标数据的权限。当第一账户的等级小于目标数据的保密等级时,节点可以确定第一账户不具有获取目标数据的权限。账户的等级及目标数据的保密的等级可以为预先设置的。
[0092]
例如,当第一账户的等级为3级,目标数据的保密等级为2级时,节点确定第一账户具有获取目标数据的权限。当第一账户的等级为2级,目标数据的保密等级为3级时,节点确定第一账户不具有获取目标数据的权限。
[0093]
需要说明的,当多个节点中超过预设数量的节点确定第一账户具有获取目标数据的权限时,区块链平台确定第一账户具有获取目标数据的权限。预设数量可以根据需要设置,例如,可以为多个节点的总数量的一半。
[0094]
作为一种可能的实现方式,多个节点中每个节点可以预先配置有ucon模型。该ucon模型可以用于确定第一账户是否具有获取目标数据的权限。例如,节点可以将第一账户的信息以及目标数据的信息输入ucon模型,该ucon模型可以输入该第一账户是否具有获取目标数据的权限。
[0095]
例如,如图3b所示,ucon模型的输入可以为主体和客体,输入为权限。
[0096]
其中,主体表示账户的信息。客体表示账户需要获取的数据。权限可以表示账户是否具有获取数据的权限。
[0097]
示例性的,ucon模型输入的主体、客体以及输出权限可以如表2所示。
[0098]
表2
[0099][0100]
需要说明的是,表2中仅为示例性的,还可以包括其他主体、客户及主体对应的权限,不予限制。例如,表2中,主体1可以具有获取客体1的权限,但没有获取客体2和客体3的权限。
[0101]
一种示例中,ucon模型可以预先配置有多个决策。决策用于确定账户是否具有获取数据的权限。不同的主体在获取同一客体时使用的决策不同。例如,主体1在获取客体1时,使用决策1。主体2在获取客体1时,使用决策2。
[0102]
其中,决策可以根据授权、义务、条件确定。其中,授权可以是指客体是否允许被获取。义务表示账户在访问目标数据之前或者访问目标数据过程执行的动作,例如,账户在访问目标数据之前需要提供账户的信息、账户在访问目标数据过程需要保持登录状态。条件表示与环境相关的决策因素。例如,条件可以包括账户登录的设备为规定的设备、账户获取目标数据的时间位于规定的时间段内。
[0103]
具体的,当客体允许被获取,且账户同时满足条件以及义务的要求时,则说明账户
有权限访问目标数据。当客体不允许被获取(例如,当客体为保密数据),或账户不符合条件以及义务要求中的一项或多项时,则说明账户没有权限访问目标数据。
[0104]
作为一种可能的实现方式,每个节点还可以预先配置有访问控制(role-based access control,rbac)模型。该rbac模型可以基于账户的角色的确定第一账户是否具有获取目标数据的权限。该rbac模型的输入可以为账户的信息及目标数据的信息,输入可以为账户是否具有获取数据的权限。
[0105]
其中,rbac模型可以配置有多个预设角色,不同的预设角色可以具有不同的访问权限。每个预设角色可以对应一个或多个账户。rbac模型可以基于账户的信息为确定账户对应的预设角色,并根据账户对应的角色,确定账户是否具有获取数据的权限。
[0106]
示例性的,rbac模型中的预设角色以及预设角色获取数据的权限可以以表格的形式存储至节点。例如,预设角色以及预设角色获取数据的权限如表3所示。
[0107]
表3
[0108][0109]
需要说明的,表3中仅为示例性的,还可以包括其他预设角色以及该预设角色是否具有获取多个数据的权限,不予限制。例如,表3中,预设角色1可以具有获取数据1的权限,但没有获取数据2和数据3的权限。
[0110]
如此,通过brac模型可以预先确定每个节点的权限,不需要每次都为账户进行分配权限,只要分配给账户相应的预设角色即可,而且预设角色的权限变更比账户的权限变更要少得多,这样可以简化账户的权限管理,降低系统的处理压力。
[0111]
上述对于访问控制模型的介绍仅为示例性的说明,本技术还可以使用其他多种类型的访问控制模型,例如,还可以为基于任务的访问控制(role-based access control,tbac)模型等,不予限制。
[0112]
s303、当确定第一账户具有获取目标数据的权限时,获取目标数据,并将目标数据发送给多个节点,以使得多个节点确定目标数据与预先存储的目标数据是否一致。
[0113]
作为一种可能的实现方式中,账户的数据请求消息可以包括目标数据的关键字,区块链平台可以根据目标数据的关键字从保存目标数据的区块中获取目标数据。节点可以根据目标数据的哈希值以及签名信息确定目标数据与预先存储的目标数据是否一致。需要说明的,每个数据的哈希值是唯一的,哈希值可以为字符串,例如,可以为hash1、hash2、hash11等。
[0114]
一种示例中,区块链平台在接收到目标数据后,区块链平台可以根据哈希算法生成第一哈希值、并将第一哈希值进行签名得到第一签名信息,并将目标数据、第一哈希值以及第一签名信息存储至区块链平台中的新区块中。区块链平台在确定第一账户具有获取目标数据的权限后,可以将存储在区块中的目标数据发送给区块链平台中的多个节点。每个节点可以根据哈希算法接收到的来自区块链平台的目标数据生成第二哈希值、并将第二哈希值进行签名得到第二签名信息。当第一哈希值与第二哈希值相同、且第一签名信息与第
二签名信息相同时,该节点确定目标数据与节点预先存储的目标数据一致,说明目标数据未经过篡改。当第一哈希值与第二哈希值不同,和/或第一签名信息与第二签名信息不同时,节点确定目标数据与该节点预先存储的目标数据不一致,说明目标数据可能已经被篡改。
[0115]
需要说明的,当多个节点中超过预设数量的节点确定目标数据与预先存储的目标数据一致时,区块链平台确定该目标数据与预先存储的目标数据一致。预设数量可以根据需要设置,例如,可以为多个节点的总数量的一半。
[0116]
s304、当确定目标数据与预先存储的目标数据一致时,向第一账户发送目标数据。
[0117]
其中,当区块链平台在接收到预设数量的节点反馈的目标数据与预先存储的目标数据一致的信息时,区块链平台可以确定目标数据与预先存储的目标数据一致。如此,区块链平台可以向第一账户发送目标数据。例如,可以向第一账户登录的节点发送目标数据。
[0118]
作为一种可能的实现方式,为了保证目标数据的安全,区块链平台可以使用预设加密算法对目标数据进行加密,并向第一账户发送加密后的目标数据。
[0119]
需要说明的,预设加密算法可以为非对称加密算法,区块链平台利用非对称加密算法向第一账户发送目标数据过程可以包括:区块链平台利用第一账户对应的公钥对目标数据进行加密,并向第一账户发送该加密后的目标数据,相应的,第一账户登录的节点接收区块链平台发送的目标数据,并利用预先配置的私钥对目标数据进行解密,以得到目标数据。
[0120]
基于本技术实施例提供的技术方案,区块链平台在接收到来自第一账户的数据请求信息时,可以向通过多个节点验证第一账户是否具有获取数据的权限。也即,本技术首先通过验证第一账户是否具备获取目标数据权限,防止了恶意用户的访问,以及恶意用户对目标数据的篡改的可能。当确定第一账户具有获取目标数据的权限时,获取目标数据,并将目标数据发送给多个节点,以使得多个节点确定目标数据是否正确,并在确定目标数据为真实的数据的情况下,向第一账户发送目标数据。也就是说,当第一账户具有访问权限时,本技术还利用区块链平台中的所有节点对目标数据进行验证,以确认目标数据是否正确,在目标数据正确的情况下向第一账户发送目标数据。本技术实施例中,在具有安全环境的区块链平台上,通过对第一账户的访问权限验证,以及对目标数据的真实性的双重验证,保证了数据的安全。
[0121]
一种可能的实施例中,如图4所示,在s301之前,本技术实施例提供的方法还可以包括下述s401-s402。
[0122]
s401、响应于上传操作,第一节点向区块链平台发送目标数据。相应的,区块链接收第一节点上传的目标数据。
[0123]
其中,目标数据为第一节点将原始数据进行转换得到的,原始数据为未经过任何处理的数据,未经处理的数据可以是指数据量较大、数据格式杂乱的数据。第二节点为区块链平台中多个节点中的任一个。
[0124]
需要说明的是,本技术实施例中,不同节点上传的原始数据的结构可能不同。例如,节点1上传的原始数据可以为顺序存储的数据,节点2上传的原始数据可以为链式存储结构的数据。不同结构的数据进行处理后,可以得到结构相同的元数据。如此,处理后的数据格式统一,可以消除数据异构性对平台共享数据造成的数据不真实的影响。
[0125]
s402、区块链平台获取第一哈希值,并将第一哈希值以及目标数据保存至第一区块。
[0126]
其中,第一哈希值可以为多个节点通过哈希算法对目标数据进行哈希运算得到的。一个节点确定一个第一哈希值。第一区块为区块链平台新生成的区块。
[0127]
需要说明的,每个节点在计算目标数据的第一哈希值的基础上,还可以将第一哈希值进行签名得到第一签名信息。节点还可以存储第一签名信息。
[0128]
由此,本技术通过将原始数据转换为目标数据,再向区块链平台发送该目标数据,由于目标数据包括原始数据模式、原始数据的关键字、原始数据的样本数据、上传目标数据的时间和原始数据的大小中的一个或多个,相当于是对原始数据的描述,数据量较小,目标数据相比于原始数据占用内存小,可以减少区块链平台的网络负担,可以避免数据量过大导致的数据传输的中断。
[0129]
一种可能的实施例中,在s303中节点确定目标数据与该节点存储的目标数据一致,具体包括:当目标数据的第一哈希值与第二哈希值相同时,目标数据与节点存储的目标数据一致。
[0130]
其中,第二哈希值为多个节点使用哈希算法对来自区块链平台的目标数据进行哈希运算得到的。第二哈希值为当前时段目标数据的哈希值。目标数据为来自区块链平台的目标数据。
[0131]
需要说明的,针对该多个节点的每一个节点,当节点接收到来自区块链平台的目标数据后,该节点在使用哈希算法对该目标数据进行哈希运行,得到第二哈希值后,还可以对第二哈希值进行签名得到第二签名信息。节点可以根据第二哈希值及第二签名信息,确定目标数据与存储的目标数据一致。具体可以参照上述s303的描述,不予赘述。
[0132]
由此,本技术可以通过多个节点对比目标数据的哈希值与预先存储的哈希值是否相同,以确定目标数据与多个节点存储的目标数据是否一致,可以及时确定目标数据是否被修改,提高了数据安全性。
[0133]
一种可能的实施例中,如图5所示,在s304之后,本技术实施例提供的方法还可以包括下述s501。
[0134]
s501、区块链平台生成第二区块。
[0135]
其中,第二区块用于存储第一账户的访问记录,访问记录包括第一账户发送的数据请求信息及向第一账户发送的目标数据。
[0136]
作为一种可能的实现方式,区块链平台可以通过在预置的存储介质中划分出独立的空间生成第二区块。
[0137]
由此,区块链平台可以详细的记录每个账户对于目标数据的访问过程。
[0138]
本技术实施例可以根据上述方法示例对服务器进行功能单元或者功能单元的划分,例如,可以对应各个功能划分各个功能单元或者功能单元,也可以将两个或两个以上的功能集成在两个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元或者功能单元的形式实现。其中,本技术实施例中对单元或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际划分时可以有另外的划分方式。
[0139]
图6示出了上述实施例中所涉及的数据处理装置的一种可能的结构示意图。如图6所示,数据处理装置60包括:接收单元601、发送单元602。
[0140]
接收单元601,用于接收第一账户的数据请求信息,数据请求信息用于请求目标数据,数据请求信息包括第一账户的信息。例如,如图3a所示,接收单元601可以用于执行s301。
[0141]
发送单元602,用于向多个节点发送第一账户的信息,以使得多个节点确定第一账户是否具有获取目标数据的权限。例如,如图3a所示,发送单元602可以用于执行s302。
[0142]
接收单元601,还用于当确定第一账户具有获取目标数据的权限时,获取目标数据。例如,如图3a所示,接收单元601可以用于执行s303。
[0143]
发送单元602,还用于将目标数据发送给多个节点,以使得多个节点确定目标数据与预先存储的目标数据是否一致。例如,如图3a所示,发送单元602可以用于执行s303。
[0144]
发送单元602,还用于还当确定目标数据与预先存储的目标数据一致时,向第一账户发送目标数据。例如,如图3a所示,发送单元602可以用于执行s304。
[0145]
一种可能的设计中,第一账户的信息包括第一账户的等级,第一账户具有获取目标数据的权限是指当第一账户的等级大于或等于目标数据的保密等级时,第一账户具有获取目标数据的权限。
[0146]
一种可能的设计中,装置还包括处理单元603;接收单元601,还用于接收第一节点上传的目标数据,目标数据为第一节点将原始数据进行转换得到的,目标数据包括原始数据模式、原始数据的关键字、原始数据的样本数据、上传目标数据的时间和原始数据的大小中的一个或多个,第一节点为多个节点中的一个节点。例如,如图4所示,接收单元601可以用于执行s401。处理单元603,用于将第一哈希值以及目标数据保存至第一区块,第一哈希值为多个节点通过哈希算法对目标数据进行哈希运算得到的,第一区块为区块链平台新生成的区块。例如,如图4所示,处理单元603可以用于执行s402。
[0147]
一种可能的设计中,当第一哈希值与第二哈希值相同时,目标数据与多个节点存储的目标数据一致,第二哈希值为多个节点使用哈希算法对目标数据进行哈希运算得到的。
[0148]
一种可能的设计中,发送单元602具体用于:使用预设加密算法对目标数据进行加密,并向第一账户发送加密后的目标数据;
[0149]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元的划分进行举例说明,实际应用中,可以根据需要而将上述功能数据处理由不同的功能单元完成,即将装置的内部结构划分成不同的功能单元,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0150]
本技术实施例提供一种包含指令的计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例的数据处理方法。
[0151]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当数据处理装置执行该指令时,该数据处理装置执行上述方法实施例所示的方法流程中数据处理装置执行的各个步骤。
[0152]
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器
(random access memory,ram)、只读存储器(read-only memory,rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(application specific integrated circuit,asic)中。在本技术实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0153]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1