CN113010894B - 一种数据处理方法、装置及计算机可读存储介质 - Google Patents
一种数据处理方法、装置及计算机可读存储介质 Download PDFInfo
- Publication number
- CN113010894B CN113010894B CN202010534739.6A CN202010534739A CN113010894B CN 113010894 B CN113010894 B CN 113010894B CN 202010534739 A CN202010534739 A CN 202010534739A CN 113010894 B CN113010894 B CN 113010894B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- execution environment
- trusted execution
- block
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明实施例提供了一种数据处理方法、装置及计算机可读存储介质,方法包括:第一节点获取待处理的交易数据,其中,第一节点为区块链网络包括的多个节点中的当前出块节点,第一节点在生成该交易数据对应的区块后,获取第一节点的目标可信执行环境生成的随机数,并向该多个节点中的其他节点发送该区块和该随机数,以使得其他节点将区块添加到区块链中,并根据该随机数从该多个节点中确定出下一个出块节点,可以保证确定出块节点时的随机性,使得下一个出块节点无法被预测,有效防止节点之间恶意串通从而非法赚取打包出块的收益。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置及计算机可读存储介质。
背景技术
目前,在区块链的共识算法中,有些节点被选出来通过加入共识委员会参加共识。实际应用中发现,在确定出块节点时可能存在作恶的情况,当前出块节点可以根据出块的哈希决定下一个出块的是哪个节点,可以与其他节点进行串通,当前出块节点在出块时,可以经过反复计算进行打包出块,使得算出来的下一个出块的节点是共同作恶的另一个节点,该另一个节点就可以赚取下一次打包的费用(或者说奖励)了,该另一个节点出块又可以进行类似的操作使得下一个出块的节点是串通好的其他节点。可见,由于下一个出块的节点是可以预测和控制的,容易导致节点之间联合串通后进行作恶,例如重复打包,赚取打包奖励,安全性较差。
发明内容
本发明实施例提供一种数据处理方法、装置及计算机可读存储介质,可以保证确定出块节点时的随机性,使得下一个出块节点无法被预测,有效防止节点之间恶意串通从而非法赚取打包出块的收益。
第一方面,本发明实施例提供了一种数据处理方法,应用于区块链网络,所述区块链网络包括多个节点,所述方法包括:
第一节点获取待处理的交易数据,其中,所述第一节点为所述多个节点中的当前出块节点。
所述第一节点在生成所述交易数据对应的区块后,获取所述第一节点的目标可信执行环境生成的随机数。
所述第一节点向所述多个节点中的其他节点发送所述区块和所述随机数,以使得所述其他节点将所述区块添加到区块链中,并根据所述随机数从所述多个节点中确定出下一个出块节点。
第二方面,本发明实施例提供了一种数据处理方法,应用于区块链网络,所述区块链网络包括多个节点,所述方法包括:
第二节点接收第一节点发送的区块和随机数,其中,所述第一节点为所述多个节点中的当前出块节点,所述随机数是由所述第一节点的目标可信执行环境生成的,所述第二节点为所述多个节点中除所述第一节点之外的任意一个。
所述第二节点将所述区块添加到区块链中。
所述第二节点根据所述随机数从所述多个节点中确定出下一个出块节点。
第三方面,本发明实施例提供了一种数据处理装置,应用于区块链网络包括的第一节点,所述区块链网络包括多个节点,所述装置包括:
获取模块,用于获取待处理的交易数据,其中,所述第一节点为所述多个节点中的当前出块节点。
所述获取模块,还用于在生成所述交易数据对应的区块后,获取所述第一节点的目标可信执行环境生成的随机数。
发送模块,用于向所述多个节点中的其他节点发送所述区块和所述随机数,以使得所述其他节点将所述区块添加到区块链中,并根据所述随机数从所述多个节点中确定出下一个出块节点。
第四方面,本发明实施例提供了一种数据处理装置,应用于区块链网络包括的第二节点,所述区块链网络包括多个节点,所述装置包括:
接收模块,用于接收第一节点发送的区块和随机数,其中,所述第一节点为所述多个节点中的当前出块节点,所述随机数是由所述第一节点的目标可信执行环境生成的,所述第二节点为所述多个节点中除所述第一节点之外的任意一个。
添加模块,用于将所述区块添加到区块链中。
确定模块,用于根据所述随机数从所述多个节点中确定出下一个出块节点。
第五方面,本发明实施例提供了一种节点设备,所述节点设备包括处理器、网络接口和存储装置,所述处理器、所述网络接口和所述存储装置相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行第一方面所述的数据处理方法。
第六方面,本发明实施例提供了一种节点设备,所述节点设备包括处理器、网络接口和存储装置,所述处理器、所述网络接口和所述存储装置相互连接,其中,所述网络接口受所述处理器的控制用于收发数据,所述存储装置用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,用于执行第二方面所述的数据处理方法。
第七方面,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行第一方面或第二方面所述的数据处理方法。
本发明实施例中,第一节点获取待处理的交易数据,其中,第一节点为区块链网络包括的多个节点中的当前出块节点,第一节点在生成该交易数据对应的区块后,获取第一节点的目标可信执行环境生成的随机数,并向该多个节点中的其他节点发送该区块和该随机数,以使得其他节点将区块添加到区块链中,并根据该随机数从该多个节点中确定出下一个出块节点,可以保证确定出块节点时的随机性,使得下一个出块节点无法被预测,有效防止节点之间恶意串通从而非法赚取打包出块的收益。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的一种数据处理系统的架构示意图;
图1b是本发明实施例提供的一种区块链的结构示意图;
图1c是本发明实施例提供的一种产生新区块的过程示意图;
图2是本发明实施例提供的一种数据处理方法的流程示意图;
图3是本发明实施例提供的另一种数据处理方法的流程示意图;
图4是本发明实施例提供的又一种数据处理方法的流程示意图;
图5是本发明实施例提供的一种数据处理装置的结构示意图;
图6是本发明实施例提供的另一种数据处理装置的结构示意图;
图7是本发明实施例提供的一种节点设备的结构示意图;
图8是本发明实施例提供的另一种节点设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对目前区块链网络中由于下一个出块的节点是可以预测的,容易导致节点之间联合串通后进行作恶,例如重复打包,赚取打包奖励,安全性较差的问题,本发明实施例提供了一种数据处理方法,可以保证确定出块节点时的随机性,使得下一个出块节点无法被预测,有效防止节点之间恶意串通从而非法赚取打包出块的收益。
请参见图1a,是本发明实施例提供的一种数据处理系统的架构示意图,该数据处理系统包括区块链网络10和终端设备11,其中:
区块链网络10是指用于进行节点与节点之间数据共享的网络,区块链网络中可以包括多个节点101。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护区块链网络内的共享数据(即区块链)。为了保证区块链网络内的信息互通,每个节点之间可以存在信息连接,任意两个节点之间可以实现点对点(Peer To Peer,P2P)通信,具体可以通过有线通信链路或无线通信链路进行P2P通信。例如,当区块链网络中的任意节点接收到输入信息时,其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得区块链网络中全部节点上存储的数据均一致。
终端设备11可以接入该区块链网络,并可以与区块链网络中的节点进行通信,例如,向节点提交交易数据,从节点查询数据,等等。其中,终端设备11具体可以是智能手机、平板电脑、笔记本电脑、台式电脑、车载智能终端等,本发明实施例不做限定。
需要说明的是,图1a中所示的节点的数目仅仅是示意性的,根据实际需要,可以部署任意数目的节点。
其中,对于区块链网络中的每个节点,均具有与其对应的节点标识,而且区块链网络中的每个节点均可以存储有区块链网络中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链网络中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为互联网协议(Internet Protocol,IP)地址以及其他任一种能够用于标识该节点的信息,表中仅以IP地址为例进行说明。
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
其中,区块链网络中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
其中,在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据区块链网络中其他节点的节点标识,将新生成的区块分别发送给其所在的区块链网络中的其他节点,由其他节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。
其中,区块链网络的节点上可以运行智能合约,智能合约是用于在满足一定条件时而执行的代码实现,开发人员可以通过编程语言定义合约逻辑,发布到区块链上(智能合约注册),根据合约条款的逻辑,调用密钥或者其他的事件触发执行,完成合约逻辑,同时还提供对智能合约升级、注销的功能。
在一些可行的实施方式中,区块链网络的第一节点101获取待处理的交易数据,其中,第一节点101为区块链网络10包括的多个节点中的当前出块节点,第一节点101在生成该交易数据对应的区块后,获取第一节点的目标可信执行环境生成的随机数,并向该多个节点中的其他节点发送该区块和该随机数,以使得其他节点将区块添加到区块链中,并根据该随机数从该多个节点中确定出下一个出块节点,可以保证确定出块节点时的随机性,使得下一个出块节点无法被预测,有效防止节点之间恶意串通从而非法赚取打包出块的收益。
以下对本发明实施例的技术方案的实现细节进行详细阐述:
请参见图2,是本发明实施例基于图1a所示的数据处理系统提供的一种数据处理方法的流程示意图,本发明实施例的数据处理方法主要是从第一节点一侧进行描述的,区块链网络包括多个共识节点,该数据处理方法包括如下步骤:
201、第一节点获取待处理的交易数据,其中,所述第一节点为所述多个节点中的当前出块节点。
具体的,第一节点作为区块链网络中的当前出块节点,第一节点可以接收终端设备提交的待处理的交易数据或者其他节点转发的待处理的交易数据,并对交易处理进行打包出块操作,以生成对应的区块。其中,待处理的交易数据例如可以是转账记录、商品交易记录等待上链的数据,区块是在区块链网络中承载交易数据的数据包,是一种被标记上时间戳和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确认区块中的交易。
在一些可行的实施方式中,第一节点可以是由区块链网络的共识委员会通过共识算法从多个节点中选举出来,作为区块链网络中的当前出块节点。
202、所述第一节点在生成所述交易数据对应的区块后,获取所述第一节点的目标可信执行环境生成的随机数。
其中,区块链网络中的各个节点可以配置有对应的可信执行环境(TrustedExecution Environment,TEE),可信执行环境用于生成随机数。其中,第一节点上配置的可信执行环境记为目标可信执行环境。
其中,应用/进程的执行环境可以分为普通执行环境(Rich ExecutionEnvironment,REE)和TEE。REE是由操作系统提供和管理的执行环境,处于TEE的外部,从TEE看来,REE和其中运行的进程都被认为是不可信的。TEE与REE相对应,是一个可以独立的安全可执行环境,TEE具有安全能力控制,并符合一些特定的安全需求的要求,可以保护处于TEE内的资源不受到通常的软件攻击、可以抵御许多种类型的安全威胁。TEE是一个安全区域,它通过隔离的执行环境,提供一个执行空间,该空间相比REE有更强的安全性,比安全芯片功能更丰富,提供其代码和数据的机密性和完整性保护。其中,TEE具体可以采用IntelSGX、Arm Trust zone等软/硬件架构,本发明实施例不做限定。
具体的,第一节点在生成该交易数据对应的区块后,向目标可信执行环境下发生成随机数的任务请求,例如可以通过目标可信执行环境提供的外部访问接口接入目标可信执行环境,从而向目标可信执行环境下发生成随机数的任务请求,目标可信执行环境收到任务请求后,可以先对第一节点的身份进行验证,验证通过后调用目标可信执行环境中运行的可信服务(Trusted Application,TA)来产生随机数,并向第一节点获取返回该随机数。
203、所述第一节点向所述多个节点中的其他节点发送所述区块和所述随机数,以使得所述其他节点将所述区块添加到区块链中,并根据所述随机数从所述多个节点中确定出下一个出块节点。
具体的,第一节点可以通过广播的方式向该多个节点中的其他节点发送生成的区块和随机数,以使得其他节点对区块验证后将该区块添加到区块链中,并根据该随机数从该多个节点中确定出下一个出块节点,可见,下一个出块节点是根据随机数确定出来的,具有不可预测性。
在一些可行的实施方式中,各个节点可以向区块链注册自己对应的可信执行环境,对于第一节点来讲,第一节点可以获取目标可信执行环境的特征参数,通过调用智能合约对目标可信执行环境的特征参数进行远程认证,具体可以根据特征参数对目标可信执行环境的功能和有效性进行认证,若认证通过,则第一节点通过调用智能合约将目标可信执行环境的注册信息写入区块链中,以完成第一节点的可信执行环境(即目标可信执行环境)的注册,其中,该注册信息可以包括第一节点的标识、目标可信执行环境的地址和公钥。
在一些可行的实施方式中,该随机数携带有目标可信执行环境的数字签名,数字签名用于其他节点对随机数进行验证,例如其他节点可以用目标可信执行环境的公钥对该数字签名进行验证,若验证通过,则表明该随机数是目标可信执行环境生成的,该随机数是一个可以信任的随机数。
在一些可行的实施方式中,该数字签名也是在目标可信执行环境中进行的,用来证明该随机数是由目标可信执行环境生成的,具体可以在目标可信执行环境中用目标可信执行环境的私钥进行签名,从而得到目标可信执行环境的数字签名。
本发明实施例中,第一节点获取待处理的交易数据,其中,第一节点为区块链网络包括的多个节点中的当前出块节点,第一节点在生成该交易数据对应的区块后,获取第一节点的目标可信执行环境生成的随机数,并向该多个节点中的其他节点发送该区块和该随机数,以使得其他节点将区块添加到区块链中,并根据该随机数从该多个节点中确定出下一个出块节点,可见,当前出块节点可以通过可信执行环境的可信硬件和可信应用生成随机数,该随机数可以保证确定出块节点时的随机性,使得下一个出块节点无法被预测或者事先确定,有效防止节点之间恶意串通从而非法赚取打包出块的收益。
请参见图3,是本发明实施例基于图1a所示的数据处理系统提供的另一种数据处理方法的流程示意图,本发明实施例的数据处理方法主要是从第二节点一侧进行描述的,区块链网络包括多个共识节点,该数据处理方法包括如下步骤:
301、第二节点接收第一节点发送的区块和随机数,其中,所述第一节点为所述多个节点中的当前出块节点,所述随机数是由所述第一节点的目标可信执行环境生成的。
其中,所述第二节点是区块链网络包括的多个节点中除第一节点(即当前出块节点)之外的任意一个。
具体的,第二节点可以接收第一节点通过广播发送的区块和随机数,其中,该随机数是由第一节点的目标可信执行环境生成的。
302、所述第二节点将所述区块添加到区块链中。
303、所述第二节点根据所述随机数从所述多个节点中确定出下一个出块节点。
具体的,第二节点可以对第一节点生成的区块进行合法性验证,如果该区块合法,则确定对区块验证通过,并将区块添加到区块链中。第二节点还可以根据随机数从多个节点中确定出第三节点,并与区块链网络包括的多个节点中的其他节点对第三节点进行共识验证,如果验证通过,则可以确定该第三节点为下一个出块节点。当产生新的交易数据后,由该下一个区块节点对新的交易数据进行打包出块操作,生成新区块,由于随机数是由可信执行环境通过可信硬件和可信应用计算出来的,可以保证确定出的该下一个区块节点是随机的,无法被预测或者事先确定,从而可以避免作恶节点的重复出块行为。
其中,对第三节点进行共识验证的其他节点具体可以是指共识委员会包括的各个共识节点。
在一些可行的实施方式中,第二节点可以根据随机数确定节点标识,并从区块链网络包括的多个节点中确定出该节点标识对应的第三节点,例如节点标识的范围为0~100,则第一节点的可信执行环境可以在0~100之间产生一个随机数,并直接将该随机数作为节点标识,假设随机数为37,则节点标识也可以为37,然后从区块链网络包括的多个节点中找出节点标识为37的第三节点,当然也可以根据随机数37计算得到一个其他数值,将该数值作为节点标识。
在一些可行的实施方式中,每个节点可以维护一份未确认交易的临时列表,被称为内存池或交易池,节点的交易池随区块链网络传入的交易数据动态填充,节点刚启动时,对应的交易池是空闲的,随着区块链网络中新的交易数据不断被接收,交易池也逐渐被填充,交易池的负载越小,则交易池中的交易可以越快地被节点处理。第一节点可以通过目标可信执行环境产生多个随机数,具体可以为K个随机数,K为大于或等于2的整数,则第二节点可以根据该K个随机数从该多个节点中确定出K个节点,该K个节点可以作为下一个出块节点的候选节点,然后获取该K个节点中每个节点的交易池的负载信息,并根据每个节点的交易池的负载信息从该K个节点中确定出对应的交易池负载最小的目标节点,并与其他节点对该目标节点进行共识验证,验证通过后,确定该目标节点为下一个出块节点,从而可以从随机确定出的多个候选节点中选出负载最小的节点作为下一个出块节点,可以有效均衡节点之间的负载,在保证随机确定下一个出块节点的同时,还提升了出块效率。
在一些可行的实施方式中,随机数携带有目标可信执行环境的数字签名,第二节点在接收到第一节点发送的区块和随机数之后,先对该数字签名进行验证,具体可以包括:第二节点获取第一节点的目标可信执行环境的公钥,利用公钥对数字签名进行验证,如果验证通过,则第二节点可以确定该数字签名是由第一节点的目标可信执行环境做出的,并且该随机数是可信的,进而根据随机数从多个节点中确定出下一个出块节点,可见,通过数字签名可以对随机数进行验证进一步保证了随机数的产生是可信的,使得下一个出块节点的确定也是随机且可信的。
在一些可行的实施方式中,第二节点可以获取目标可信执行环境的地址(如IP地址),然后根据目标可信执行环境的地址从区块链中查询目标可信执行环境的公钥,其中,区块链存储有该多个节点中各个节点的可信执行环境的注册信息,包括节点的标识、可信执行环境的地址和公钥,各个节点可以向区块链注册自己对应的可信执行环境,将节点标识以及对应的可信执行环境的地址和公钥等注册信息写入区块链中。
在一些可行的实施方式中,每个节点上可以存储可信执行环境配置列表,该可信执行环境配置列表包括各个节点对应的可信执行环境的地址和公钥等信息,第二节点根据第一节点的目标可信执行环境的地址即可从该可信执行环境配置列表中查询到该目标可信执行环境的公钥。
本发明实施例中,第二节点接收当前出块节点发送的区块和随机数,该随机数是由当前出块节点的可信执行环境生成的,然后第二节点将区块添加到区块链中,并根据该随机数从区块链网络包括的多个节点中确定出下一个出块节点,从而可以根据随机数随机地确定出下一个出块节点,保证确定出块节点时的随机性,使得下一个出块节点无法被预测,有效防止节点之间恶意串通从而非法赚取打包出块的收益。
请参见图4,是本发明实施例基于图1a所示的数据处理系统提供的又一种数据处理方法的流程示意图,本发明实施例的数据处理方法主要是从第一节点和第二节点两侧进行描述的,区块链网络包括多个共识节点,该数据处理方法包括如下步骤:
401、第一节点获取待处理的交易数据,其中,所述第一节点为所述多个节点中的当前出块节点。
402、所述第一节点在生成所述交易数据对应的区块后,获取所述第一节点的目标可信执行环境生成的随机数。
403、所述第一节点向第二节点发送所述区块和所述随机数,其中,所述第二节点为所述多个节点中除所述第一节点之外的任意一个。
404、所述第二节点接收所述区块和所述随机数,并将所述区块添加到区块链中。
405、所述第二节点根据所述随机数从所述多个节点中确定出下一个出块节点。
其中,步骤401~405的具体实现可以参见前述实施例中的相关描述,此处不再赘述。
请参见图5,是本发明实施例的一种数据处理装置的结构示意图,本发明实施例的所述数据处理装置应用于区块链网络包括的第一节点,所述区块链网络包括多个节点,所述装置包括:
获取模块501,用于获取待处理的交易数据,其中,所述第一节点为所述多个节点中的当前出块节点。
所述获取模块501,还用于在生成所述交易数据对应的区块后,获取所述第一节点的目标可信执行环境生成的随机数。
发送模块502,用于向所述多个节点中的其他节点发送所述区块和所述随机数,以使得所述其他节点将所述区块添加到区块链中,并根据所述随机数从所述多个节点中确定出下一个出块节点。
可选的,所述随机数携带有所述目标可信执行环境的数字签名,所述数字签名用于所述其他节点对所述随机数进行验证。
可选的,所述获取模块501,具体用于:
在生成所述交易数据对应的区块后,向所述第一节点的目标可信执行环境下发生成随机数的任务请求,其中,所述任务请求用于指示所述目标可信执行环境在对所述第一节点的身份验证通过后生成随机数。
获取所述目标可信执行环境返回的所述随机数。
可选的,所述装置还包括处理模块503,其中:
所述获取模块501,还用于获取目标可信执行环境的特征参数。
所述处理模块503,还用于通过调用智能合约对所述目标可信执行环境的特征参数进行认证。
所述处理模块503,还用于若认证通过,则通过调用所述智能合约将所述目标可信执行环境的注册信息写入区块链中,以完成所述目标可信执行环境的注册。
可选的,所述注册信息包括所述第一节点的标识、所述目标可信执行环境的地址和公钥。
需要说明的是,本发明实施例的数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图6,是本发明实施例的另一种数据处理装置的结构示意图,本发明实施例的所述数据处理装置应用于区块链网络包括的第二节点,所述区块链网络包括多个节点,所述装置包括:
接收模块601,用于接收第一节点发送的区块和随机数,其中,所述第一节点为所述多个节点中的当前出块节点,所述随机数是由所述第一节点的目标可信执行环境生成的,所述第二节点为所述多个节点中除所述第一节点之外的任意一个。
添加模块602,用于将所述区块添加到区块链中。
确定模块603,用于根据所述随机数从所述多个节点中确定出下一个出块节点。
可选的,所述确定模块603,具体用于:
根据所述随机数从所述多个节点中确定出第三节点。
在与所述多个节点中的其他节点对所述第三节点共识验证通过后,确定所述第三节点为下一个出块节点。
可选的,所述确定模块603,具体用于:
根据所述随机数确定节点标识。
从所述多个节点中确定出所述节点标识对应的第三节点。
可选的,所述随机数包括K个随机数,所述K为大于或等于2的整数,所述确定模块603,具体用于:
根据所述K个随机数从所述多个节点中确定出K个节点。
获取所述K个节点中每个节点的交易池的负载信息。
根据所述每个节点的交易池的负载信息从所述K个节点中确定出对应的交易池的负载最小的目标节点。
在与所述多个节点中的其他节点对所述目标节点共识验证通过后,确定所述目标节点为下一个出块节点。
可选的,所述随机数携带有所述目标可信执行环境的数字签名,所述装置还包括获取模块604和验证模块605,其中:
所述获取模块604,用于获取所述目标可信执行环境的公钥。
所述验证模块605,用于利用所述公钥对所述数字签名进行验证,若验证通过,则触发所述确定模块603根据所述随机数从所述多个节点中确定出下一个出块节点。
可选的,所述获取模块604,具体用于:
获取所述目标可信执行环境的地址。
根据所述目标可信执行环境的地址从所述区块链中查询所述目标可信执行环境的公钥,其中,所述区块链存储有所述多个节点中各个节点的可信执行环境的注册信息。
需要说明的是,本发明实施例的数据处理装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
请参见图7,是本发明实施例的一种节点设备的结构示意图,本发明实施例的所述节点设备包括供电模块等结构,并包括处理器701、存储装置702以及网络接口703。所述处理器701、存储装置702以及网络接口703之间可以交互数据。
所述存储装置702可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置702也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;所述存储装置702还可以包括上述种类的存储器的组合。
所述处理器701可以是中央处理器701(central processing unit,CPU)。在一个实施例中,所述处理器701还可以是图形处理器701(Graphics Processing Unit,GPU)。所述处理器701也可以是由CPU和GPU的组合。在一个实施例中,所述存储装置702用于存储程序指令。所述处理器701可以调用所述程序指令,执行如下操作:
获取待处理的交易数据,其中,所述第一节点为所述多个节点中的当前出块节点。
在生成所述交易数据对应的区块后,获取所述第一节点的目标可信执行环境生成的随机数。
通过所述网络接口703向所述多个节点中的其他节点发送所述区块和所述随机数,以使得所述其他节点将所述区块添加到区块链中,并根据所述随机数从所述多个节点中确定出下一个出块节点。
可选的,所述随机数携带有所述目标可信执行环境的数字签名,所述数字签名用于所述其他节点对所述随机数进行验证。
可选的,所述处理器701,具体用于:
在生成所述交易数据对应的区块后,向所述第一节点的目标可信执行环境下发生成随机数的任务请求,其中,所述任务请求用于指示所述目标可信执行环境在对所述第一节点的身份验证通过后生成随机数。
获取所述目标可信执行环境返回的所述随机数。
可选的,所述处理器701,还用于:
获取目标可信执行环境的特征参数。
通过调用智能合约对所述目标可信执行环境的特征参数进行认证。
若认证通过,则通过调用所述智能合约将所述目标可信执行环境的注册信息写入区块链中,以完成所述目标可信执行环境的注册。
可选的,所述注册信息包括所述第一节点的标识、所述目标可信执行环境的地址和公钥。
具体实现中,本发明实施例中所描述的处理器701、存储装置702以及网络接口703可执行本发明实施例图2或图4提供的一种数据处理方法的相关实施例中所描述的实现方式,也可执行本发明实施例图5提供的一种数据处理装置的相关实施例中所描述的实现方式,在此不再赘述。
请参见图8,是本发明实施例的另一种节点设备的结构示意图,本发明实施例的所述节点设备包括供电模块等结构,并包括处理器801、存储装置802以及网络接口803。所述处理器801、存储装置802以及网络接口803之间可以交互数据。
所述存储装置802可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储装置802也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),固态硬盘(solid-state drive,SSD)等;所述存储装置802还可以包括上述种类的存储器的组合。
所述处理器801可以是中央处理器801(central processing unit,CPU)。在一个实施例中,所述处理器801还可以是图形处理器801(Graphics Processing Unit,GPU)。所述处理器801也可以是由CPU和GPU的组合。在一个实施例中,所述存储装置802用于存储程序指令。所述处理器801可以调用所述程序指令,执行如下操作:
通过所述网络接口803接收第一节点发送的区块和随机数,其中,所述第一节点为所述多个节点中的当前出块节点,所述随机数是由所述第一节点的目标可信执行环境生成的,所述第二节点为所述多个节点中除所述第一节点之外的任意一个。
将所述区块添加到区块链中。
根据所述随机数从所述多个节点中确定出下一个出块节点。
可选的,所述处理器801,具体用于:
根据所述随机数从所述多个节点中确定出第三节点。
在与所述多个节点中的其他节点对所述第三节点共识验证通过后,确定所述第三节点为下一个出块节点。
可选的,所述处理器801,具体用于:
根据所述随机数确定节点标识。
从所述多个节点中确定出所述节点标识对应的第三节点。
可选的,所述随机数包括K个随机数,所述K为大于或等于2的整数,所述处理器801,具体用于:
根据所述K个随机数从所述多个节点中确定出K个节点。
获取所述K个节点中每个节点的交易池的负载信息。
根据所述每个节点的交易池的负载信息从所述K个节点中确定出对应的交易池的负载最小的目标节点。
在与所述多个节点中的其他节点对所述目标节点共识验证通过后,确定所述目标节点为下一个出块节点。
可选的,所述随机数携带有所述目标可信执行环境的数字签名,所述处理器801,还用于:
获取所述目标可信执行环境的公钥。
利用所述公钥对所述数字签名进行验证;
若验证通过,则根据所述随机数从所述多个节点中确定出下一个出块节点。
可选的,所述处理器801,具体用于:
获取所述目标可信执行环境的地址。
根据所述目标可信执行环境的地址从所述区块链中查询所述目标可信执行环境的公钥,其中,所述区块链存储有所述多个节点中各个节点的可信执行环境的注册信息。
具体实现中,本发明实施例中所描述的处理器801、存储装置802以及网络接口803可执行本发明实施例图3或图4提供的一种数据处理方法的相关实施例中所描述的实现方式,也可执行本发明实施例图6提供的一种数据处理装置的相关实施例中所描述的实现方式,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本发明各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(英文:Read-Only Memory,缩写:ROM)或者随机存取存储器(英文:Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种数据处理方法,其特征在于,应用于区块链网络,所述区块链网络包括多个节点,所述方法包括:
第一节点获取待处理的交易数据,其中,所述第一节点为所述多个节点中的当前出块节点;
所述第一节点在生成所述交易数据对应的区块后,向所述第一节点的目标可信执行环境下发生成随机数的任务请求,其中,所述任务请求用于指示所述目标可信执行环境在对所述第一节点的身份验证通过后,生成K个随机数以及所述目标可信执行环境的数字签名,所述K为大于或等于2的整数;
所述第一节点获取所述目标可信执行环境返回的所述K个随机数,所述随机数携带有所述目标可信执行环境的数字签名;
所述第一节点通过广播的方式向所述多个节点中的其他节点发送所述区块和所述K个随机数,以使得所述其他节点将所述区块添加到区块链中,并在基于所述区块链中存储的所述目标可信执行环境的公钥对所述目标可信执行环境的数字签名验证通过后,根据所述K个随机数从所述多个节点中确定出K个节点,根据所述K个节点中每个节点的交易池的负载信息确定出对应的交易池的负载最小的目标节点,以及在对所述目标节点共识验证通过后,确定所述目标节点为下一个出块节点,所述交易池的负载信息包括所述交易池中交易数据的填充情况。
2.根据权利要求1所述的方法,其特征在于,所述第一节点获取待处理的交易数据之前,所述方法还包括:
第一节点获取目标可信执行环境的特征参数;
所述第一节点通过调用智能合约对所述目标可信执行环境的特征参数进行认证;
若认证通过,则所述第一节点通过调用所述智能合约将所述目标可信执行环境的注册信息写入区块链中,以完成所述目标可信执行环境的注册。
3.根据权利要求2所述的方法,其特征在于,所述注册信息包括所述第一节点的标识、所述目标可信执行环境的地址和公钥。
4.一种数据处理方法,其特征在于,应用于区块链网络,所述区块链网络包括多个节点,所述方法包括:
第二节点接收第一节点通过广播的方式发送的区块和K个随机数,其中,所述第一节点为所述多个节点中的当前出块节点,所述K个随机数是由所述第一节点的目标可信执行环境在对所述第一节点的身份验证通过后生成的,所述随机数携带有所述目标可信执行环境的数字签名,所述第二节点为所述多个节点中除所述第一节点之外的任意一个,所述K为大于或等于2的整数;
所述第二节点将所述区块添加到区块链中;
所述第二节点获取所述区块链中存储的所述目标可信执行环境的公钥,并利用所述公钥对所述数字签名进行验证;
若验证通过,则所述第二节点根据所述K个随机数从所述多个节点中确定出K个节点;
所述第二节点获取所述K个节点中每个节点的交易池的负载信息,所述交易池的负载信息包括所述交易池中交易数据的填充情况;
所述第二节点根据所述每个节点的交易池的负载信息从所述K个节点中确定出对应的交易池的负载最小的目标节点,并在与所述多个节点中的其他节点对所述目标节点共识验证通过后,确定所述目标节点为下一个出块节点。
5.根据权利要求4所述的方法,其特征在于,所述第二节点获取所述区块链中存储的所述目标可信执行环境的公钥,包括:
所述第二节点获取所述目标可信执行环境的地址;
所述第二节点根据所述目标可信执行环境的地址从所述区块链中查询所述目标可信执行环境的公钥,其中,所述区块链存储有所述多个节点中各个节点的可信执行环境的注册信息。
6.一种数据处理装置,其特征在于,应用于区块链网络包括的第一节点,所述区块链网络包括多个节点,所述装置包括:
获取模块,用于获取待处理的交易数据,其中,所述第一节点为所述多个节点中的当前出块节点;
所述获取模块,还用于在生成所述交易数据对应的区块后,向所述第一节点的目标可信执行环境下发生成随机数的任务请求,其中,所述任务请求用于指示所述目标可信执行环境在对所述第一节点的身份验证通过后,生成K个随机数以及所述目标可信执行环境的数字签名,所述K为大于或等于2的整数;
所述获取模块,还用于获取所述目标可信执行环境返回的所述K个随机数,所述随机数携带有所述目标可信执行环境的数字签名;
发送模块,用于通过广播的方式向所述多个节点中的其他节点发送所述区块和所述K个随机数,以使得所述其他节点将所述区块添加到区块链中,并在基于所述区块链中存储的所述目标可信执行环境的公钥对所述目标可信执行环境的数字签名验证通过后,根据所述K个随机数从所述多个节点中确定出K个节点,根据所述K个节点中每个节点的交易池的负载信息确定出对应的交易池的负载最小的目标节点,以及在对所述目标节点共识验证通过后,确定所述目标节点为下一个出块节点,所述交易池的负载信息包括所述交易池中交易数据的填充情况。
7.一种数据处理装置,其特征在于,应用于区块链网络包括的第二节点,所述区块链网络包括多个节点,所述装置包括:
接收模块,用于接收第一节点通过广播的方式发送的区块和K个随机数,其中,所述第一节点为所述多个节点中的当前出块节点,所述K个随机数是由所述第一节点的目标可信执行环境在对所述第一节点的身份验证通过后生成的,所述随机数携带有所述目标可信执行环境的数字签名,所述第二节点为所述多个节点中除所述第一节点之外的任意一个,所述K为大于或等于2的整数;
添加模块,用于将所述区块添加到区块链中;
获取模块,用于获取所述区块链中存储的所述目标可信执行环境的公钥;
验证模块,用于利用所述公钥对所述数字签名进行验证;
确定模块,用于若验证通过,则根据所述K个随机数从所述多个节点中确定出K个节点;获取所述K个节点中每个节点的交易池的负载信息,所述交易池的负载信息包括所述交易池中交易数据的填充情况;根据所述每个节点的交易池的负载信息从所述K个节点中确定出对应的交易池的负载最小的目标节点,并在与所述多个节点中的其他节点对所述目标节点共识验证通过后,确定所述目标节点为下一个出块节点。
8.一种计算机可读存储介质,其特征在于,所述计算机可读 存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行,用以执行如权利要求1-3任一项所述的数据处理方法或者如权利要求4或5所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010534739.6A CN113010894B (zh) | 2020-06-12 | 2020-06-12 | 一种数据处理方法、装置及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010534739.6A CN113010894B (zh) | 2020-06-12 | 2020-06-12 | 一种数据处理方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113010894A CN113010894A (zh) | 2021-06-22 |
CN113010894B true CN113010894B (zh) | 2022-12-09 |
Family
ID=76383040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010534739.6A Active CN113010894B (zh) | 2020-06-12 | 2020-06-12 | 一种数据处理方法、装置及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113010894B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115719272A (zh) * | 2021-08-26 | 2023-02-28 | 华为技术有限公司 | 数据处理方法、系统、装置、计算机设备以及存储介质 |
CN113867690B (zh) * | 2021-12-07 | 2022-03-04 | 中移(上海)信息通信科技有限公司 | 一种区块链中随机数的生成方法、装置及区块链节点 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105978917B (zh) * | 2016-07-19 | 2019-05-10 | 恒宝股份有限公司 | 一种用于可信应用安全认证的系统和方法 |
CN109792437B (zh) * | 2017-05-16 | 2021-01-12 | 北京大学深圳研究生院 | 一种用于去中心化域名系统的共识方法 |
CN108769147B (zh) * | 2018-05-11 | 2021-12-31 | 北京奇虎科技有限公司 | 基于超级节点在共享计算中工作量证明方法及装置 |
CN109743173B (zh) * | 2018-12-20 | 2021-07-20 | 弗洛格(武汉)信息科技有限公司 | 区块链中出块节点确定方法、区块验证方法及区块链系统 |
CN110011974B (zh) * | 2019-03-07 | 2021-08-10 | 港融科技有限公司 | 区块链的记账方法、装置、终端和计算机可读存储介质 |
CN110210865A (zh) * | 2019-06-17 | 2019-09-06 | 北京艾摩瑞策科技有限公司 | 基于区块链的打包方法及装置 |
CN110445616B (zh) * | 2019-07-15 | 2022-03-04 | 杭州复杂美科技有限公司 | 一种区块打包节点的打包顺序确定方法、设备及存储介质 |
-
2020
- 2020-06-12 CN CN202010534739.6A patent/CN113010894B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113010894A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112446785B (zh) | 跨链交易方法、系统、装置、设备和存储介质 | |
WO2021179655A1 (zh) | 跨区块链的数据迁移方法、装置、设备及存储介质 | |
US11501533B2 (en) | Media authentication using distributed ledger | |
CN111615818B (zh) | 一种区块链构建方法及区块链节点 | |
KR101660627B1 (ko) | 암호화 화폐의 거래를 보호하는 방법 및 장치 | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
CN111444550A (zh) | 基于区块链的业务数据的验证方法、装置及可读存储介质 | |
CN111460458B (zh) | 一种数据处理方法、相关装置及计算机可存储介质 | |
WO2022100679A1 (zh) | 一种数据通信方法、装置、计算机设备及存储介质 | |
CN110096894B (zh) | 一种基于区块链的数据匿名共享系统及方法 | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN110400217B (zh) | 智能合约的规则变更处理方法及装置 | |
CN113010894B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
US20230079672A1 (en) | Cross-chain data transmission method and apparatus, computer device, storage medium, and computer program product | |
CN113255014B (zh) | 一种基于区块链的数据处理方法以及相关设备 | |
JP2024505692A (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
Xue et al. | STBC: A novel blockchain-based spectrum trading solution | |
CN111367923A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN114297304A (zh) | 一种产品信息区块链交易存储方法、服务器及可读介质 | |
Kumar et al. | Ultra-lightweight blockchain-enabled RFID authentication protocol for supply chain in the domain of 5G mobile edge computing | |
CN111597537B (zh) | 基于区块链网络的证书签发方法、相关设备及介质 | |
CN111385096A (zh) | 一种区块链网络、签名处理方法、终端及存储介质 | |
CN115705601A (zh) | 数据处理方法、装置、计算机设备及存储介质 | |
US20230325833A1 (en) | Blockchain-based data processing method and apparatus, device, storage medium, and program product |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40045488 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |