本发明涉及计算机技术领域,尤其涉及一种基于区块链的数据处理方法、装置、节点设备及存储介质。
背景技术:
当前,随机数预测已成为人们越来越喜欢的娱乐方式,现有的随机数预测过程中,执行者可以提前将目标随机数进行保密存储,并由参与者输入预测数字进行预测。
然而,采用上述方式,由于随机数是保密的,参与者无法得知参与过程中预先设置的目标随机数是否被更改,由于参与过程中随机数的不透明性,导致最终无法确定目标随机数的真实性,因此,在随机数预测时提升随机数预测过程的透明性,进而提升预测结果的真实性是亟待解决的问题。
技术实现要素:
本发明实施例提供了一种基于区块链的数据处理方法、装置、节点设备及存储介质,可以采用区块链对随机数预测过程进行管控,提升随机数预测过程的透明性以及预测结果的真实性。
一方面,本发明实施例提供了一种基于区块链的数据处理方法,所述方法包括:
从可信服务器中获取加密随机数,并将所述加密随机数上传至区块链中,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
接收第二终端发送的随机数预测请求,所述随机数预测请求携带有预测数;
当检测到满足处理条件时,获取所述加密随机数对应的目标密钥,并采用所述目标密钥对所述区块链中存储的所述加密随机数进行解密得到所述目标随机数;
将所述预测数与所述目标随机数进行比对,若比对一致,则将所述第二终端确定为目标终端。
另一方面,本发明实施例提供了一种基于区块链的数据处理装置,所述装置包括:
获取模块,用于从可信服务器中获取加密随机数;
上传模块,用于将所述加密随机数上传至区块链中,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
接收模块,用于接收第二终端发送的随机数预测请求,所述随机数预测请求携带有预测数;
所述获取模块,还用于当检测到满足处理条件时,获取所述加密随机数对应的目标密钥;
加密模块,用于采用所述目标密钥对所述区块链中存储的所述加密随机数进行解密得到所述目标随机数;
比对模块,用于将所述预测数与所述目标随机数进行比对;
确定模块,用于若比对一致,则将所述第二终端确定为目标终端。
另一方面,本发明实施例提供了一种节点设备,包括处理器、输入接口、输出接口和存储器,所述处理器、输入接口、输出接口和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述基于区块链的数据处理所述的方法。
另一方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述基于区块链的数据处理所述的方法。
本发明实施例中,节点设备从可信服务器中获取加密随机数,并将加密随机数上传至区块链中,节点设备接收第二终端发送的随机数预测请求,当检测到满足处理条件时,获取加密随机数对应的目标密钥,并采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数;节点设备将随机数预测请求中的预测数与目标随机数进行比对,若比对一致,则将第二终端确定为目标终端。通过实施上述方法,可以采用区块链对随机数预测过程进行管控,提升随机数预测过程的透明性以及预测结果的真实性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种区块链的结构示意图;
图1b是本发明实施例提供的一种基于区块链的数据处理系统架构示意图;
图1c是本发明实施例提供的一种基于区块链的数据处理方法的交互流程示意图;
图2是本发明实施例提供的一种基于区块链的数据处理方法的流程示意图;
图3是本发明实施例提供的另一种基于区块链的数据处理方法的流程示意图;
图4是本发明实施例提供的一种基于区块链的数据处理装置的结构示意图;
图5是本发明实施例提供的一种节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
当前,随机数预测已成为人们越来越喜欢的娱乐方式,现有的随机数预测过程中,执行者可以提前将目标随机数进行保密存储,并由参与者输入预测数字进行预测。然而,采用上述方式,由于目标随机数是保密的,参与者无法得知参与过程中预先设置的目标随机数是否被更改,由于参与过程中目标随机数的不透明性,导致最终无法确定目标随机数的真实性,因此,在随机数预测时提升随机数预测过程的透明性,进而提升预测结果的真实性是亟待解决的问题。
基于上述描述,本发明实施例提供一种基于区块链的数据处理方法,该数据处理方法主要基于区块链技术实现,其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用本质上是一个去中心化的数据库,也即是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次的交易信息,用于验证交易信息的有效性和生成下一个区块。区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等。以图1a所示的区块链的结构示意图为例,每当有新的数据需要写入区块链,这些数据会汇总到一个区块(block)中,添加在已有区块链的末端,通过共识算法保证每个节点新添加的区块是完全相同的。每个区块内记录了平台协议数据和/或活动公告数据,同时包含了前一个区块的哈希(hash)值,所有区块就是通过这种方式保存前一个区块中的hash值,按顺序相连,组成了区块链。区块链中下一个区块的区块头中会存储前一个区块的哈希值,当前一个区块中的数据发生变化时,本区块的哈希值也会随之改变,因此通过上传至区块链中的数据难以被篡改,在区块链上进行随机数预测实现了预测过程的公开透明,提高了预测结果的可靠性。
基于图1a描述的区块链结构,本发明实施例提供了一种基于区块链的数据处理系统,请参见图1b,如图1b所示,基于区块链的数据处理系统架构包括第一终端,第二终端、节点设备和区块链,其中,区块链具体可以由多个区块链节点构成,第一终端可以为随机数预测执行者使用的终端,第二终端可以为随机数预测参与者使用的终端,节点设备具体可以作为区块链中的一个节点。第一终端、第二终端、节点设备可以通过网络进行连接。其中,第一终端、第二终端和节点设备可以是客户端或者服务器,本发明实施例不做限定。其中,客户端可以为以下任一种:终端、独立的应用程序、api(applicationprogramminginterface,应用程序编程接口)或者sdk(softwaredevelopmentkit,软件开发工具包)。其中,终端可以包括但不限于:智能手机(如android手机、ios手机等)、平板电脑、便携式个人计算机、移动互联网设备(mobileinternetdevices,简称mid)等设备,本发明实施例不做限定。
基于图1b描述的基于区块链的数据处理系统,本发明实施例提供了一种数据处理系统中各个设备进行交互的方法,如图1c所示,为本发明实施例提供的基于区块链的数据处理方法的交互流程示意图,101、第一终端向节点设备发送随机数获取请求,该随机数获取请求中携带有第一终端的公钥;102、节点设备将随机数获取请求发送至可信服务器;103、可信服务器生成目标随机数并采用目标密钥对目标随机数进行加密,得到加密随机数;104、可信服务器将加密随机数发送至节点设备;105、节点设备将加密随机数上传至区块链中;106、第二终端向节点设备发送随机数预测请求,该随机数预测请求中携带有预测数;107、第一终端向节点设备发送密钥获取请求;108、节点设备将密钥获取请求发送至可信服务器;109、可信服务器采用第一终端的公钥对目标密钥进行加密,得到加密目标密钥,并将加密目标密钥发送至节点设备;110、第一终端向节点设备发送随机数公开请求,该随机数公开请求携带由第一终端的私钥;111、节点设备采用私钥对加密目标密钥进行解密,得到目标密钥,并采用目标密钥对加密随机数进行解密,得到目标随机数,以及比对随机数与预测数,得到比对结果;112、节点设备将比对结果发送至第一终端和第二终端。
上述方式中,在随机数公开前,无论是随机数预测执行者、节点设备或随机数预测参与者都无法得知随机数,保证了随机数的保密性,并且,在预测开始时已经将加密的随机数上传至区块链中,也保证了随机数预测过程的透明性,因此,通过实施上述方法,保证了预测过程的真实有效,提升了随机数预测过程的透明性以及预测结果的真实性。
基于上述描述,本发明实施例提供了一种基于区块链的数据处理方法,请参见图2,该基于区块链的数据处理过程可包括以下步骤s201-s204:
s201、节点设备从可信服务器中获取加密随机数,并将加密随机数上传至区块链中。
本发明实施例中,加密随机数是由可信服务器对目标随机数进行加密得到,节点设备可以为区块链中的任意一个节点,可信服务器具体可以为服务器集群中的任意一个或多个服务器,该服务器集群构成一个可信的执行环境,使得该服务器集群中的每个服务器的执行环境都为可信执行环境,如该服务器集群可以由权威机构认证的安全系数高于预设阈值的服务器集群,节点设备可以基于负载均衡原则从服务器集群中选取一个或多个服务器作为可信服务器,并从可信服务器中获取加密随机数。
具体实现中,节点设备可以接收第一终端发送的随机数获取请求,并响应于第一终端发送的随机数获取请求,将随机数获取请求发送至可信服务器,其中,随机数获取请求中携带有第一终端的公钥。可信服务器接收到随机数获取请求后,会生成随机数以及用于加密该随机数的目标密钥,服务器采用目标密钥对随机数进行加密,得到加密随机数,进一步的,服务器建立接收到的公钥与该目标密钥之间的映射关系,并将目标密钥、公钥以及映射关系进行存储,使得服务器在再次接收到该公钥时可以查找到对应的目标密钥,进一步的,服务器向节点设备返回该生成的加密随机数,节点设备对服务器返回的加密随机数进行接收。需要说明的是,第一终端具体可以为随机数预测执行者使用的终端,当第一终端向节点设备发送随机数获取请求时,则确定随机数预测开始。
进一步的,节点设备接收到服务器发送的加密随机数之后,可以将加密随机数上传至区块链中,其中,节点设备将加密随机数上传至区块链的具体方式可以为,节点设备对加密随机数进行广播,以使得区块链中的节点对加密随机数进行共识校验;若区块链中的节点对加密随机数校验通过,则节点设备将加密随机数打包成第一区块,并将第一区块链接至区块链中。
s202、节点设备接收第二终端发送的随机数预测请求。
本发明实施例中,节点设备将加密随机数上传至区块链中之后,可以接收多个随机数预测参与者使用终端发送的随机数预测请求,每个随机数预测请求携带有预测数,第二终端可以为多个随机数预测参与者中任一个参与者使用的终端。
s203、当检测到满足处理条件时,节点设备获取加密随机数对应的目标密钥,并采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数。
本发明实施例中,节点设备接收第二终端发送的随机数预测请求之后,可以检测当前是否满足处理条件,到若满足,则从可信服务器中获取加密随机密钥。
具体的,处理条件可以包括节点设备接收到的随机数预测请求的数量大于预设数量,其中,预设数量具体可以由第一终端向节点设备发送,例如,随机数预测执行者预先设置可以由100人参与随机数预测活动,并将数字100通过第一终端发送至节点设备,则当节点设备接收到100个随机数预测请求后,将确定当前满足处理条件。或者,处理条件可以包括节点设备接收随机数预测请求的时长大于预设时长,其中,预设时长具体可以由第一终端向节点设备发送,例如,随机数预测执行者预先设置随机数预测活动的活动时长为1小时,并将1小时通过第一终端发送至节点设备,则当节点设备接收预测请求的时长达到1小时候后,将确定当前满足处理条件。或者,节点设备也可以接收第一终端发送的预测结束请求,并在接受到第一终端发送的预测结束请求时,检测区块链中在第一区块之后链接的第二区块的数量是否大于第一预设数量,若第二区块的数量大于第一预设数量,则确定满足处理条件。通过上述方式,可以防止区块链因分叉而影响加密随机数的真实性。
当节点设备确定当前满足处理条件时,可以获取加密随机数对应的目标密钥,具体的,节点设备可以向可信服务器发送密钥获取请求,该密钥获取请求用于获取可信服务器中存储的目标密钥,密钥获取请求中携带了第一终端的公钥。可信服务器接收到密钥获取请求之后,将基于该请求中的公钥以及预先存储的映射关系查询该公钥对应的目标密钥,并采用该第一终端的公钥对目标密钥进行加密,得到加密目标密钥,可信服务器将该加密目标密钥发送至节点设备,节点设备接收可信服务器返回的加密目标密钥,并将加密目标密钥上传至区块链中。具体的,节点设备对加密目标密钥进行广播,以使得区块链中的节点对加密目标密钥进行共识校验;若区块链中的节点对加密目标密钥校验通过,则节点设备将加密目标密钥打包成第三区块,并将第三区块链接至区块链中。进一步的,节点设备获取第一终端的私钥,并采用第一终端的私钥对加密目标密钥进行解密,得到目标密钥。具体实现中,节点设备接收第一终端发送的随机数公开请求,并响应于第一终端发送的随机数公开请求,检测当前是否满足随机数公开条件,其中,随机数公开条件包括在所述第三区块之后链接的第四区块的数量是否大于第二预设数量,若大于,则节点设备确定当满足随机数公开条件,并采用第一终端的私钥对加密目标密钥进行解密,得到目标密钥。然后,节点设备采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数。进一步的,节点设备可以将获取到的目标随机数上传中区块链中,以使得第一终端和第二终端在区块链中访问该目标随机数。
s204、节点设备将预测数与目标随机数进行比对,若比对一致,则将第二终端确定为目标终端。
本发明实施例中,节点设备获取到目标随机数之后,将第二终端发送的随机数预测请求中携带的预测数与目标随机数进行比对,若比对一致,则节点设备将第二终端确定为目标终端。进一步的,节点设备可以将该目标终端的标识信息放入目标集合中,该目标集合中存储了输入正确预测数的终端的标识,正确预测数即该目标随机数,进一步的,节点设备将该目标集合发送至第一终端,以使得第一终端向目标集合中的各个标识对应的终端发送奖励信息,其中,奖励信息具体可以为相应的代币、祝贺词等。
本发明实施例中,节点设备从可信服务器中获取加密随机数,并将加密随机数上传至区块链中,节点设备接收第二终端发送的随机数预测请求,当检测到满足处理条件时,获取加密随机数对应的目标密钥,并采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数;节点设备将随机数预测请求中的预测数与目标随机数进行比对,若比对一致,则将第二终端确定为目标终端。通过实施上述方法,因目标随机数已提前通过加密的方式上传至区块链中,使得参与者在随机数预测过程中无需担心目标随机数被更改,保证了预测过程的真实有效,提升了随机数预测过程的透明性以及预测结果的真实性。
基于上述描述,本发明实施例提供了一种基于区块链的数据处理方法,请参见图3,该基于区块链的数据处理过程可包括以下步骤s301-s309:
s301、节点设备响应于第一终端发送的随机数获取请求,将随机数获取请求发送至可信服务器。
本发明实施例中,第一终端可以向节点设备发送随机数获取请求,其中,随机数获取请求中携带有第一终端的公钥,节点设备对随机数获取请求进行接收,并响应于第一终端发送的随机数获取请求,将随机数获取请求发送至可信服务器,以使得可信服务器根据随机数获取请求生成加密随机数,以及建立用于加密的目标密钥与第一终端的公钥之间的映射关系。
具体实现中,可信服务器具体可以为服务器集群中的任意一个或多个服务器,该服务器集群构成一个可信的执行环境,节点设备从服务器集群中确定可信服务器的具体方式可以为,节点设备获取随机数获取请求对应的任务量以及服务器集群中每个服务器的负载信息,负载信息包括负载量、内存、剩余负载量中的至少一种,负载量即服务器当前正在处理的任务对应的任务量,并根据任务量和每个服务器的负载信息从服务器集群中确定一个或多个服务器作为用于随机数生成的可信服务器。例如,节点设备获取到任务量之后,检测服务器集群中是否存在剩余负载量大于该任务量的服务器,若存在剩余负载量大于该任务量的服务器,则将从剩余负载量大于任务量的服务器中选取负载量最小的服务器作为可信服务器,或者,从剩余负载量大于任务量的服务器中选取内存最大的服务器作为可信服务器,或者,从剩余负载量大于任务量的服务器中选取剩余负载量最大的服务器作为可信服务器,如若不存在剩余负载量大于该任务量的服务器,则对该随机数生成请求进行拆分,并基于负载均衡原则选择多个服务器作为该可信服务器。
s302、节点设备接收可信服务器返回的加密随机数,并将加密随机数与第一终端的公钥建立映射关系后保存。
本发明实施例中,节点设备可以接收可信服务器返回的加密随机数,并将加密随机数与第一终端的公钥建立映射关系后保存,以使得可以通过第一终端的公钥方便的查询到该加密随机数,加密随机数是由可信服务器对目标随机数进行加密得到。
s303、节点设备将加密随机数上传至区块链中。
本发明实施例中,节点设备获取到加密随机数之后,可以对加密随机数进行广播,以使得区块链中的节点对加密随机数进行共识校验;若区块链中的节点对加密随机数校验通过,则节点设备将加密随机数打包成第一区块,并将第一区块链接至区块链中。
s304、节点设备接收第二终端发送的随机数预测请求。
本发明实施例中,节点设备将加密随机数上传至区块链中之后,可以接收第二终端发送的随机数预测请求。
s305、当检测到满足处理条件时,节点设备向可信服务器发送第一终端的公钥,以使得可信服务器基于第一终端的公钥返回加密目标密钥。
本发明实施例中,节点设备接收第二终端发送的随机数预测请求之后,可以检测当前是否满足处理条件,到若满足,则从可信服务器中获取加密随机密钥,其中,节点设备检测当前是否满足处理条件具体实现方式包括,当接收到第一终端发送的预测结束请求时,检测区块链中在第一区块之后链接的第二区块的数量是否大于第一预设数量,若第二区块的数量大于第一预设数量,则确定满足处理条件。通过上述方式,可以防止区块链因分叉而影响加密随机数的真实性。若满足,则节点设备向可信服务器发送第一终端的公钥,以使得可信服务器基于第一终端的公钥返回加密目标密钥。具体的,可信服务器基于接收到的公钥以及预先存储的映射关系查询该公钥对应的目标密钥,并采用该第一终端的公钥对目标密钥进行加密,得到加密目标密钥,可信服务器将该加密目标密钥发送至节点设备。
s306、节点设备接收可信服务器返回的加密目标密钥,并将加密目标密钥上传至区块链中。
本发明实施例中,节点设备接收到可信服务器返回的加密目标密钥之后,可以对加密目标密钥进行广播,以使得区块链中的节点对加密目标密钥进行共识校验;若区块链中的节点对加密目标密钥校验通过,则节点设备将加密目标密钥打包成第三区块,并将第三区块链接至区块链中,即将加密目标密钥在区块链中以第三区块的形式进行存储。
s307、节点设备获取第一终端的私钥,并采用第一终端的私钥对加密目标密钥进行解密,得到所述目标密钥。
本发明实施例中,节点设备将加密目标密钥上传至区块链中之后,可以接收第一终端发送的随机数公开请求,该随机数公开请求携带了第一终端的私钥,节点设备响应于第一终端发送的随机数公开请求,检测当前是否满足随机数公开条件,若满足,则节点设备采用第一终端的私钥对加密目标密钥进行解密,得到目标密钥。其中,随机数公开条件包括在第三区块之后链接的第四区块的数量大于第二预设数量。
s308、节点设备采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数。
本发明实施例中,节点设备获取到目标密钥之后,可以采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数。进一步的,节点设备可以将获取到的目标随机数上传中区块链中,以使得第一终端和第二终端在区块链中访问该目标随机数。
s309、节点设备将预测数与所述目标随机数进行比对,若比对一致,则将第二终端确定为目标终端。
本发明实施例中,节点设备获取到目标随机数之后,将第二终端发送的随机数预测请求中携带的预测数与目标随机数进行比对,若比对一致,则节点设备将第二终端确定为目标终端,其中,目标终端即为预测成功的终端。
本发明实施例中,节点设备从可信服务器中获取加密随机数,并将加密随机数上传至区块链中,节点设备接收第二终端发送的随机数预测请求,当检测到满足处理条件时,获取加密随机数对应的目标密钥,并采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数;节点设备将随机数预测请求中的预测数与目标随机数进行比对,若比对一致,则将第二终端确定为目标终端。上述方式中,在随机数公开前,无论是随机数预测执行者、节点设备或随机数预测参与者都无法得知随机数,保证了随机数的保密性,并且,在预测开始时已经将加密的随机数上传至区块链中,也保证了随机数预测过程的透明性,因此,通过实施上述方法,保证了预测过程的真实有效,提升了随机数预测过程的透明性以及预测结果的真实性。
在一种实施场景中,第一终端具体为随机数预测执行者使用的终端,第二终端具体随机数预测参与者使用的终端,随机数预测执行者确定预测活动开始后,通过第一终端向节点设备发送随机数获取请求,该请求中携带有第一终端的公钥,节点设备将随机数获取请求发送至可信服务器,可信服务器生成目标随机数并采用目标密钥对目标随机数进行加密,得到加密随机数,并将加密随机数发送至节点设备,节点设备将加密随机数上传至区块链中,然后,节点设备可以接收随机数预测参与者通过第二终端发送的预测数。随机数预测执行者确定预测活动结束时,可以向节点设备发送密钥获取请求,节点设备可以将该密钥获取请求发送至可信服务器,可信服务器采用第一终端的公钥对目标密钥进行加密,得到加密目标密钥,并将加密的目标密钥发送至节点设备。随机数预测执行者确定公布预测结果时,通过第一终端向节点设备发送随机数公开请求,该随机数公开请求携带由第一终端的私钥,以使得节点设备根据私钥解密目标加密密钥得到目标密钥,并通过目标密钥解密加密随机数,得到目标随机数,进而校验预测数与随机数是否相同,若相同,则确定预测成功。上述方式中,在随机数公开前,无论是随机数预测执行者、节点设备或随机数预测参与者都无法得知随机数,保证了随机数的保密性,并且,在预测开始时已经将加密的随机数上传至区块链中,也保证了随机数预测过程的透明性,因此,通过实施上述方法,保证了预测过程的真实有效,提升了随机数预测过程的透明性以及预测结果的真实性。
基于上述基于区块链的数据处理方法实施例的描述,本发明实施例还公开了一种基于区块链的数据处理装置,该基于区块链的数据处理装置可以是运行于节点设备中的一个计算机程序(包括程序代码),也可以是包含在节点设备中的一个实体装置。该基于区块链的数据处理装置可以执行图2-图3所示的方法。请参见图4,该基于区块链的数据处理装置40包括:获取模块401、上传模块402、接收模块403、加密模块404、比对模块405,确定模块406。
获取模块401,用于从可信服务器中获取加密随机数;
上传模块402,用于将所述加密随机数上传至区块链中,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
接收模块403,用于接收第二终端发送的随机数预测请求,所述随机数预测请求携带有预测数;
所述获取模块401,还用于当检测到满足处理条件时,获取所述加密随机数对应的目标密钥;
加密模块404,用于采用所述目标密钥对所述区块链中存储的所述加密随机数进行解密得到所述目标随机数;
比对模块405,用于将所述预测数与所述目标随机数进行比对;
确定模块406,用于若比对一致,则将所述第二终端确定为目标终端。
在一种实现方式中,所述获取模块401,具体用于:
响应于第一终端发送的随机数获取请求,所述随机数获取请求携带有所述第一终端的公钥;
将所述随机数获取请求发送至可信服务器,以使得所述可信服务器根据所述随机数获取请求生成加密随机数,以及建立用于加密的目标密钥与所述第一终端的公钥之间的映射关系,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
接收所述可信服务器返回的加密随机数,并将所述加密随机数与所述第一终端的公钥建立映射关系后保存。
在一种实现方式中,所述获取模块401,具体用于:
当检测到满足处理条件时,向所述可信服务器发送所述第一终端的公钥,以使得所述可信服务器基于所述第一终端的公钥返回加密目标密钥,所述加密目标密钥为所述可信服务器采用所述第一终端的公钥对所述目标密钥加密得到;
接收所述可信服务器返回的加密目标密钥,并将所述加密目标密钥上传至区块链中;
获取所述第一终端的私钥,并采用所述第一终端的私钥对所述加密目标密钥进行解密,得到所述目标密钥。
在一种实现方式中,所述上传模块402,具体用于:
对所述加密随机数进行广播,以使得所述区块链中的节点对所述加密随机数进行共识校验;
若所述区块链中的节点对所述加密随机数校验通过,则将所述加密随机数打包成第一区块,并将所述第一区块链接至所述区块链中。
在一种实现方式中,所述确定模块406,具体用于:
当接收到所述第一终端发送的预测结束请求时,检测所述区块链中在所述第一区块之后链接的第二区块的数量是否大于第一预设数量;
若所述第二区块的数量大于所述第一预设数量,则确定满足处理条件。
在一种实现方式中,所述加密目标密钥在区块链中以第三区块的形式进行存储,所述获取模块401,具体用于:
响应于所述第一终端发送的随机数公开请求,检测当前是否满足随机数公开条件,所述随机数公开请求携带所述第一终端的私钥,所述随机数公开条件包括在所述第三区块之后链接的第四区块的数量大于第二预设数量;
若满足,则采用所述第一终端的私钥对所述加密目标密钥进行解密,得到所述目标密钥。
在一种实现方式中,所述获取模块401,具体用于:
获取所述随机数获取请求对应的任务量以及服务器集群中每个服务器的负载信息,所述服务器集群中包括至少一个服务器,所述服务器集群中每个服务器的执行环境为可信执行环境,所述负载信息包括负载量、内存和剩余负载量中的至少一种;
根据所述任务量和每个所述服务器的负载信息从所述服务器集群中确定一个或多个服务器作为用于随机数生成的可信服务器;
将所述随机数获取请求发送至所述用于随机数生成的可信服务器。
本发明实施例中,获取模块401从可信服务器中获取加密随机数,上传模块402将加密随机数上传至区块链中,接收模块403接收第二终端发送的随机数预测请求,当检测到满足处理条件时,获取模块401获取加密随机数对应的目标密钥,加密模块404采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数;比对模块405将随机数预测请求中的预测数与目标随机数进行比对,若比对一致,则确定模块406将第二终端确定为目标终端。通过实施上述方法,可以采用区块链对随机数预测过程进行管控,提升随机数预测过程的透明性以及预测结果的真实性。
请参见图5,为本发明实施例提供的一种节点设备的结构示意图。如图5所示,该节点设备包括:至少一个处理器501,输入节点设备503,输出节点设备504,存储器505,至少一个通信总线502。其中,通信总线502用于实现这些组件之间的连接通信。其中,存储器505可以是高速ram存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器505可选的还可以是至少一个位于远离前述处理器501的存储装置。其中处理器501可以结合图4所描述的装置,存储器505中存储一组程序代码,且处理器501,输入节点设备503,输出节点设备504调用存储器505中存储的程序代码。用于执行以下操作:
处理器501,用于从可信服务器中获取加密随机数;
处理器501,用于将所述加密随机数上传至区块链中,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
处理器501,用于接收第二终端发送的随机数预测请求,所述随机数预测请求携带有预测数;
处理器501,还用于当检测到满足处理条件时,获取所述加密随机数对应的目标密钥;
处理器501,用于采用所述目标密钥对所述区块链中存储的所述加密随机数进行解密得到所述目标随机数;
处理器501,用于将所述预测数与所述目标随机数进行比对;
处理器501,用于若比对一致,则将所述第二终端确定为目标终端。
在一种实现方式中,处理器501,具体用于:
响应于第一终端发送的随机数获取请求,所述随机数获取请求携带有所述第一终端的公钥;
将所述随机数获取请求发送至可信服务器,以使得所述可信服务器根据所述随机数获取请求生成加密随机数,以及建立用于加密的目标密钥与所述第一终端的公钥之间的映射关系,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
接收所述可信服务器返回的加密随机数,并将所述加密随机数与所述第一终端的公钥建立映射关系后保存。
在一种实现方式中,处理器501,具体用于:
当检测到满足处理条件时,向所述可信服务器发送所述第一终端的公钥,以使得所述可信服务器基于所述第一终端的公钥返回加密目标密钥,所述加密目标密钥为所述可信服务器采用所述第一终端的公钥对所述目标密钥加密得到;
接收所述可信服务器返回的加密目标密钥,并将所述加密目标密钥上传至区块链中;
获取所述第一终端的私钥,并采用所述第一终端的私钥对所述加密目标密钥进行解密,得到所述目标密钥。
在一种实现方式中,处理器501,具体用于:
对所述加密随机数进行广播,以使得所述区块链中的节点对所述加密随机数进行共识校验;
若所述区块链中的节点对所述加密随机数校验通过,则将所述加密随机数打包成第一区块,并将所述第一区块链接至所述区块链中。
在一种实现方式中,处理器501,具体用于:
当接收到所述第一终端发送的预测结束请求时,检测所述区块链中在所述第一区块之后链接的第二区块的数量是否大于第一预设数量;
若所述第二区块的数量大于所述第一预设数量,则确定满足处理条件。
在一种实现方式中,所述加密目标密钥在区块链中以第三区块的形式进行存储,处理器501,具体用于:
响应于所述第一终端发送的随机数公开请求,检测当前是否满足随机数公开条件,所述随机数公开请求携带所述第一终端的私钥,所述随机数公开条件包括在所述第三区块之后链接的第四区块的数量大于第二预设数量;
若满足,则采用所述第一终端的私钥对所述加密目标密钥进行解密,得到所述目标密钥。
在一种实现方式中,处理器501,具体用于:
获取所述随机数获取请求对应的任务量以及服务器集群中每个服务器的负载信息,所述服务器集群中包括至少一个服务器,所述服务器集群中每个服务器的执行环境为可信执行环境,所述负载信息包括负载量、内存和剩余负载量中的至少一种;
根据所述任务量和每个所述服务器的负载信息从所述服务器集群中确定一个或多个服务器作为用于随机数生成的可信服务器;
将所述随机数获取请求发送至所述用于随机数生成的可信服务器。
本发明实施例中,处理器501从可信服务器中获取加密随机数,处理器501将加密随机数上传至区块链中,处理器501接收第二终端发送的随机数预测请求,当检测到满足处理条件时,处理器501获取加密随机数对应的目标密钥,处理器501采用目标密钥对区块链中存储的加密随机数进行解密得到目标随机数;处理器501将随机数预测请求中的预测数与目标随机数进行比对,若比对一致,则处理器501将第二终端确定为目标终端。通过实施上述方法,可以采用区块链对随机数预测过程进行管控,提升随机数预测过程的透明性以及预测结果的真实性。
本发明实施例中所述模块,可以通过通用集成电路,例如cpu(centralprocessingunit,中央处理器),或通过asic(applicationspecificintegratedcircuit,专用集成电路)来实现。
应当理解,在本发明实施例中,所称处理器501可以是中央处理模块(centralprocessingunit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
总线502可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部节点设备互联(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等,该总线502可以分为地址总线、数据总线、控制总线等,为便于表示,图5仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的计算机可读存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
1.一种基于区块链的数据处理方法,其特征在于,所述方法包括:
从可信服务器中获取加密随机数,并将所述加密随机数上传至区块链中,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
接收第二终端发送的随机数预测请求,所述随机数预测请求携带有预测数;
当检测到满足处理条件时,获取所述加密随机数对应的目标密钥,并采用所述目标密钥对所述区块链中存储的所述加密随机数进行解密得到所述目标随机数;
将所述预测数与所述目标随机数进行比对,若比对一致,则将所述第二终端确定为目标终端。
2.根据权利要求1所述的方法,其特征在于,所述从可信服务器中获取加密随机数,包括:
响应于第一终端发送的随机数获取请求,所述随机数获取请求携带有所述第一终端的公钥;
将所述随机数获取请求发送至可信服务器,以使得所述可信服务器根据所述随机数获取请求生成加密随机数,以及建立用于加密的目标密钥与所述第一终端的公钥之间的映射关系,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
接收所述可信服务器返回的加密随机数,并将所述加密随机数与所述第一终端的公钥建立映射关系后保存。
3.根据权利要求2所述的方法,其特征在于,所述当检测到满足处理条件时,获取所述加密随机数对应的目标密钥,包括:
当检测到满足处理条件时,向所述可信服务器发送所述第一终端的公钥,以使得所述可信服务器基于所述第一终端的公钥返回加密目标密钥,所述加密目标密钥为所述可信服务器采用所述第一终端的公钥对所述目标密钥加密得到;
接收所述可信服务器返回的加密目标密钥,并将所述加密目标密钥上传至区块链中;
获取所述第一终端的私钥,并采用所述第一终端的私钥对所述加密目标密钥进行解密,得到所述目标密钥。
4.根据权利要求1所述的方法,其特征在于,所述将所述加密随机数上传至区块链中,包括
对所述加密随机数进行广播,以使得所述区块链中的节点对所述加密随机数进行共识校验;
若所述区块链中的节点对所述加密随机数校验通过,则将所述加密随机数打包成第一区块,并将所述第一区块链接至所述区块链中。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当接收到所述第一终端发送的预测结束请求时,检测所述区块链中在所述第一区块之后链接的第二区块的数量是否大于第一预设数量;
若所述第二区块的数量大于所述第一预设数量,则确定满足处理条件。
6.根据权利要求3所述的方法,其特征在于,所述加密目标密钥在区块链中以第三区块的形式进行存储,所述获取所述第一终端的私钥,并采用所述第一终端的私钥对所述加密目标密钥进行解密,得到所述目标密钥,包括:
响应于所述第一终端发送的随机数公开请求,检测当前是否满足随机数公开条件,所述随机数公开请求携带所述第一终端的私钥,所述随机数公开条件包括在所述第三区块之后链接的第四区块的数量大于第二预设数量;
若满足,则采用所述第一终端的私钥对所述加密目标密钥进行解密,得到所述目标密钥。
7.根据权利要求2所述的方法,其特征在于,所述将所述随机数获取请求发送至可信服务器,包括:
获取所述随机数获取请求对应的任务量以及服务器集群中每个服务器的负载信息,所述服务器集群中包括至少一个服务器,所述服务器集群中每个服务器的执行环境为可信执行环境,所述负载信息包括负载量、内存和剩余负载量中的至少一种;
根据所述任务量和每个所述服务器的负载信息从所述服务器集群中确定一个或多个服务器作为用于随机数生成的可信服务器;
将所述随机数获取请求发送至所述用于随机数生成的可信服务器。
8.一种基于区块链的数据处理装置,其特征在于,所述装置包括:
获取模块,用于从可信服务器中获取加密随机数;
上传模块,用于将所述加密随机数上传至区块链中,所述加密随机数是由所述可信服务器对目标随机数进行加密得到;
接收模块,用于接收第二终端发送的随机数预测请求,所述随机数预测请求携带有预测数;
所述获取模块,还用于当检测到满足处理条件时,获取所述加密随机数对应的目标密钥;
加密模块,用于采用所述目标密钥对所述区块链中存储的所述加密随机数进行解密得到所述目标随机数;
比对模块,用于将所述预测数与所述目标随机数进行比对;
确定模块,用于若比对一致,则将所述第二终端确定为目标终端。
9.一种节点设备,其特征在于,包括处理器、输入接口、输出接口和存储器,所述处理器、输入接口、输出接口和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行如权利要求1-7任一项所述的方法。
技术总结