CN111523890A - 基于区块链的数据处理方法、装置、存储介质及设备 - Google Patents
基于区块链的数据处理方法、装置、存储介质及设备 Download PDFInfo
- Publication number
- CN111523890A CN111523890A CN202010326630.3A CN202010326630A CN111523890A CN 111523890 A CN111523890 A CN 111523890A CN 202010326630 A CN202010326630 A CN 202010326630A CN 111523890 A CN111523890 A CN 111523890A
- Authority
- CN
- China
- Prior art keywords
- consensus
- node
- node equipment
- random number
- node device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
Abstract
本申请实施例公开了一种基于区块链的数据处理方法、装置、存储介质及设备,其中,该方法,可包括:响应于对交易数据的共识请求,获取所述区块链网络的待选节点设备集合中的待选节点设备的属性信息,所述待选节点设备集合包括所述目标待选节点设备;生成所述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;根据所述属性信息以及所述共识随机数,从所述待选节点设备集合中识别用于对所述交易数据进行共识处理的待选节点设备,作为共识节点设备;若所述目标待选节点设备被识别为共识节点设备,则对所述交易数据进行共识处理。通过本申请实例可避免共识节点设备被恶意攻击,提高区块链的安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的数据处理方法、装置、存储介质及设备。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了多条交易数据,用于验证其交易数据的有效性(防伪)和生成下一个区块。其中,参与验证交易数据的有效性的设备可以称为共识节点设备,目前主要是通过人工设置的方式提前预设设置每一轮参与共识处理的共识节点设备;例如,第一轮的共识节点设备为节点设备1~节点设备20,第二轮的共识节点设备为节点设备10~节点设备30,第三轮的共识节点设备为节点设备20~节点设备30,以此类推。实践中发现,这种共识节点设备设置方式容易导致共识节点被恶意攻击,使区块链的安全性比较低。
发明内容
本申请实施例所要解决的技术问题在于,提供一种基于区块链的数据处理方法、装置、存储介质及设备,避免共识节点设备被恶意攻击,提高区块链的安全性。
本申请实施例一方面提供一种基于区块链的数据处理方法,包括:
响应于对交易数据的共识请求,获取上述区块链网络的待选节点设备集合中的待选节点设备的属性信息,上述待选节点设备集合包括上述目标待选节点设备;
生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;
根据该属性信息以及该共识随机数,从该待选节点设备集合中识别用于对该交易数据进行共识处理的待选节点设备,作为共识节点设备;
若该目标待选节点设备被识别为共识节点设备,则对该交易数据进行共识处理。
可选的,上述根据上述属性信息以及上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备的步骤可包括:
若上述目标待选节点设备被识别为共识节点设备,则对上述交易数据进行共识处理。
根据上述属性信息确定上述待选节点设备集合中的待选节点设备参与共识处理的共识权重;
根据上述共识权重和上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备。
可选的,上述属性信息包括共识处理性能;上述根据上述属性信息确定上述待选节点设备集合中的待选节点设备参与共识处理的共识权重,可包括:
根据上述共识处理性能确定上述待选节点设备集合中的待选节点设备的重要性优先级;
采用上述重要性优先级生成上述待选节点设备集合中的待选节点设备参与共识处理的共识权重,上述重要性优先级与上述共识权重具有正相关关系。
可选的,上述生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数,包括:
获取上述待选节点设备集合中的待选节点设备所生成的待选随机数;
将上述待选随机数记录到上述区块链网络的目标区块中;
根据上述目标区块的区块信息,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
可选的,上述目标区块的区块信息包括哈希值,上述哈希值是根据上述目标区块的区块体中的数据生成的;上述根据上述目标区块的区块信息,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数,可包括:
获取上述待选节点设备集合中的待选节点设备的设备标识;
对上述设备标识与上述哈希值进行合并处理,得到合并处理后的数据;
采用上述合并处理后的数据,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
可选的,上述将上述待选随机数记录到上述区块链网络的目标区块中,可包括:
获取上述待选节点设备集合中待选节点设备所生成的待选随机数对应的特征信息;
根据上述特征信息验证上述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性;
将上述待选节点设备集合中的待选节点设备所生成的待选随机数中具有有效性的待选随机数,记录到上述目标区块中。
可选的,上述特征信息包括待选随机数的生成时间,上述根据上述特征信息验证上述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性,可包括:
获取上述目标待选节点设备的系统时间;
获取上述待选节点设备集合中的待选节点设备所生成的待选随机数分别与上述系统时间之间差值;
确定上述待选节点设备集合的待选节点设备所生成的待选随机数中对应的差值,小于时间阈值的待选随机数具有有效性。
可选的,上述特征信息包括待选随机数的标识,上述根据上述特征信息验证上述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性,可包括:
获取待选随机数的参考标识;
确定上述待选节点设备集合的待选节点设备所生成的待选随机数中标识,与上述参考标识匹配的待选随机数具有有效性。
可选的,上述根据上述共识权重和上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备,可包括:
获取上述共识随机数的N次方,得到第一数值;N与上述共识权重相等,N为大于或等于1的正整数;
将上述第一数值的倒数,作为上述待选节点设备集合中的待选节点设备的共识积分;
根据上述共识积分,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备。
可选的,上述根据上述共识积分,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备,可包括:
按照由大到小的顺序对上述待选节点设备集合中的待选节点设备的共识积分进行排序;
将上述待选节点设备集合中对应共识积分排序靠前的M个待选节点设备,识别为共识节点设备,M为大于或等于2的正整数。
可选的,上述共识节点设备的数量大于或等于2,上述方法还可包括:
获取各个共识节点设备对上述交易数据进行共识的共识结果;上述共识结果携带签名信息;
采用上述各个共识节点设备的公钥对对应的签名信息进行验签;
获取共识结果为共识通过,且共识结果所携带的签名信息被验签通过的共识节点设备的数量,作为上述目标数量;
若上述目标数量大于数量阈值,则确定上述交易数据被共识通过。
本申请实施例一方面提供一种基于区块链的数据处理装置,包括:
获取模块,用于响应于对交易数据的共识请求,获取上述区块链网络的待选节点设备集合中的待选节点设备的属性信息,上述待选节点设备集合包括上述目标待选节点设备;
生成模块,用于生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;
识别模块,用于根据上述属性信息以及上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备;
处理模块,用于若上述目标待选节点设备被识别为共识节点设备,则对上述交易数据进行共识处理。
可选的,识别模块,具体用于根据上述属性信息确定上述待选节点设备集合中的待选节点设备参与共识处理的共识权重;
根据上述共识权重和上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备。
可选的,上述属性信息包括共识处理性能;可选的,识别模块,具体用于根据上述共识处理性能确定上述待选节点设备集合中的待选节点设备的重要性优先级;采用上述重要性优先级生成上述待选节点设备集合中的待选节点设备参与共识处理的共识权重,上述重要性优先级与上述共识权重具有正相关关系。
可选的,生成模块,具体用于获取上述待选节点设备集合中的待选节点设备所生成的待选随机数;将上述待选随机数记录到上述区块链网络的目标区块中;根据上述目标区块的区块信息,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
可选的,上述目标区块的区块信息包括哈希值,上述哈希值是根据上述目标区块的区块体中的数据生成的;上述根据上述目标区块的区块信息,可选的,生成模块,具体用于获取上述待选节点设备集合中的待选节点设备的设备标识;对上述设备标识与上述哈希值进行合并处理,得到合并处理后的数据;采用上述合并处理后的数据,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
可选的,生成模块,具体用于获取上述待选节点设备集合中待选节点设备所生成的待选随机数对应的特征信息;根据上述特征信息验证上述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性;将上述待选节点设备集合中的待选节点设备所生成的待选随机数中具有有效性的待选随机数,记录到上述目标区块中。
可选的,上述特征信息包括待选随机数的生成时间,生成模块,具体用于获取上述目标待选节点设备的系统时间;获取上述待选节点设备集合中的待选节点设备所生成的待选随机数分别与上述系统时间之间差值;确定上述待选节点设备集合的待选节点设备所生成的待选随机数中对应的差值,小于时间阈值的待选随机数具有有效性。
可选的,上述特征信息包括待选随机数的标识,生成模块,具体用于获取待选随机数的参考标识;确定上述待选节点设备集合的待选节点设备所生成的待选随机数中标识,与上述参考标识匹配的待选随机数具有有效性。
可选的,识别模块,具体用于获取上述共识随机数的N次方,得到第一数值;N与上述共识权重相等,N为大于或等于1的正整数;将上述第一数值的倒数,作为上述待选节点设备集合中的待选节点设备的共识积分;根据上述共识积分,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备。
可选的,识别模块,具体用于按照由大到小的顺序对上述待选节点设备集合中的待选节点设备的共识积分进行排序;将上述待选节点设备集合中对应共识积分排序靠前的M个待选节点设备,识别为共识节点设备,M为大于或等于2的正整数。
可选的,获取模块,还用于获取各个共识节点设备对上述交易数据进行共识的共识结果;上述共识结果携带签名信息;
该装置还包括:
验证模块,用于采用上述各个共识节点设备的公钥对对应的签名信息进行验签;
可选的,获取模块,还用于获取共识结果为共识通过,且共识结果所携带的签名信息被验签通过的共识节点设备的数量,作为上述目标数量;
可选的,确定模块,用于若上述目标数量大于数量阈值,则确定上述交易数据被共识通过。
本申请一方面提供了一种计算机设备,包括:处理器、存储器、网络接口;
上述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能,上述存储器用于存储计算机程序,上述处理器用于调用上述计算机程序,以执行如下步骤:
响应于对交易数据的共识请求,获取上述区块链网络的待选节点设备集合中的待选节点设备的属性信息,上述待选节点设备集合包括上述目标待选节点设备;
生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;
根据上述属性信息以及上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备;
若上述目标待选节点设备被识别为共识节点设备,则对上述交易数据进行共识处理。
本申请实施例一方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序包括程序指令,上述程序指令当被处理器执行时,以执行如下步骤:
响应于对交易数据的共识请求,获取上述区块链网络的待选节点设备集合中的待选节点设备的属性信息,上述待选节点设备集合包括上述目标待选节点设备;
生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;
根据上述属性信息以及上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备;
若上述目标待选节点设备被识别为共识节点设备,则对上述交易数据进行共识处理。
本申请中,目标待选节点设备接收到对交易数据的共识请求时,可以获取待选节点设备集合中待选节点设备的属性信息,生成待选节点设备集合中的待选节点设备参与共识处理的共识随机数;通过根据该共识随机数以及该属性信息,从待选节点设备集合中识别用于对交易数据进行共识处理的待选节点设备,作为共识节点设备;如果目标待选节点设备被识别为共识节点设备,可对该交易数据进行共识处理。由于共识随机数具有随机特性,即共识随机数不可被提前预知,同时,待选节点设备的属性信息(如存储空间、共识效率)在一定程度上也是随时间变化而变化;因此,识别出的共识节点设备具有一定的随机性,即参与本轮共识处理的共识节点设备难以被提前预知,可有效避免共识节点设备被恶意攻击,提高区块链的安全性以及共识处理的公平性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种区块链网络的系统架构图;
图2a是本申请实施例提供的一种基于区块链的数据处理方法的应用场景示意图;
图2b是本申请实施例提供的一种基于区块链的数据处理方法的应用场景示意图;
图3是本申请实施例提供的一种基于区块链的数据处理方法的流程示意图;
图4是本申请实施例提供的一种生成共识随机数的应用场景示意图;
图5是本申请实施例提供的一种生成共识随机数的应用场景示意图;
图6a是本申请实施例提供的一种识别共识节点设备的应用场景示意图;
图6b是本申请实施例提供的一种识别共识节点设备的应用场景示意图;
图7是本申请实施例提供的一种识别共识节点设备的应用场景示意图;
图8是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
基于目前的共识节点设备设置方式容易导致共识节点被恶意攻击,使区块链的安全性比较低的问题。本申请实施例提供一种基于区块链的数据处理方法,通过根据待选节点设备的属性信息以及待选节点设备的参与共识处理的共识随机数,来识别共识节点设备;由于共识随机数具有随机特性,即共识随机数不可被提前预知,同时,待选节点设备的属性信息(如存储空间、共识效率)在一定程度上也是随时间变化而变化;因此,识别出的共识节点设备具有一定的随机性,即参与本轮共识处理的共识节点设备难以被提前预知,可有效避免共识节点设备被恶意攻击,提高区块链的安全性以及共识处理的公平性。上述区块链是一种分布式数据存储、点对点传输(P2P传输)、共识机制、加密算法等计算机技术的新型应用模式,其本质上是一个去中心化、高度透明的数据库;区块链可由多个借由密码学串接并保护内容的串连交易记录(又称区块)构成,用区块链所串接的分布式账本能让多方有效纪录交易,且可永久查验此交易(不可篡改)。其中,共识机制是指区块链网络中实现不同节点之间建立信任、获取权益的数学算法;也就是说,共识机制是区块链各网络节点共同认可的一种数学算法。
上述基于区块链的数据处理方法可应用于如图1所示的区块链网络的系统架构中,该系统架构包括区块链网络10,该区块链网络10可以是由多个待选节点设备共同组成的一个端到端的去中心化网络,图1中示意性地列出待选节点设备101、待选节点设备102、……、待选节点设备150。每个待选节点设备在进行正常工作时可以接收到交易数据,并基于接收到的交易数据维护区块链。为了保证区块链网络内的信息互通,区块链网络中的每个待选节点设备之间可以存在通信连接,待选节点设备之间可以通过上述通信连接进行数据传输。例如,当区块链网络中的任意待选节点设备接收到交易数据时,共识节点设备对交易数据进行验证,验证通过时,将该交易数据作为区块链中的数据进行存储,使得区块链网络中全部待选节点设备上存储的数据均一致。
本申请中,待选节点设备可以是指区块链网络中未被识别为共识节点设备的节点设备,共识节点设备是指被识别用于对交易数据进行共识处理的待选节点设备,此处共识可以是指对交易数据的有效性进行验证。其中,共识节点设备是动态变化的,例如,在上一轮交易数据验证过程中,待选节点设备101被识别为共识节点设备,但是,在下一轮交易数据验证过程中,该待选节点设备101可能不会被识别为共识节点设备。上述待选节点设备可以是计算机设备,具体可以是一台独立的服务器、或由若干台服务器组成的服务器集群、或云计算中心、平板电脑、笔记本电脑、掌上电脑、智能音响、移动互联网设备(MID,mobileinternet device)等等。
表1:
待选节点名称 | 设备标识 |
待选节点设备101 | 101 |
待选节点设备102 | 102 |
… | … |
待选节点设备150 | 150 |
其中,对于区块链网络中的每个待选节点设备,均具有与其对应的设备标识,而且区块链网络中的每个待选节点设备均可以存储有区块链网络中其他待选节点设备的设备标识,以便后续根据其他待选节点设备的设备标识,将生成的区块广播至区块链网络中的其他待选节点设备;将待节点设备名称和设备标识对应存储至该设备标识列表中。其中,设备标识可包括IP(Internet Protocol,网络之间互联的协议)地址、设备序号(编号)、公钥以及其他任一种能够用于标识该待节点设备的信息,表1中仅以设备序号为例进行说明。根据表1可知,待选节点设备101、待选节点设备102、……、待选节点设备X对应的设备序号分别为101、102、……、X。
请一并参考图2a,当区块链网络中的待选节点设备接收到待共识的交易数据时,目标待选节点设备获取区块链网络中的待选节点设备的属性信息,此处属性信息可包括待选节点设备的共识处理性能、接入至区块链网络中的时间等等,共识处理性能包括待选节点设备的系统稳定性、存储空间大小、共识处理效率、共识处理的准确度等等;目标待选节点设备可以为区块链网络中的任一待选节点设备。进一步,目标待选节点设备可以生成区块链网络中的待选节点设备参与共识处理的共识随机数,区块链网络中每个待选节点设备的共识随机数可以相同,也可以不相同,共识随机数可以是指与待选节点设备关联的一个随机数。目标待选节点设备获取到区块链网络中的待选节点设备的属性信息和共识随机数后,可以根据该属性信息和共识随机数从区块链网络中,识别用于对交易数据进行共识处理的待选节点设备,作为共识节点设备。此处共识节点设备的数量是预先设置的固定值,如4、8、10个等,或者共识节点设备的数量可以是根据区块链网络中的待选节点设备的数量确定的。如图2a所示,以识别出4个共识节点设备为例,共识节点设备可以包括待选节点设备101、待选节点设备103、待选节点设备110、待选节点设备125。在获取到共识节点设备后,各个共识节点设备可以对该交易数据进行共识,即各个共识节点设备对该交易数据进行验证,如图2b所示。若该交易数据验证通过,则各个共识节点设备将该交易数据上传至区块链网络中;如图2b中以将交易数据记录到区块链网络的区块10001,区块10001包括区块头和区块体,区块头中包括10000H、10001H、10001T等等,其中,10000H代表区块链中区块10000的区块头哈希值,10001H表示根据区块10001的交易数据所生成的哈希值,10001T代表区块10001的区块生成时间戳。区块体中包括上述交易数据,还可以包括其他交易数据。由于共识随机数具有随机特性,即共识随机数不可被提前预知,同时,待选节点设备的属性信息(如存储空间、共识效率)在一定程度上也是随时间变化而变化;因此,识别出的共识节点设备具有一定的随机性,即参与本轮共识处理的共识节点设备难以被提前预知,可有效避免共识节点设备被恶意攻击,提高区块链的安全性以及共识处理的公平性。
基于上述描述,本申请实施例提出的基于区块链的数据处理方法可参见图3该方法由图1中区块链网络中的目标待选节点设备来执行;目标待选节点设备可以为待选节点子网络中的任一待选节点设备,目标待选节点设备可以是指计算机设备,如图3所示,该方法包括步骤S101-S104。
S101、响应于对交易数据的共识请求,获取区块链网络的待选节点设备集合中的待选节点设备的属性信息,该待选节点设备集合包括该目标待选节点设备。
目标待选节点设备可接收到交易数据,可以生成对该交易数据的共识请求,获取待选节点设备集合中待选节点设备的属性信息,向待选节点设备集合中的剩余待选节点设备广播该共识请求。该共识请求用于指示剩余待选节点设备识别共识节点设备,通过共识节点设备对该交易数据进行共识;该剩余待选节点设备可以是指待选节点设备集合中除目标待选节点设备以外的待选节点设备,待选节点设备集合可以包括上述图1中区块链网络中的待选节点设备,待选节点设备集合中的待选节点设备的数量可以大于或等于3。此处属性信息可包括待选节点设备的共识处理性能、接入至区块链网络中的时间等等,共识处理性能包括待选节点设备的系统稳定性、存储空间大小、共识处理效率、共识处理的准确度等等。交易数据可以是指待上链的数据,如电子凭证数据(发票、身份凭证换手机)、用户身份信息、物品或服务交易数据;或者,交易数据可以是指待执行任务对应的数据,待执行任务可以是指转移电子资源、报销电子凭证、更新用户身份信息等等。该交易数据的属性信息可包括但不限于:交易数据生成的时间、交易类型、交易数据所属的机构以及交易数据的发生地等等。
S102、生成该待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
目标待选节点设备可以采用如下三种方式生成待选节点生成该待选节点设备集合中的待选节点设备参与共识处理的共识随机数,共识随机数可以是与待选节点设备关联的随机数。方式一:目标待选节点设备可获取待选节点设备集合中的待选节点设备所生成的待选随机数,作为待选节点设备集合中待选节点设备对应的共识随机数;待选随机数可以是根据待选节点设备集合中的待选节点设备的设备标识、用户输入的口令、硬件特征码等生成的。方式二:目标待选节点设备可获取待选节点设备集合中的待选节点设备所生成的待选随机数,将待选节点设备集合中的待选节点设备所生成的待选随机数,存储与区块链网络中的目标区块中,根据目标区块的区块信息生成共识随机数;区块信息可包括哈希值,区块生成时间戳、区块高度等。方式三,目标节点设备可为待选节点设备集合中的待选节点设备生成待选随机数,将该待选随机数发生给待选节点设备集合中的待选节点设备,由待选节点设备集合中的待选节点设备对该待选随机数进行确认,目标节点设备可确认通过的待选随机数作为待选节点设备集合中的待选节点设备的共识随机数。
S103、根据该属性信息以及该共识随机数,从该待选节点设备集合中识别用于对该交易数据进行共识处理的待选节点设备,作为共识节点设备。
目标待选节点设备可以根据该属性信息以及该共识随机数生成该待选节点设备集合中待选节点设备的共识积分;根据该共识积分从待选节点设备集合中,识别用于对交易数据进行共识处理的待选节点设备,作为共识节点设备。该共识积分用于指示待选节点设备集合中的待选节点设备被识别为共识节点设备的概率,即该共识积分与概率之间具有正相关关系,如果待选节点设备集合中的待选节点设备的共识积分越高,则该待选节点设备被识别为共识节点设备的概率也越高;相反,如果待选节点设备集合中的待选节点设备的共识积分越低,则该待选节点设备被识别为共识节点设备的概率也越低。由于共识随机数具有随机特性,即共识随机数不可被提前预知,同时,待选节点设备的属性信息(如存储空间、共识效率)在一定程度上也是随时间变化而变化;因此,识别出的共识节点设备具有一定的随机性,即参与本轮共识处理的共识节点设备难以被提前预知,可有效避免共识节点设备被恶意攻击,提高区块链的安全性以及共识处理的公平性。
可选的,目标待选节点设备可以根据该属性信息和该共识随机数生成一个随机数,根据该随机数从待选节点设备集合识别用于对交易数据进行共识处理的待选节点设备,作为共识节点设备。例如,将待选节点设备集合中设备序号为该随机数为正数倍的待选节点设备,作为共识节点设备;或者,将待选节点设备集合中设备序号为随机数的公约数的待选节点设备,作为共识节点设备。
S104、若该目标待选节点设备被识别为共识节点设备,则对该交易数据进行共识处理。
若该目标待选节点设备被识别为共识节点设备,则可以对该交易数据进行共识处理,即各个共识节点设备分别验证该交易数据的有效性。其中,验证交易数据的有效性可以是指验证交易数的真实性、完整性、重复性等等;交易数据具有有效性是指交易数据具有真实性和完整性、不具有重复性;交易数据不具有有效性是指交易数据不具有真实性和完整性、具有重复性。验证交易数据的真实性可以验证交易数据的是否是伪造,或被篡改;验证交易数据的完整性可以是指验证交易数据是否缺少信息,验证交易数据的重复性是指验证交易数据是否已经被共识过的交易数据。
例如,该交易数据为电子凭证数据,如发票,如果共识节点设备检测该发票不包括发票编号、开票方的企业信息、收票方信息、开票时间、开票金额等中的至少一种,则可确定该发票不具有完整性;如果共识节点设备检测该发票包括发票编号、开票方的企业信息、收票方信息、开票时间以及开票金额等,则可确定该发票具有完整性。若根据该开票方的企业信息查询到开票企业未注册,或者,发票的编号不满足发票的编号规则等等,则可确定该发票不具有真实性;若根据该开票方的企业信息查询到开票企业已注册,或者,发票的编号满足发票的编号规则等等,则可确定该发票具有真实性。若根据历史共识日志确定发票已经被共识,则确定该发票具有重复性;若根据历史共识日志确定发票未被共识,则确定该发票不具有重复性。若根据历史共识日志确定发票被共识,则确定该发票不具有重复性。各个共识节点设备通过上述方式对交易数据进行共识处理后,可以将共识结果发送至目标待选节点设备;相应地,目标待选节点设备可以接其他共识节点设备的共识结果,根据自身的共识结果和其他共识节点设备的共识结果,确定该交易数据的共识结果。若共识结果为共识通过的共识节点设备的数量大于数量阈值,表明所有共识节点设备的共识结果均为共识通过,或者,大多数共识节点设备的共识结果为共识通过,则确定该交易数据被共识通过;若共识结果为共识通过的共识节点设备的数量小于或等于数量阈值,表明所有共识节点设备的共识结果均为共识未通过,或者,大多数共识节点设备的共识结果为共识未通过,则确定该交易数据被共识通过。共识结果为共识通过是指交易数据具有有效性;共识结果为共识未通过是指交易数据不具有有效性。
进一步,如果该交易数据被共识通过,表明该交易数据具有有效性,目标待选节点设备可以将该交易数据存储至该区块链网络的目标区块中;如果交易数据未被共识通过,表明该交易数据不具有有效性,目标待选节点设备可以删除该交易数据。这样可避免将无效交易数据存储至区块链网络,提高区块链网络中数据的有效性,有利于节省目标待选节点设备的存储空间。
本申请中,目标待选节点设备接收到对交易数据的共识请求时,可以获取待选节点设备集合中待选节点设备的属性信息,生成待选节点设备集合中的待选节点设备参与共识处理的共识随机数;通过根据该共识随机数以及该属性信息,从待选节点设备集合中识别用于对交易数据进行共识处理的待选节点设备,作为共识节点设备;如果目标待选节点设备被识别为共识节点设备,可对该交易数据进行共识处理。由于共识随机数具有随机特性,即共识随机数不可被提前预知,同时,待选节点设备的属性信息(如存储空间、共识效率)在一定程度上也是随时间变化而变化;因此,识别出的共识节点设备具有一定的随机性,即参与本轮共识处理的共识节点设备难以被提前预知,可有效避免共识节点设备被恶意攻击,提高区块链的安全性以及共识处理的公平性。
在一个实施例中,步骤S102可包括如下步骤s11~s13。
s11、获取该待选节点设备集合中的待选节点设备所生成的待选随机数。
s12、将该待选随机数记录到该区块链网络的目标区块中。
s13、根据该目标区块的区块信息,生成该待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
在步骤s11~s13中,目标待选节点设备可以生成共识随机数。具体的,目标待选节点设备可以获取该待选节点设备集合中待选节点设备所生成的待选随机数,该待选随机数可以是由待选节点设备集合中待选节点设备采用随机算法生成的;此处随机数算法可以包括但不限于:可验证随机函数(Verifiable Random Function,VRF)、Commit Reveal(一种在规定时间内多个终端参与产生随机数的算法)和BLS(签名算法)、阈值签名机制(Threshold Signature Scheme)等等。进一步,目标待选节点设备可以将该待选节点设备集合中待选节点设备所生成的待选随机数记录到区块链网络中的目标区块(即同一区块)中,该目标区块可以是指区块链网络中新生成的区块;该目标区块中可以包括待选节点设备集合中待选节点设备所生成的待选随机数,或者,该目标区块中可包括待选节点设备集合中待选节点设备所生成的待选随机数,以及其他不影响识别共识节点设备的公平性的交易数据。目标待选节点设备将待选随机数记录到区块链网络的目标区块后,可以获取该目标区块的区块信息,该目标区块的区块信息可包括目标区块的区块生成时间戳、哈希值、区块高度;根据目标区块的区块信息生成,待选节点设备集合中的待选节点设备参与共识处理的共识随机数。由于未将待选随机数上链至区块链网络之前,难以预知待选随机数可以记录到哪个区块中,因此,难以提前预知用于存储待选随机数的目标区块的区块信息,即根据目标区块的区块信息所生成的共识随机数具有较强的随机特性,即共识随机数难以被提前预知。
可选的,目标待选节点设备可以根据该目标区块的区块信息生成X个随机数,将X个随机数分别作为待选节点设备集合中待选节点设备的共识随机数;如,可以根据目标区块的区块信息生成随机数1,根据随机数1生成随机数2;根据随机数2生成随机数3,以此类推,可生成X个随机数;可将随机数1作为待选节点设备101的共识随机数,随机数2作为待选节点设备102的共识随机数,等等。
可选的,目标待选节点设备可以根据目标区块信息以及待选节点设备集合中待选节点设备的设备标识,分别生成各个待选节点设备的共识随机数。
例如,如图4所示,图4中以目标待选节点设备为区块链网络中的待选节点设备101为例。待选设备集合中的各个待选节点设备待选随机数,如,待选节点设备101生成待随机数1,待选节点设备102生成待选随机数2,……,待选节点设备150生成待选随机数150。待选节点设备101获取各个待选节点设备所生成的待选随机数,将各个待选节点设备所生成的待选随机数写入到区块链网络中的目标区块中,如图4中,该目标区块为区块10000;区块10000包括区块头和区块体,区块头中包括9999H、10000H、10000T等等。其中,9999H代表区块链中区块9999的区块头哈希值,10000H表示根据区块10000的待选随机数所生成的哈希值,10000T代表区块10000的区块生成时间戳。区块头中包括上述待节点设备集合中待选节点设备所生成的待选随机数,还可以包括其他交易数据。进一步,待选节点设备101可以获取区块10000的区块信息,根据区块10000的区块信息生成各个待选节点设备的共识随机数。图4中待选节点设备101、待选节点设备102、……、待选节点设备150的共识随机分别被标记为共识随机数1、共识随机数2、……、共识随机数150。同理,待选节点设备102、……、待选节点设备150均可以根据目标区块的区块信息生成各个待选节点设备的共识随机数,具体实现过程可参见待选节点设备101根据目标区块的区块信息生成各个待选节点设备的共识随机数的实现过程。针对同一待选节点设备,每个待选节点设备所生成的该待选节点设备的共识随机数均保持一致;如,待选节点设备101所生成待选节点设备101的待选随机数,与待选节点设备102所生成待选节点设备101的待选随机数相同。
在此实施例中,步骤s12可包括如下步骤s21~s23。
s21、获取该待选节点设备集合中待选节点设备所生成的待选随机数对应的特征信息。
s22、根据该特征信息验证该待选节点设备集合中的待选节点设备所生成的待选随机数的有效性。
s23、将该待选节点设备集合中的待选节点设备所生成的待选随机数中具有有效性的待选随机数,记录到该目标区块中。
在步骤s21~s23中,目标待选节点设备可以对待选随机进行验证,具体的,目标待选节点设备可以获取该待选节点设备集合中待选节点设备所生成的待选随机数对应的特征信息,该特征信息可包括待选随机数的生成时间、长度、签名信息以及标识中的至少一种或多种,待选随机数的标识可以用于指示待选随机数为一个随机数的标识。然后,待选节点设备可以根据该特征信息验证该待选节点设备集合中的待选节点设备所生成的待选随机数的有效性;如果该待选随机数不具有有效性,表明该待选随机数是并非新生成的,或待选随机数不是由待选节点设备所生成,或待选节点设备被篡改等等;因此,可以拒绝不具有有效性的待选随机数记录到该目标区块中。如果该待选随机数具有有效性,表明该待选随机数是新生成的,或待选随机数是由待选节点设备所生成,或待选节点设备未被篡改等等;因此,可以将有有效性的待选随机数记录到该目标区块中。由于不具有有效性的待选随机数,会影响识别共识节点设备的公平性;因此,通过对待选随机数进行验证,可避免向目标区块中记录不具有有效性的待选随机数,可提高识别共识节点设备的公平性。
可选的,该特征信息可包括待选随机数的长度,长度可以是指待选随机数所占的字节数,步骤s22可包括:目标待选节点设备可以将该待选节点设备集合中的待选节点设备所生成的待选随机数对应的长度,与长度阈值进行比对;确该待选节点设备集合中的待选节点设备所生成的待选随机数中,对应长度大于长度阈值的待选随机数不具有有效性;确该待选节点设备集合中的待选节点设备所生成的待选随机数中,对应长度小于或等于长度阈值的待选随机数不具有有效性。
可选的,上述特征信息可包括待选随机数携带签名信息,步骤s22可包括:获取待选节点设备集合中待选节点设备的公钥,采用该公钥对随机数所携带的签名信息进行验证,如果签名信息被验证通过,则表明待选随机数是由待选节点设备集合中待选节点设备所生成的,且该待选随机数未被篡改;如果签名信息未被验证通过,则表明待选随机数不是由待选节点设备集合中待选节点设备所生成的,或该待选随机数被篡改。因此,可确该待选节点设备集合中的待选节点设备所生成的待选随机数中,对应签名信息未被验证通过的待选随机数不具有有效性;确该待选节点设备集合中的待选节点设备所生成的待选随机数中,对应签名信息被验证通过的待选随机数不具有有效性。可避免非法待选节点设备通过生成待选随机数,或者,篡改待选随机数,来扰乱识别共识节点设备的公平性;即通过对待选随机数所携带的签名信息对待选随机数进行验证,可提高识别共识节点设备的公平性。
可选的,该特征信息包括待选随机数的生成时间,步骤s22可包括如下步骤s31~s33。
s31、获取该目标待选节点设备的系统时间。
s32、获取该待选节点设备集合中的待选节点设备所生成的待选随机数分别与该系统时间之间差值。
s33、确定该待选节点设备集合的待选节点设备所生成的待选随机数中对应的差值,小于时间阈值的待选随机数具有有效性。
在步骤s31~s33中,目标待选节点设备可通过待选随机数的生成时间来验证待选随机数的有效性;具体的,目标待选节点设备可获取该目标待选节点设备的系统时间,该系统时间可以是指所接收到待选随机数的时间;可以获取该待选节点设备集合中的待选节点设备所生成的待选随机数分别与该系统时间之间差值,如果差值越大,表明该待选随机数是提前所生成的,会导致待选随机数的随机性比较差,即存在非待选节点设备提前计算一个会影响识别共识节点设备的公平性待选随机数,且难以确保该待选随机数能够与其他待选随机数写入到同一个区块中;如果差值越小,表明该待选随机数是当前所生成的,待选随机数的随机性比较高,且可确保该待选随机数能够与其他待选随机数写入到同一个区块中。因此,可确定该待选节点设备集合的待选节点设备所生成的待选随机数中对应的差值,小于时间阈值的待选随机数具有有效性;可确定该待选节点设备集合的待选节点设备所生成的待选随机数中对应的差值,大于或等于时间阈值的待选随机数不具有有效性。可避免待选节点设备通过提前生成待选随机数,来扰乱识别共识节点设备的公平性;即通过对待选随机数的生成时间对待选随机数进行验证,可提高识别共识节点设备的公平性。
可选的,该特征信息包括待选随机数的标识,步骤s22可包括如下步骤s41~s42。
s41、获取待选随机数的参考标识;
s42、确定该待选节点设备集合的待选节点设备所生成的待选随机数中标识,与该参考标识匹配的待选随机数具有有效性。
在步骤s41~s42中,目标待选节点设备可根据待选随机数的标识来验证待选随机数的有效性,具体的,目标待选节点设备可获取待选随机数的参考标识,即参考标识可以是指待选随机数的标准标识,该参考标识可以是指区块链网络中的节点设备为待选随机数(或随机数)所设置的标识。如果待选节点设备集合中待选节点设备所生成的待选随机数对应的标识,与参考标识不匹配,表明该待选随机数可能是非法待选节点设备所生成用于扰乱识别共识节点设备公平性的数据。因此,可确定该待选节点设备集合的待选节点设备所生成的待选随机数中标识,与该参考标识匹配的待选随机数具有有效性;确定该待选节点设备集合的待选节点设备所生成的待选随机数中标识,与该参考标识不匹配的待选随机数不具有有效性。可避免非法待选节点设备通过生成数据,来扰乱识别共识节点设备的公平性;即通过对待选随机数的标识对待选随机数进行验证,可提高识别共识节点设备的公平性。
可选的,该目标区块的区块信息包括哈希值,该哈希值是根据该目标区块的区块体中的数据生成的;步骤s13可包括如下步骤s51~s53。
s51、获取该待选节点设备集合中的待选节点设备的设备标识。
s52、对该设备标识与该哈希值进行合并处理,得到合并处理后的数据。
s53、采用该合并处理后的数据,生成该待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
在步骤s51~s53中,目标待选节点设备可以获取该待选节点设备集合中待选节点设备的设备标识,该设备标识可以是指公钥、设备序号以及IP地址等等;对该设备标识与该哈希值进行合并处理,得到合并处理后的数据。此处合并处理可包括拼接处理或位运算处理,拼接处理可以是指对设备标识与哈希值进行组合,如假设设备序号为123,哈希值为567,则对设备序号和哈希值进行拼接处理,得到合并处理后的数据(即拼接处理后的数据),具体可包括123567、567123或152637等等;位运算处理可以是指对设备标识与哈希值进行加减乘除处理。目标待选节点设备获取到合并处理后的数据后,可采用该合并处理后的数据,生成该待选节点设备集合中的待选节点设备参与共识处理的共识随机数。由于目标区块的哈希值是根据目标区块的区块体中待选随机数生成的,待选随机数具有随机特性,因此,目标区块的哈希值具有随机特性;即通过根据设备标识和目标区块的哈希值生成共识随机数,共识随机数具有随机特征,且该共识随机与待选节点设备相关联。另外,通过根据设备标识和目标区块的哈希值生成共识随机数,可确保待选节点设备集合中不同待选节点设备对应的共识随机不相同,可提高识别共识节点设备的公平性;同时有利于待选节点设备集合中的待选节点设备所生成的共识随机数保持一致,进而,有利于待选节点设备集合中的待选节点设备所识别出的共识节点设备保持一致。
例如,图5所示,图5中以目标待选节点设备为区块链网络中的待选节点设备101为例。待选节点设备101可获取目标区块(即区块10000)的哈希值10000H,获取待选节点设备集合中各个待选节点设备的设备标识,待选节点设备101、待选节点设备102、……、待选节点设备150的设备标识分别被标记为设备标识1、设备标识2、……、设备标识150。待选节点设备101可根据设备标识1和10000H生成待选节点设备101的共识随机数(即共识随机数1);可根据设备标识2和10000H生成待选节点设备102的共识随机数(即共识随机数2);……;可根据设备标识150和10000H生成待选节点设备150的共识随机数(即共识随机数150)。同理,待选节点设备102、……、待选节点设备150均可以根据设备标识和10000H生成对应待选节点设备的共识随机数,具体实现过程可参见待选节点设备101根据设备标识和10000H生成对应待选节点设备的共识随机数的实现过程。
上述待选节点设备集合中的待选节点设备所生成的共识随机数保持一致:可以是指针对同一个待选节点设备,待选节点设备集合中的各个待选节点设备所生成的共识随机数均相同。例如,针对待选节点设备101,待选节点设备101的设备序号为101,目标区块的哈希值为567。各个待选节点设备可根据待选节点设备101的设备序号和目标区块的哈希值,生成待选节点设备101的共识随机数;由于待选设备集合中的各个待选节点设备获取到的待选节点设备101的设备序号均为101,目标区块的哈希值均为567,因此,各个待选节点设备所生成的待选节点设备101的共识随机数均相同,即待选节点设备集合中的待选节点设备所生成的共识随机数具有一致。
可选的,步骤S103可包括如下步骤s61~s62。
s61、根据该属性信息确定该待选节点设备集合中的待选节点设备参与共识处理的共识权重。
s62、根据该共识权重和该共识随机数,从该待选节点设备集合中识别用于对该交易数据进行共识处理的待选节点设备,作为共识节点设备。
在步骤s61~s62中,目标待选节点设备可以根据该属性信息确定该待选节点设备集合中的待选节点设备参与共识处理的共识权重;此处属性信息可包括待选节点设备的共识处理性能、接入至区块链网络中的时间等等;该共识权重反映待选节点设备的共识处理能力的参数。进一步,可根据该共识权重和该共识随机数,生成待选节点设备集合中的待选节点设备的共识积分;根据共识积分,从该待选节点设备集合中识别用于对该交易数据进行共识处理的待选节点设备,作为共识节点设备。通过根据共识权重以及共识随机数,来识别共识节点设备,有利于提高将共识能力比较强的待选节点设备识别为共识节点设备的概率,同时,确保识别出的共识节点设备不可被提前预知。
需要说明的是,由于待选节点设备的系统稳定性、存储空间大小、共识处理效率、共识处理的准确度、接入至区块链网络中的时间等等,均会随着之间的变化而变化。例如,由于不断有交易数据写入待选节点设备中的区块链中,即待选节点设备的存储空间大小会随着时间变化而变小;同样,待选节点设备会随着时间的变化,接入至区块链网络中的时间(即时长)变长。因此,待选节点设备的属性信息在一定程度上是随时间变化而变化的,也即待选节点设的属性信息不可被提前预知。
例如,如图6a所示,图6a中以目标待选节点设备为区块链网络中的待选节点设备101为例。待选节点设备101可以获取待选节点设备101的属性信息(即属性信息1);获取待选节点设备102的属性信息(即属性信息2);……;获取待选节点设备150的属性信息(即属性信息150)。进一步,待选节点设备101可根据属性信息1生成待选节点设备101的共识权重(即共识权重1);可根据属性信息2生成待选节点设备102的共识权重(即共识权重2);……;可根据属性信息150生成待选节点设备150的共识权重(即共识权重150)。进一步,如图6b所示,待选节点设备101可以各个待选节点设备的共识随机数和共识权重,从待选设备集合中识别用于对交易数据进行共识处理的待选节点设备,作为共识节点设备。如6b中共识节点设备可包括待选节点设备101、待选节点设备103、待选节点设备110、待选节点设备125。
可选的,该属性信息包括共识处理性能;步骤s61可包括如下步骤s71~s72。
s71、根据该共识处理性能确定该待选节点设备集合中的待选节点设备的重要性优先级。
s72、采用该重要性优先级生成该待选节点设备集合中的待选节点设备参与共识处理的共识权重,该重要性优先级与该共识权重具有正相关关系。
在步骤s71~s72中,目标待节点设备可根据该共识处理性能确定该待选节点设备集合中的待选节点设备的重要性优先级;共识处理性能与重要性优先级之间具有正相关关系,即待选节点设备的共识处理性能越强,则该待选节点设备的重要性优先级越高;反之,待选节点设备的共识处理性能越弱,则该待选节点设备的重要性优先级越低。进一步,可以采用该重要性优先级生成该待选节点设备集合中的待选节点设备参与共识处理的共识权重;该重要性优先级与该共识权重具有正相关关系,即待选节点设备的重要优先级越高,则待选节点设备的共识权重越大;反之,待选节点设备的重要优先级越低,则待选节点设备的共识权重越小。通过待选节点设备的共识处理性能生成待选节点设备的共识权重,有利于提高将共识处理性能强的待选节点设备识别为共识节点设备的概率,可提高共识处理的性能。
可选的,目标待选节点设备可以包括如下表2,根据表2可知待选节点设备的重要优先级与共识权重之间的对应关系,即重要性优先级由高到低分别为:重要性优先级1、重要性优先级2、重要性优先级3以及重要性优先级4;重要性优先级1、重要性优先级2、重要性优先级3以及重要性优先级4分别对应共识权重为7、5、4、3。目标待选节点设备获取到各个待选节点设备的重要性优先级后,可以根据表2查询待选节点设备的共识权重。
表2:
重要性优先级 | 共识权重 |
重要性优先级1 | 7 |
重要性优先级2 | 5 |
重要性优先级3 | 4 |
重要性优先级4 | 3 |
…… | …… |
可选的,属性信息包括待选节点设备接入至区块链网络中的时间,步骤s61可包括:获取目标待选节点设备的系统时间;根据该系统时间和待选节点设备接入至区块链网络中的时间,确定待选节点设备集合中待选节点设备接入至区块链网络中的时长;根据该时长确定待选节点设备集合中待选节点设备的共识权重。该共识权重与待选节点设备接入至区块链网络中的时长之间具有正相关关系,即该待选节点设备接入至区块链网络中的时长越长,表明其他待选节点设备对该待选节点设备的可信度越高,因此,该待选节点设备的共识权重越大;反之,即该待选节点设备接入至区块链网络中的时长越短,表明其他待选节点设备对该待选节点设备的可信度越低,因此,该待选节点设备的共识权重越小。
表3:
时长 | 共识权重 |
(0,24)小时 | 1 |
[24,48)小时 | 2 |
[48,60)小时 | 3 |
…… | …… |
可选的,目标待选节点设备可以包括如下表3,根据表3可知待选节点设备的接入至区块链网络中的时长与共识权重之间的对应关系;即待选节点设备接入至区块链网络中的时长位于(0,24)小时,该待选接节点设备对应共识权重为1;即待选节点设备接入至区块链网络中的时长位于[24,48)小时,该待选接节点设备对应共识权重为2;该待选接节点设备对应共识权重为1;即待选节点设备接入至区块链网络中的时长位于[48,60)小时,该待选接节点设备对应共识权重为3。目标待选节点设备获取到各个待选节点设备接入至区块链网络中的时长后,可以根据表3查询待选节点设备的共识权重。
可选的,步骤s62可包括如下步骤s81~s83。
s81、获取该共识随机数的N次方,得到第一数值;N与该共识权重相等,N为大于或等于1的正整数。
s82、将该第一数值的倒数,作为该待选节点设备集合中的待选节点设备的共识积分。
s83、根据该共识积分,从该待选节点设备集合中识别用于对该交易数据进行共识处理的待选节点设备,作为共识节点设备。
在步骤s81~s83中,目标待选节点设备可获取该共识随机数的N次方,得到第一数值,将该第一数值的倒数,作为该待选节点设备集合中的待选节点设备的共识积分;待选节点设备的共识积分可采用如下公式(1)表示。
其中,公式(1)中,Pi表示待选节点设备集合中第i个待选节点设备的共识积分,Ri表示待选节点设备集合中第i个待选节点设备的共识随机数,可以为大于0且小于1的数,wi表示待选节点设备集合中第i个待选节点设备的共识权重。目标待选节点设备获取到共识积分后,可根据该共识积分,从该待选节点设备集合中识别用于对该交易数据进行共识处理的待选节点设备,作为共识节点设备,如将该待选节点设备集合中共识积分最大的M个待选节点设备,识别为共识节点设备。
需要说明是的,待选节点设备集合中各个待选节点设备根据共识积分识别共识节点设备的方式均保持一致,这样识别出的共识节点设备才能相同。例如,待选节点设备集合中各个待选节点设备可以将该待选节点设备集合中共识积分最小的M个待选节点设备,识别为共识节点设备;或者,将该待选节点设备集合中共识积分最大的M个待选节点设备,识别为共识节点设备;或者采用其他方式识别共识节点设备,本申请对此不做限定。
例如,图7中,图7中以目标待选节点设备为区块链网络中的待选节点设备101为例。待选节点设备101可以根据共识随机数1和共识权重1生成待选节点设备101的共识积分(即共识积分1);根据共识随机数2和共识权重2生成待选节点设备102的共识积分(即共识积分2);……;根据共识随机数150和共识权重150生成待选节点设备150的共识积分(即共识积分150)。进一步,待选节点设备101可以从待选节点设备集合中共识积分最高的M个待选节点设备识别为共识节点设备;如可以将待选节点设备集合中共识积分最高的4个待选节点设备识别为共识节点设备,该共识节点设备包括待选节点设备101、待选节点设备103、待选节点设备110、待选节点设备125。
需要说明的是,通过共识权重和共识随机数来识别共识节点设备,可提高将共识处理性能较强的待选节点设备识别为共识节点设备的概率,但是,并不是每轮共识处理过程中,将共识处理能力强的待选节点设备识别为共识节点设备。例如,以三个待选节点设备为例进行说明,假设第一轮、第二轮、第三轮共识处理过程中,待选节点设备101、待选节点设备102以及待选节点设备103的共识权重均保持不变;待选节点设备101的共识权重为3,待选节点设备102的共识权重为1,待选节点设备103的共识权重为3。这三轮共识处理过程中各个待选节点设备的共识随机数数以及共识积分如表4所示,共识积分是根据上述公式(1)计算得到的。
从表4可知,在第一轮和第二共识处理过程中,待选节点设备101和待选节点设备103的共识积分均高于待选节点设备102的共识积分;即在第一轮和第二共识处理过程中,待选节点设备101和待选节点设备103被识别为共识节点设备的概率均高于待选节点设备103被识别为共识节点设备的概率。但是,在第三轮共识处理过程中,待选节点设备101和待选节点设备103的共识积分均低于待选节点设备102的共识积分,即在第三轮共识处理过程中,待选节点设备101和待选节点设备103被识别为共识节点设备的概率均低于待选节点设备103被识别为共识节点设备的概率。对比上述第一轮、第二轮以及第三轮共识处理过程可知:通过共识权重识别共识节点设备,有利于提高共识处理能力强的待选节点设备被识别为共识节点设备的概率,但是,并不是将共识处理能力强的待选节点设备识别为共识节点设备。如第三轮共识处理过程中,虽然待选节点设备101和待选节点设备103的共识权重最高;但是,待选节点设备101和待选节点设备103的共识积分,均低于待选节点设备102;即待选节点设备102可能会被识别为共识节点设备,待选节点设备101和待选节点设备103可能均不会被识别为共识节点设备。也就是说,第三轮共识处理过程中,共识处理能力强的待选节点设备未被识别为共识节点设备,即通过共识权重以及共识随机数来识别共识节点设备,有利于提高识别共识节点设备的随机性,即共识节点设备不可被提前预知,可避免共识节点设备被恶意攻击,提高区块链的安全性以及共识处理的公平性。
表4:
可选的,步骤s83可包括如下步骤s91~s92。
s91、按照由大到小的顺序对该待选节点设备集合中的待选节点设备的共识积分进行排序。
s92、将该待选节点设备集合中对应共识积分排序靠前的M个待选节点设备,识别为共识节点设备,M为大于或等于2的正整数。
在步骤s91~s92中,目标待选节点设备可以按照由大到小的顺序对该待选节点设备集合中的待选节点设备的共识积分进行排序,将该待选节点设备集合中对应共识积分排序靠前的M个待选节点设备,识别为共识节点设备;即将该待选节点设备集合中共识积分最大的M个待选节点设备,识别为共识节点设备。
可选的,该共识节点设备的数量大于或等于2,该方法包括如下步骤s110~s114:
s110、获取各个共识节点设备对该交易数据进行共识的共识结果;该共识结果携带签名信息。
s112、采用该各个共识节点设备的公钥对对应的签名信息进行验签。
s113、获取共识结果为共识通过,且共识结果所携带的签名信息被验签通过的共识节点设备的数量,作为该目标数量。
s114、若该目标数量大于数量阈值,则确定该交易数据被共识通过。
在步骤s110之前,各个共识节点设备采用非对称加密算法生成共识节点设备的密钥对,该共识节点设备的密钥对包括公钥和私钥,其中,该私钥用于对数据信息签名,公钥用于对签名进行验签,该私钥均由节点设备自己保存,公钥可以公开;此处的非对称加密算法可包括但不限于:Elgamal算法(一种非对称加密算法)、Rabin算法(一种非对称加密算法)、Diffie-Hellman算法(一种非对称加密算法)、ECC算法(椭圆曲线加密算法)。共识节点设备生成密钥对后,各个共识节点设备可以对共识结果进行哈希运算,得到共识结果的哈希值,采用各个共识节点设备自身的私钥对共识结果的哈希值进行加密(即签名),得到携带签名信息的共识结果,将携带签名信息的共识结果、共识结果(即原文)广播给各个共识节点设备。
在步骤s110~s114中,目标待选节点设备可获取各个共识节点设备所广播的共识结果;对共识结果进行哈希运算,得到第一哈希值,采用共识节点设备对应的公钥对携带签名信息的共识结果进行解密(验签),得到第二哈希值。如果第一哈希值与第二哈希相同,确定该共识节点设备的共识结果验签通过,表明该共识结果为共识节点设备所发送,且该共识结果未被篡改;如果第一哈希值与第二哈希不相同,确定该共识节点设备的共识结果未验签通过,表明该共识结果不是共识节点设备所发送,或该共识结果被篡改。因此,可获取共识结果为共识通过,且共识结果所携带的签名信息被验签通过的共识节点设备的数量,作为该目标数量。若该目标数量大于数量阈值,表明大多数节点设备的共识结果为共识通过,且共识结果所携带的签名信息被验证通过;则确定该交易数据被共识通过若该目标数量小于或等于数量阈值,表明大多数节点设备的共识结果为共识未通过,共识结果所携带的签名信息未被验证通过,则确定该交易数据未被共识通过。
例如,假设共识节点设备的数量为4,分别包括:待选节点设备101、待选节点设备103、待选节点设备110、待选节点设备125。待选选节点设备101可以获取待选节点设备103的共识结果,待选节点设备103的共识结果携带签名信息;采用待选节点设备103的公钥对待选节点设备103的共识结果所携带的签名信息进行验签;同理,待选节点设备101可参考对待选节点设备103的共识结果所携带的签名信息的验签过程,分别对待选节点设备110、待选节点设备125的共识结果所携带的签名信息进行验签。如果待选节点设备101、待选节点设备103、待选节点设备110的共识结果均为共识通过,且所携带的签名信息均为验签通过,则可以确定上述目标数据为3。同理,待选节点设备103、待选节点设备110、待选节点设备125可分别参考待选节点设备101对各个待选节点设备的共识结果的验签的方式,对各个待选节点设备的共识结果的验签,根据验签结果和共识结果确定上述目标数量;如各个待选节点设备确定出的目标数量均大于或等于3,则确定交易数据被共识通过。
上述数量阈值可以是根据共识节点设备的数量确定的,例如,共识节点设备的数量为100个,则该数量阈值可以为51;或者,该数量阈值可以是待选节点设备预先被共识通过,且写入到区块链网络中的;如该数量阈值被待选节点设备写入到区块链网络的智能合约中。当目标待选节点设备获取到共识结果为共识通过,且共识结果所携带的签名信息被验签通过的共识节点设备的数量(即该目标数量),可调用该智能合约在该目标数量大于数量阈值,执行确定该交易数据被共识通过的步骤。此处智能合约可以是指:计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,例如,本申请中的智能合约可以包括识别共识节点设备的合约,验证共识节点设备的共识结果的合约。当然,智能合约还可以包括根据实际的业务需求代码用于完成自动化的交易;例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
可选的,如果该交易数据被共识通过,各个共识节点设备可以将该交易数据记录到区块链网络中,具体的,如图2b中,可将交易数据记录到区块链网络的区块10001中。可选的,目标待选节点设备可以将该记录交易数据的区块(即区块10001)发送至剩余节点设备,以使该剩余节点设备对该区块进行存储;此处剩余节点设备可以是指区块链网络中除共识节点设备以外的待选节点设备。通过将记录交易数据的区块同步至剩余节点设备,实现由剩余节点设备共同见证共识处理过程,提高共识处理的透明性以及有效性。
请参见图8,是本申请实施例提供的一种基于区块链的数据处理装置的结构示意图。上述基于区块链的数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该基于区块链的数据处理装置为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图8所示,该基于区块链的数据处理装置可以包括:获取模块801、生成模块802、识别模块803、处理模块804、验证模块805以及确定模块806。
获取模块801,用于响应于对交易数据的共识请求,获取上述区块链网络的待选节点设备集合中的待选节点设备的属性信息,上述待选节点设备集合包括上述目标待选节点设备;
生成模块802,用于生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;
识别模块803,用于根据上述属性信息以及上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备;
处理模块804,用于若上述目标待选节点设备被识别为共识节点设备,则对上述交易数据进行共识处理。
可选的,识别模块803,具体用于根据上述属性信息确定上述待选节点设备集合中的待选节点设备参与共识处理的共识权重;
根据上述共识权重和上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备。
其中,上述属性信息包括共识处理性能。
可选的,识别模块803,具体用于根据上述共识处理性能确定上述待选节点设备集合中的待选节点设备的重要性优先级;采用上述重要性优先级生成上述待选节点设备集合中的待选节点设备参与共识处理的共识权重,上述重要性优先级与上述共识权重具有正相关关系。
可选的,生成模块802,具体用于获取上述待选节点设备集合中的待选节点设备所生成的待选随机数;将上述待选随机数记录到上述区块链网络的目标区块中;根据上述目标区块的区块信息,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
其中,上述目标区块的区块信息包括哈希值,上述哈希值是根据上述目标区块的区块体中的数据生成的;上述根据上述目标区块的区块信息。
可选的,生成模块802,具体用于获取上述待选节点设备集合中的待选节点设备的设备标识;对上述设备标识与上述哈希值进行合并处理,得到合并处理后的数据;采用上述合并处理后的数据,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
可选的,生成模块802,具体用于获取上述待选节点设备集合中待选节点设备所生成的待选随机数对应的特征信息;根据上述特征信息验证上述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性;将上述待选节点设备集合中的待选节点设备所生成的待选随机数中具有有效性的待选随机数,记录到上述目标区块中。
其中,上述特征信息包括待选随机数的生成时间。
可选的,生成模块802,具体用于获取上述目标待选节点设备的系统时间;获取上述待选节点设备集合中的待选节点设备所生成的待选随机数分别与上述系统时间之间差值;确定上述待选节点设备集合的待选节点设备所生成的待选随机数中对应的差值,小于时间阈值的待选随机数具有有效性。
可选的,上述特征信息包括待选随机数的标识,生成模块802,具体用于获取待选随机数的参考标识;确定上述待选节点设备集合的待选节点设备所生成的待选随机数中标识,与上述参考标识匹配的待选随机数具有有效性。
可选的,识别模块803,具体用于获取上述共识随机数的N次方,得到第一数值;N与上述共识权重相等,N为大于或等于1的正整数;将上述第一数值的倒数,作为上述待选节点设备集合中的待选节点设备的共识积分;根据上述共识积分,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备。
可选的,识别模块803,具体用于按照由大到小的顺序对上述待选节点设备集合中的待选节点设备的共识积分进行排序;将上述待选节点设备集合中对应共识积分排序靠前的M个待选节点设备,识别为共识节点设备,M为大于或等于2的正整数。
可选的,获取模块801,还用于获取各个共识节点设备对上述交易数据进行共识的共识结果;上述共识结果携带签名信息;
该装置还包括:
验证模块805,用于采用上述各个共识节点设备的公钥对对应的签名信息进行验签;
可选的,获取模块801,还用于获取共识结果为共识通过,且共识结果所携带的签名信息被验签通过的共识节点设备的数量,作为上述目标数量;
可选的,确定模块806,用于若上述目标数量大于数量阈值,则确定上述交易数据被共识通过。
根据本申请的一个实施例,图3所示的基于区块链的数据处理方法所涉及的步骤可由图8所示的数据处理装置中的各个模块来执行。例如,图3中所示的步骤S101可由图8中的获取模块801来执行,图3中所示的步骤S102可由图8中的生成模块802来执行;图3中所示的步骤S103可由图8中的识别模块803来执行,图3中所示的步骤S104可由图8中的处理模块804来执行。
根据本申请的一个实施例,图8所示的数据处理装置中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,基于区块链的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算机设备上运行能够执行如图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图8中所示的数据处理装置,以及来实现本申请实施例的基于区块链的数据处理方法。上述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请中,目标待选节点设备接收到对交易数据的共识请求时,可以获取待选节点设备集合中待选节点设备的属性信息,生成待选节点设备集合中的待选节点设备参与共识处理的共识随机数;通过根据该共识随机数以及该属性信息,从待选节点设备集合中识别用于对交易数据进行共识处理的待选节点设备,作为共识节点设备;如果目标待选节点设备被识别为共识节点设备,可对该交易数据进行共识处理。由于共识随机数具有随机特性,即共识随机数不可被提前预知,同时,待选节点设备的属性信息(如存储空间、共识效率)在一定程度上也是随时间变化而变化;因此,识别出的共识节点设备具有一定的随机性,即参与本轮共识处理的共识节点设备难以被提前预知,可有效避免共识节点设备被恶意攻击,提高区块链的安全性以及共识处理的公平性。
请参见图9,是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,上述计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,上述计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非易失性的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
响应于对交易数据的共识请求,获取上述区块链网络的待选节点设备集合中的待选节点设备的属性信息,上述待选节点设备集合包括上述目标待选节点设备;
生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;
根据上述属性信息以及上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备;
若上述目标待选节点设备被识别为共识节点设备,则对上述交易数据进行共识处理。
可选的,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
根据上述属性信息确定上述待选节点设备集合中的待选节点设备参与共识处理的共识权重;
根据上述共识权重和上述共识随机数,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备。
可选的,上述属性信息包括共识处理性能;处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
根据上述共识处理性能确定上述待选节点设备集合中的待选节点设备的重要性优先级;
采用上述重要性优先级生成上述待选节点设备集合中的待选节点设备参与共识处理的共识权重,上述重要性优先级与上述共识权重具有正相关关系。
可选的,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取上述待选节点设备集合中的待选节点设备所生成的待选随机数;
将上述待选随机数记录到上述区块链网络的目标区块中;
根据上述目标区块的区块信息,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
可选的,上述目标区块的区块信息包括哈希值,上述哈希值是根据上述目标区块的区块体中的数据生成的;处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取上述待选节点设备集合中的待选节点设备的设备标识;
对上述设备标识与上述哈希值进行合并处理,得到合并处理后的数据;
采用上述合并处理后的数据,生成上述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
可选的,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取上述待选节点设备集合中待选节点设备所生成的待选随机数对应的特征信息;
根据上述特征信息验证上述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性;
将上述待选节点设备集合中的待选节点设备所生成的待选随机数中具有有效性的待选随机数,记录到上述目标区块中。
可选的,上述特征信息包括待选随机数的生成时间,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取上述目标待选节点设备的系统时间;
获取上述待选节点设备集合中的待选节点设备所生成的待选随机数分别与上述系统时间之间差值;
确定上述待选节点设备集合的待选节点设备所生成的待选随机数中对应的差值,小于时间阈值的待选随机数具有有效性。
可选的,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取待选随机数的参考标识;
确定上述待选节点设备集合的待选节点设备所生成的待选随机数中标识,与上述参考标识匹配的待选随机数具有有效性。
可选的,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取上述共识随机数的N次方,得到第一数值;N与上述共识权重相等,N为大于或等于1的正整数;
将上述第一数值的倒数,作为上述待选节点设备集合中的待选节点设备的共识积分;
根据上述共识积分,从上述待选节点设备集合中识别用于对上述交易数据进行共识处理的待选节点设备,作为共识节点设备。
可选的,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
按照由大到小的顺序对上述待选节点设备集合中的待选节点设备的共识积分进行排序;
将上述待选节点设备集合中对应共识积分排序靠前的M个待选节点设备,识别为共识节点设备,M为大于或等于2的正整数。
可选的,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取各个共识节点设备对上述交易数据进行共识的共识结果;上述共识结果携带签名信息;
采用上述各个共识节点设备的公钥对对应的签名信息进行验签;
获取共识结果为共识通过,且共识结果所携带的签名信息被验签通过的共识节点设备的数量,作为上述目标数量;
若上述目标数量大于数量阈值,则确定上述交易数据被共识通过。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3所对应实施例中对上述基于区块链的数据处理方法的描述,也可执行前文图8所对应实施例中对上述基于区块链的数据处理装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
本申请中,目标待选节点设备接收到对交易数据的共识请求时,可以获取待选节点设备集合中待选节点设备的属性信息,生成待选节点设备集合中的待选节点设备参与共识处理的共识随机数;通过根据该共识随机数以及该属性信息,从待选节点设备集合中识别用于对交易数据进行共识处理的待选节点设备,作为共识节点设备;如果目标待选节点设备被识别为共识节点设备,可对该交易数据进行共识处理。由于共识随机数具有随机特性,即共识随机数不可被提前预知,同时,待选节点设备的属性信息(如存储空间、共识效率)在一定程度上也是随时间变化而变化;因此,识别出的共识节点设备具有一定的随机性,即参与本轮共识处理的共识节点设备难以被提前预知,可有效避免共识节点设备被恶意攻击,提高区块链的安全性以及共识处理的公平性。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且上述计算机可读存储介质中存储有前文提及的基于区块链的数据处理装置所执行的计算机程序,且上述计算机程序包括程序指令,当上述处理器执行上述程序指令时,能够执行前文图3对应实施例中对上述基于区块链的数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
作为示例,上述程序指令可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的存储介质可为磁盘、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (14)
1.一种基于区块链的数据处理方法,其特征在于,包括:
响应于对交易数据的共识请求,获取区块链网络的待选节点设备集合中的待选节点设备的属性信息,所述待选节点设备集合包括所述目标待选节点设备;
生成所述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;
根据所述属性信息以及所述共识随机数,从所述待选节点设备集合中识别用于对所述交易数据进行共识处理的待选节点设备,作为共识节点设备;
若所述区块链网络中的目标待选节点设备被识别为共识节点设备,则对所述交易数据进行共识处理。
2.如权利要求1所述的方法,其特征在于,所述根据所述属性信息以及所述共识随机数,从所述待选节点设备集合中识别用于对所述交易数据进行共识处理的待选节点设备,作为共识节点设备,包括:
根据所述属性信息确定所述待选节点设备集合中的待选节点设备参与共识处理的共识权重;
根据所述共识权重和所述共识随机数,从所述待选节点设备集合中识别用于对所述交易数据进行共识处理的待选节点设备,作为共识节点设备。
3.如权利要求2所述的方法,其特征在于,所述属性信息包括共识处理性能;所述根据所述属性信息确定所述待选节点设备集合中的待选节点设备参与共识处理的共识权重,包括:
根据所述共识处理性能确定所述待选节点设备集合中的待选节点设备的重要性优先级;
采用所述重要性优先级生成所述待选节点设备集合中的待选节点设备参与共识处理的共识权重,所述重要性优先级与所述共识权重具有正相关关系。
4.如权利要求1-3任一项所述的方法,其特征在于,所述生成所述待选节点设备集合中的待选节点设备参与共识处理的共识随机数,包括:
获取所述待选节点设备集合中的待选节点设备所生成的待选随机数;
将所述待选随机数记录到所述区块链网络的目标区块中;
根据所述目标区块的区块信息,生成所述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
5.如权利要求4所述的方法,其特征在于,所述目标区块的区块信息包括哈希值,所述哈希值是根据所述目标区块的区块体中的数据生成的;所述根据所述目标区块的区块信息,生成所述待选节点设备集合中的待选节点设备参与共识处理的共识随机数,包括:
获取所述待选节点设备集合中的待选节点设备的设备标识;
对所述设备标识与所述哈希值进行合并处理,得到合并处理后的数据;
采用所述合并处理后的数据,生成所述待选节点设备集合中的待选节点设备参与共识处理的共识随机数。
6.如权利要求4所述的方法,其特征在于,所述将所述待选随机数记录到所述区块链网络的目标区块中,包括:
获取所述待选节点设备集合中待选节点设备所生成的待选随机数对应的特征信息;
根据所述特征信息验证所述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性;
将所述待选节点设备集合中的待选节点设备所生成的待选随机数中具有有效性的待选随机数,记录到所述目标区块中。
7.如权利要求6所述的方法,其特征在于,所述特征信息包括待选随机数的生成时间,所述根据所述特征信息验证所述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性,包括:
获取所述目标待选节点设备的系统时间;
获取所述待选节点设备集合中的待选节点设备所生成的待选随机数分别与所述系统时间之间差值;
确定所述待选节点设备集合的待选节点设备所生成的待选随机数中对应的差值,小于时间阈值的待选随机数具有有效性。
8.如权利要求6所述的方法,其特征在于,所述特征信息包括待选随机数的标识,所述根据所述特征信息验证所述待选节点设备集合中的待选节点设备所生成的待选随机数的有效性,包括:
获取待选随机数的参考标识;
确定所述待选节点设备集合的待选节点设备所生成的待选随机数中标识,与所述参考标识匹配的待选随机数具有有效性。
9.如权利要求2所述的方法,其特征在于,所述根据所述共识权重和所述共识随机数,从所述待选节点设备集合中识别用于对所述交易数据进行共识处理的待选节点设备,作为共识节点设备,包括:
获取所述共识随机数的N次方,得到第一数值;N与所述共识权重相等,N为大于或等于1的正整数;
将所述第一数值的倒数,作为所述待选节点设备集合中的待选节点设备的共识积分;
根据所述共识积分,从所述待选节点设备集合中识别用于对所述交易数据进行共识处理的待选节点设备,作为共识节点设备。
10.如权利要求9所述的方法,其特征在于,所述根据所述共识积分,从所述待选节点设备集合中识别用于对所述交易数据进行共识处理的待选节点设备,作为共识节点设备,包括:
按照由大到小的顺序对所述待选节点设备集合中的待选节点设备的共识积分进行排序;
将所述待选节点设备集合中对应共识积分排序靠前的M个待选节点设备,识别为共识节点设备,M为大于或等于2的正整数。
11.如权利要求1所述的方法,其特征在于,所述共识节点设备的数量大于或等于2,所述方法还包括:
获取各个共识节点设备对所述交易数据进行共识的共识结果;所述共识结果携带签名信息;
采用所述各个共识节点设备的公钥对对应的签名信息进行验签;
获取共识结果为共识通过,且共识结果所携带的签名信息被验签通过的共识节点设备的数量,作为所述目标数量;
若所述目标数量大于数量阈值,则确定所述交易数据被共识通过。
12.一种基于区块链的数据处理方法装置,应用于区块链网络中的目标待选节点设备,其特征在于,包括:
获取模块,用于响应于对交易数据的共识请求,获取所述区块链网络的待选节点设备集合中的待选节点设备的属性信息,所述待选节点设备集合包括所述目标待选节点设备;
生成模块,用于生成所述待选节点设备集合中的待选节点设备参与共识处理的共识随机数;
识别模块,用于根据所述属性信息以及所述共识随机数,从所述待选节点设备集合中识别用于对所述交易数据进行共识处理的待选节点设备,作为共识节点设备;
处理模块,用于若所述目标待选节点设备被识别为共识节点设备,则对所述交易数据进行共识处理。
13.一种计算机设备,其特征在于,包括:处理器以及存储器、网络接口;
上述处理器与存储器、网络接口相连,其中,网络接口用于提供数据通信功能;所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1至11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1至11中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010326630.3A CN111523890A (zh) | 2020-04-23 | 2020-04-23 | 基于区块链的数据处理方法、装置、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010326630.3A CN111523890A (zh) | 2020-04-23 | 2020-04-23 | 基于区块链的数据处理方法、装置、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111523890A true CN111523890A (zh) | 2020-08-11 |
Family
ID=71903531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010326630.3A Pending CN111523890A (zh) | 2020-04-23 | 2020-04-23 | 基于区块链的数据处理方法、装置、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111523890A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187765A (zh) * | 2020-09-23 | 2021-01-05 | 深圳前海微众银行股份有限公司 | 一种区块链中选择目标节点的方法及装置 |
CN112381539A (zh) * | 2020-11-13 | 2021-02-19 | 陈素华 | 基于区块链和大数据的交易信息处理方法及数字金融平台 |
CN112418859A (zh) * | 2020-12-04 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 区块链的共识方法及装置、电子设备和可读存储介质 |
CN112491845A (zh) * | 2020-11-18 | 2021-03-12 | 北京数码视讯科技股份有限公司 | 节点准入方法、共识方法、装置、电子设备及存储介质 |
CN112688996A (zh) * | 2020-12-16 | 2021-04-20 | 宁波云麟信息科技有限公司 | 基于区块链的电子存证数据存储方法和电子设备 |
CN112738196A (zh) * | 2020-12-25 | 2021-04-30 | 卓尔智联(武汉)研究院有限公司 | 区块链代表节点选取方法、装置、计算机设备和存储介质 |
CN113269645A (zh) * | 2021-05-28 | 2021-08-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
CN113347174A (zh) * | 2021-05-31 | 2021-09-03 | 矩阵元技术(深圳)有限公司 | 区块链中的共识方法、装置和电子设备 |
WO2022068236A1 (zh) * | 2020-09-29 | 2022-04-07 | 平安科技(深圳)有限公司 | 基于信息的特征进行信息处理的方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119930A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
CN109450996A (zh) * | 2018-10-25 | 2019-03-08 | 国信优易数据有限公司 | 一种数据上链管理方法、装置、设备和区块链系统 |
CN109743173A (zh) * | 2018-12-20 | 2019-05-10 | 弗洛格(武汉)信息科技有限公司 | 区块链中出块节点确定方法、区块验证方法及区块链系统 |
CN110049029A (zh) * | 2019-04-04 | 2019-07-23 | 矩阵元技术(深圳)有限公司 | 共识节点确定方法、装置、计算机设备和存储介质 |
CN110599173A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 区块链的共识节点确定方法、装置、设备及存储介质 |
-
2020
- 2020-04-23 CN CN202010326630.3A patent/CN111523890A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018119930A1 (zh) * | 2016-12-29 | 2018-07-05 | 深圳前海达闼云端智能科技有限公司 | 交易验证处理方法、装置及节点设备 |
CN109450996A (zh) * | 2018-10-25 | 2019-03-08 | 国信优易数据有限公司 | 一种数据上链管理方法、装置、设备和区块链系统 |
CN109743173A (zh) * | 2018-12-20 | 2019-05-10 | 弗洛格(武汉)信息科技有限公司 | 区块链中出块节点确定方法、区块验证方法及区块链系统 |
CN110049029A (zh) * | 2019-04-04 | 2019-07-23 | 矩阵元技术(深圳)有限公司 | 共识节点确定方法、装置、计算机设备和存储介质 |
CN110599173A (zh) * | 2019-09-20 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 区块链的共识节点确定方法、装置、设备及存储介质 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022063013A1 (zh) * | 2020-09-23 | 2022-03-31 | 深圳前海微众银行股份有限公司 | 一种区块链中选择目标节点的方法及装置 |
CN112187765A (zh) * | 2020-09-23 | 2021-01-05 | 深圳前海微众银行股份有限公司 | 一种区块链中选择目标节点的方法及装置 |
WO2022068236A1 (zh) * | 2020-09-29 | 2022-04-07 | 平安科技(深圳)有限公司 | 基于信息的特征进行信息处理的方法、装置、设备及介质 |
CN112381539A (zh) * | 2020-11-13 | 2021-02-19 | 陈素华 | 基于区块链和大数据的交易信息处理方法及数字金融平台 |
CN112491845A (zh) * | 2020-11-18 | 2021-03-12 | 北京数码视讯科技股份有限公司 | 节点准入方法、共识方法、装置、电子设备及存储介质 |
CN112491845B (zh) * | 2020-11-18 | 2023-04-25 | 北京数码视讯科技股份有限公司 | 普通节点准入方法、装置、电子设备及可读存储介质 |
CN112418859A (zh) * | 2020-12-04 | 2021-02-26 | 腾讯科技(深圳)有限公司 | 区块链的共识方法及装置、电子设备和可读存储介质 |
CN112688996A (zh) * | 2020-12-16 | 2021-04-20 | 宁波云麟信息科技有限公司 | 基于区块链的电子存证数据存储方法和电子设备 |
CN112738196A (zh) * | 2020-12-25 | 2021-04-30 | 卓尔智联(武汉)研究院有限公司 | 区块链代表节点选取方法、装置、计算机设备和存储介质 |
CN112738196B (zh) * | 2020-12-25 | 2021-11-30 | 卓尔智联(武汉)研究院有限公司 | 区块链代表节点选取方法、装置、计算机设备和存储介质 |
CN113269645A (zh) * | 2021-05-28 | 2021-08-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
CN113347174A (zh) * | 2021-05-31 | 2021-09-03 | 矩阵元技术(深圳)有限公司 | 区块链中的共识方法、装置和电子设备 |
CN113347174B (zh) * | 2021-05-31 | 2022-12-13 | 矩阵元技术(深圳)有限公司 | 区块链中的共识方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111523890A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
US10747721B2 (en) | File management/search system and file management/search method based on block chain | |
CN111556120B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN110633963B (zh) | 电子票据处理方法、装置、计算机可读存储介质和设备 | |
CN111383021B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
CN111476572B (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN112527912B (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
CN111885050B (zh) | 基于区块链网络的数据存储方法、装置、相关设备及介质 | |
CN110599331B (zh) | 基于区块链的债务催收系统、方法、设备及存储介质 | |
US11362836B2 (en) | Consensus protocol for permissioned ledgers | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
CN111488372A (zh) | 一种数据处理方法、设备及存储介质 | |
CN111340483A (zh) | 一种基于区块链的数据管理方法及相关设备 | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
CN111416709B (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
CN111292057A (zh) | 一种基于区块链的业务处理方法 | |
CN112200680B (zh) | 区块链节点管理方法、装置、计算机以及可读存储介质 | |
CN111680282B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
CN112037055B (zh) | 交易处理方法、装置、电子设备及可读存储介质 | |
CN113886817A (zh) | 主机入侵检测方法及装置、电子设备、存储介质 | |
CN111385096A (zh) | 一种区块链网络、签名处理方法、终端及存储介质 | |
CN111817859A (zh) | 基于零知识证明的数据共享方法、装置、设备及存储介质 | |
CN111260475A (zh) | 一种数据处理方法、区块链节点设备及存储介质 | |
CN111597537A (zh) | 基于区块链网络的证书签发方法、相关设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40027980 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |