一种区块数据的处理方法、装置、设备和存储介质与流程

文档序号:16001936发布日期:2018-11-20 19:34阅读:162来源:国知局

本发明实施例涉及区块链中数据处理领域,尤其涉及一种区块数据的处理方法、装置、设备和存储介质。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,区块链主要解决陌生节点之间的信任和安全问题。其中,共识机制是区块链技术的重要组成部分,区块生成权是节点基于共识机制争取到的。共识机制主要包括基于挖矿的共识算法,例如工作量证明机制(Proof of Work,POW)和权益证明机制(Proof of Stake,POS)等基于竞争得到区块生成权的机制,以及基于非挖矿的共识算法,例如拜占庭容错机制(Byzantine Fault Tolerance,BFT)和实用拜占庭容错机制(Practical Byzantine Fault Tolerance,PBFT)等基于投票得到区块生成权的机制。

目前,在非挖矿的共识机制中,区块链系统中区块生成节点对事务交易请求进行处理形成区块,并发送给其他节点,即区块记录节点,其他节点进行同样的处理过程,以验证处理结果是否与区块数据一致,若一致则认可该区块并将该区块添加到区块链中,否则不认可该区块并丢弃。

现有技术中区块数据处理时,仅仅是对节点的交易数据写入区块进行数据未被修改的验证,将共识通过的区块加入区块链,而缺少交易数据的真实性验证,存在区块生成节点恶意篡改交易数据的情况;而且在共识通过时没有具体的节点奖励机制,可能会导致各个节点上传的价值数据较少,或者各个节点会上传大量的垃圾数据。



技术实现要素:

本发明实施例提供了一种区块数据的处理方法、装置、设备和存储介质,以实现区块数据的真实性验证和共识通过节点的奖励,降低区块生成节点恶意篡改交易数据的可能性,调动节点上传真实和高价值交易数据的积极性。

第一方面,本发明实施例提供了一种区块数据的处理方法,该方法包括:

根据区块链系统中待验证节点的交易记录,生成区块数据,所述待验证节点为所述区块链系统中的任一节点;

将所述区块数据发送给所述待验证节点的关联节点,以使所述关联节点根据关联的交易属性信息验证所述区块数据;

接收所述关联节点对所述区块数据的验证反馈,并根据所述验证反馈与所述待验证节点的预付金确定对所述待验证节点的奖惩结果。

第二方面,本发明实施例提供了一种区块数据的处理方法,该方法包括:

接收区块链系统中的区块生成节点发送的区块数据;

根据与所述区块数据关联的交易属性信息验证所述区块数据,并向所述区块生成节点发送验证反馈,以使所述区块生成节点根据所述验证反馈与所述待验证节点的预付金确定对所述待验证节点的奖惩结果。

第三方面,本发明实施例提供了一种区块数据的处理装置,该装置包括:

区块生成模块,用于根据区块链系统中待验证节点的交易记录,生成区块数据,所述待验证节点为所述区块链系统中的任一节点;

第一区块发送模块,用于将所述区块数据发送给所述待验证节点的关联节点,以使所述关联节点根据关联的交易属性信息验证所述区块数据;

节点奖惩模块,用于接收所述关联节点对所述区块数据的验证反馈,并根据所述验证反馈与所述待验证节点的预付金确定对所述待验证节点的奖惩结果。

第四方面,本发明实施例提供了一种区块数据的处理装置,该装置包括:

区块接收模块,用于接收区块链系统中的区块生成节点发送的区块数据;

区块验证模块,用于根据与所述区块数据关联的交易属性信息验证所述区块数据,并向所述区块生成节点发送验证反馈,以使所述区块生成节点根据所述验证反馈与所述待验证节点的预付金确定对所述待验证节点的奖惩结果。

第五方面,本发明实施例提供了一种设备,该设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述第一方面中所述的区块数据的处理方法。

第六方面,本发明实施例提供了一种设备,该设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述第二方面中所述的区块数据的处理方法。

第七方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面中所述的区块数据的处理方法。

第八方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第二方面中所述的区块数据的处理方法。

本发明实施例提供的一种区块数据的处理方法、装置、设备和存储介质,通过关联的交易属性信息实现对区块数据的验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1A为本发明实施例一提供的一种区块数据的处理方法的流程图;

图1B为本发明实施例一提供的方法中对于区块链系统的原理架构图;

图1C为本发明实施例一提供的方法中根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果的方法流程图;

图2为本发明实施例二提供的一种区块数据的处理方法的流程图;

图3A为本发明实施例三提供的一种区块数据的处理方法的流程图;

图3B为本发明实施例三提供的方法中根据与区块数据关联的交易属性信息验证区块数据的方法流程图;

图4为本发明实施例四提供的一种区块数据的处理方法的流程图;

图5为本发明实施例五提供的区块链系统中各个节点交互的一种区块数据的处理方法的流程图;

图6为本发明实施例六提供的应用于具体区块链系统中的一种区块数据的处理方法的流程图;

图7为本发明实施例七提供的一种区块数据的处理装置的结构示意图;

图8为本发明实施例八提供的一种区块数据的处理装置的结构示意图;

图9为本发明实施例九提供的一种设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1A为本发明实施例一提供的一种区块数据的处理方法的流程图,本实施例应用于任一区块链系统的区块生成节点中,区块链可以是公有链、联盟链或私有链,区块链系统通常都会包括多个节点,各个节点基于共识机制取得区块生成权成为区块生成节点。本发明实施例的方案可以适用于如何验证区块数据真实性和激励节点上传高价值数据的区块处理过程。本实施例提供的一种区块数据的处理方法可以由本发明实施例提供的应用于区块链系统的区块生成节点中的区块数据的处理装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在承载区块链系统节点的计算设备中。具体的,参考图1A,该方法可以包括如下步骤:

S110,根据区块链系统中待验证节点的交易记录,生成区块数据。

其中,区块链系统是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。本实施例中的区块链也可以是基于公有链的智能合约或去中心化应用(Decentralized Application,DAPP),并且在区块链中发行代币。可选的,区块链系统中可以包括多个节点,各个节点处理自身对应的交易数据,在各个节点中的某一特定节点需要将自身的交易数据上传到区块链中存储时,可以通过发送对应的交易请求,由区块链中的各个节点进行对应的区块处理。其中,区块链系统中需要将自身的交易数据上传到区块链中的特定节点为区块链系统中的待验证节点,可选的,待验证节点可以是区块链系统中的任一节点。具体的,待验证节点的交易记录为该节点需要上传到区块链中的自身交易数据。

可选的,待验证节点的交易请求由区块链系统中的区块生成节点进行处理,其中,区块生成节点可以由各个节点基于区块链中的共识机制取得区块生成权来确定。共识机制主要包括基于挖矿的共识算法,例如工作量证明机制(Proof of Work,POW)和权益证明机制(Proof of Stake,POS)等基于竞争得到区块生成权的机制,以及基于非挖矿的共识算法,例如拜占庭容错机制(Byzantine Fault Tolerance,BFT)和实用拜占庭容错机制(Practical Byzantine Fault Tolerance,PBFT)等基于投票得到区块生成权的机制。优选的,在本实施例中,区块链中的各个节点基于非挖矿的共识算法取得区块生成权,确定区块生成节点,其他节点作为区块记录节点对生成的区块数据进行验证。

具体的,区块链系统中的待验证节点在需要上传自身的交易记录到区块链中存储时,会在区块链系统中发送对应的交易请求,区块生成节点根据该交易请求中的待验证节点的交易记录进行处理,生成对应的区块数据。

可选的,在待验证节点发送对应的交易请求之前,区块链系统中的各个节点会预先在区块链中广播自身的交易记录,并附加自身的节点标识,即每条交易记录对应一个特定的节点标识,区块链中的其他节点在收到广播的交易记录时,将其存储在自身的交易存储区中。也就是区块链系统各个节点的交易存储区中预先根据对应的节点标识存储了区块链系统中其他全部节点的交易记录。

具体的,区块链系统中的待验证节点在需要上传自身的交易记录到区块链中存储时,会在区块链系统中发送对应的交易请求,区块生成节点根据该交易请求中的待验证节点的交易记录进行处理,首先可以根据待验证节点的节点标识,在自身的交易存储区中获取对应标识的多条交易记录放入区块,对该多条交易记录进行哈希运算,并将哈希运算的结果利用自身的私钥加密,将加密后的哈希结果一并放入区块中,生成对应的区块数据。

S120,将区块数据发送给待验证节点的关联节点,以使关联节点根据关联的交易属性信息验证区块数据。

其中,关联节点是区块链各个节点中自身的交易数据与待验证节点中的交易数据具有较高关联性的节点,并且待验证节点的关联节点包括待验证节点自己。本实施例中,为了确定关联节点,区块链系统中的各个节点会根据自身对应处理的交易数据预先在本地的缓存或数据库中写入相应的交易属性信息。其中,交易属性信息是区块链系统中的各个节点根据自身对应处理的交易数据在本地的缓存或数据库中预先写入的交易信息,可以是与各个节点处理的交易数据相关的初始交易信息,也可以包括对应节点交易数据的上限值、下限值等基本信息。

可选的,如图1B所示,本实施例中在包含各个节点11区块链系统10之外还架构了一个区块链平台20,区块链平台可以与区块链系统中的各个节点进行交互。具体的,区块链系统中的各个节点在本地存储对应的交易属性信息后,区块链平台会根据各个节点分别存储的交易属性信息判断各个节点之间的关联性,预先确定各个节点的关联节点,关联节点可以包括区块生成节点在内。示例性的,区块链平台可以通过对各个节点的交易属性信息进行聚类分析,从而得到各个节点的关联节点。可选的,在区块链系统节点的交易属性信息更改时,区块链平台会根据更改的交易属性信息及时更新各个节点的关联节点。

可选的,区块生成节点根据待验证节点的交易记录生成对应的区块数据后,根据待验证节点的节点标识,确定待验证节点的关联节点,并将生成的区块数据分别发送给对应的关联节点,其中,还需要将区块数据发送给待验证节点进行自身验证,以防止区块生成节点对区块数据的恶意生成。。可选的,本实施例的区块链系统中共识算法执行区块数据的共识过程时,参与共识的区块链节点分别为待验证节点和待验证节点的其他各个关联节点,其中,区块生成节点也可以为待验证节点的关联节点。可选的,在执行区块数据的验证过程时,区块记录节点接收到区块生成节点发送的区块数据,首先会根据现有技术对区块数据的有效性进行验证,各个区块记录节点可以利用对应的哈希运算对区块数据的有效性进行验证,验证通过时,区块记录节点根据区块数据中交易记录对应的节点标识和序号,确定区块记录节点自身交易存储区中存储的对应的交易记录,并结合区块记录节点中待验证节点的关联节点中本地存储的关联的交易属性信息验证区块数据中交易记录中的正确性和真实性,并将验证结果发送给区块生成节点,进行验证反馈。

S130,接收关联节点对区块数据的验证反馈,并根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果。

其中,验证反馈是各个关联节点对区块数据的验证结果,确定是否验证通过。待验证节点的预付金是待验证节点在区块处理前期,需要广播自己的交易记录到区块链的全部节点,全部节点将该交易记录存储到自己的交易存储区中,待验证节点发送对应交易请求时,区块生成节点根据该交易请求从交易存储区中提取出待验证节点对应的交易记录,并通知该待验证节点预支付一定数量的代币,并存放在区块链平台中,以在后期获得一定的收益。

具体的,通过区块生成节点接收的关联节点发送的验证反馈,并按照本实施例中的预设共识算法进行共识,可以根据验证反馈得到对应的共识结果,该共识结果可以说明该区块数据是否有效、正确和真实,也就是区块链中的各个节点对该区块数据的有效性、真实性和/或正确性是否达到共识,此时为了调动待验证节点上传真实和高价值交易数据的积极性,以及对上传虚假交易信息的待验证节点进行惩罚,还可以根据区块链平台中待验证节点请求上传交易数据时预支付的预付金以及对应的共识结果对待验证节点进行相应奖惩。

可选的,在本实施例的基础上,如图1C所示,根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果,可以具体包括:

S131,根据验证反馈判断验证通过的关联节点数量是否小于验证阈值,若是,执行S133;若否,执行S132。

其中,验证阈值是由区块链系统中的共识机制确定的,为区块共识通过时对应的对区块数据验证通过的节点数量。例如,基于PBFT共识算法中对应的验证阈值为(2N+1)/3,其中N为参与共识的总节点数。

S132,根据待验证节点的预付金和区块数据对应的奖励比例确定相应的奖励金,对待验证节点进行奖励。

其中,在验证通过的关联节点数量大于或等于验证阈值时,可以对验证通过的待验证节点进行奖励,为了激励各个节点处理高价值的交易数据,可以在区块链平台中引入奖励比例的内容,该奖励比例可以由区块数据中对应交易记录的价值和数量预先确定。具体的,待验证节点上传的交易记录价值越高、数量越多,则对应的奖励比例越大,从而在区块链系统中设置相应的激励机制,调动各个节点上传真实和高价值交易数据的积极性。

可选的,各个关联节点在对区块数据进行验证后,区块生成节点接收各个关联节点发送的对应的验证反馈,并根据验证反馈结果确定对区块数据验证通过的关联节点数量,若验证通过的关联节点数量大于或等于区块链系统对应的共识机制中的验证阈值,达到对应的共识比例,则说明该区块数据有效、正确和真实,区块链中的各个节点对该区块数据的有效性、正确性和/或真实性达到共识,此时将该区块数据上传到对应的区块链中,还可以根据上传的区块数据在自身的交易存储区中删除区块数据对应的交易记录。同时将该区块共识通过的结果在区块链全部节点中广播,其他节点同样将该区块数据上传到对应的区块链中,在自身的交易存储区中删除区块数据对应的交易记录。可选的,为了调动各个节点上传真实和高价值交易数据的积极性,可以根据区块链平台中待验证节点请求上传交易数据时预支付的预付金、以及区块数据中上传的交易记录对应的奖励比例确定待验证节点的具体奖励金,并通知区块链平台向待验证节点返还对应的奖励金,从而对待验证节点进行奖励。其中,预付金和奖励金均可以通过区块链平台中发行的代币实现。

S133,扣除待验证节点的预付金,对待验证节点进行惩罚。

具体的,在接收关联节点对区块数据的验证反馈之后,如果验证通过的关联节点数量小于验证阈值,说明没有达到对应的共识比例,节点对于该区块数据的共识未通过,该区块数据可能不是有效、正确和真实的,此时舍弃该区块数据,并通知区块链平台扣除待验证节点在请求上传交易数据时预支付的预付金,对该待验证节点进行惩罚,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

本实施例提供的技术方案,通过关联的交易属性信息实现对区块数据的真实性验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

实施例二

图2为本发明实施例二提供的一种区块数据的处理方法的流程图。本实施例是在上述实施例一的基础上进行优化。具体的,参照图2,本实施例可以包括如下步骤:

S210,根据区块链系统中待验证节点的交易记录,生成区块数据。

S220,将区块数据发送给待验证节点的关联节点,以使关联节点根据关联的交易属性信息验证区块数据。

S230,接收关联节点对区块数据的验证反馈,对参与验证过程的除待验证节点之外的其他节点进行奖励。

具体的,为了激励区块链系统各个节点中待验证节点的关联节点对区块数据进行验证,区块生成节点可以在接收到关联节点对区块数据的验证反馈后,通知区块链平台根据待验证节点的预付金对参与验证过程的除待验证节点之外的其他节点进行奖励,包括区块生成节点。其中,对参与验证过程的其他节点的奖励由区块链平台统一分配相同数量的代币。

S240,判断验证通过的关联节点数量是否小于验证阈值,若否,则执行S250;若是,则执行S260。

S250,根据待验证节点的预付金和区块数据对应的奖励比例对待验证节点进行奖励,并将区块数据发送给区块链系统中的其他节点。

具体的,在验证通过的关联节点数量大于或等于验证阈值,达到对应的共识比例时,在通知区块链平台根据待验证节点的预付金和区块数据对应的奖励比例对待验证节点进行奖励之外,区块生成节点还可以将该区块数据发送给区块链系统中的全部其他节点,使其他节点将该区块数据上传到自身存储的区块链中,确保区块链的一致性。可选的,其他节点将该区块数据上传到自身存储的区块链中时,还可以将自身的交易存储区中与该区块数据对应的交易记录删除,增大存储空间。

S260,扣除待验证节点的预付金,对待验证节点进行惩罚。

本实施例提供的技术方案,通过关联的交易属性信息实现对区块数据的真实性验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

实施例三

图3A为本发明实施例三提供的一种区块数据的处理方法的流程图,本实施例应用于任一区块链系统的区块记录节点中,区块链可以是公有链、联盟链或私有链,区块链系统通常都会包括多个节点,各个节点基于共识机制取得区块生成权成为区块生成节点,区块记录节点为区块链系统中除区块生成节点之外的其他节点。本发明实施例的方案可以适用于如何验证区块数据真实性和激励节点上传高价值数据的区块处理过程。本实施例提供的一种区块数据的处理方法可以由本发明实施例提供的应用于区块链系统的区块记录节点中的区块数据的处理装置来执行,该装置可以通过软件和/或硬件的方式来实现,并集成在承载区块链系统节点的计算设备中。具体的,参考图3A,该方法可以包括如下步骤:

S310,接收区块链系统中的区块生成节点发送的区块数据。

具体的,本实施例中执行区块数据的处理方法的区块记录节点为本实施例中区块数据中的交易记录对应的待验证节点的关联节点。优选的,区块链系统中的区块生成节点可以是基于区块链系统中非挖矿的共识机制确定的。可选的,区块链系统中待验证节点的各个关联节点分别接收区块生成节点发送的区块数据,参与到区块链系统中对于区块数据的验证过程中。

可选的,在关联节点接收对应的区块数据之前,区块链系统中的各个节点会预先在区块链中广播自身的交易记录,并附加自身的节点标识,即每条交易记录对应一个特定的节点标识,且每条交易记录包括相应的序号,区块链中的其他节点在收到广播的交易记录时,将其存储在自身的交易存储区中。也就是区块链系统各个节点的交易存储区中预先根据对应的节点标识存储了区块链系统中其他全部节点处理的各个交易记录。

S320,根据与区块数据关联的交易属性信息验证区块数据,并向区块生成节点发送验证反馈,以使区块生成节点根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果。

具体的,区块链系统中的各个节点在本地存储对应的交易属性信息后,区块链平台可以通过各个节点的交易属性信息判断各个节点的关联性,预先确定各个节点的关联节点,关联节点可以包括区块生成节点在内。示例性的,区块链平台可以通过对各个节点的交易属性信息进行聚类分析,从而得到各个节点的关联节点。优选的,本实施例中区块生成节点发送区块数据时,可以仅发送给待验证节点的关联节点,由待验证节点的关联节点接收区块数据,执行后续的区块数据验证过程,其中,区块生成节点还需要将区块数据发送给区块记录节点中的待验证节点进行自身验证。

可选的,各个关联节点在接收到区块数据后,首先会根据现有技术对区块数据的有效性进行验证,各个关联节点可以利用区块生成节点的公钥对区块数据中的哈希结果进行验证,若两者一致则认为该区块数据是由区块生成节点发出并且在传输过程中没有被篡改。可选的,后续待验证节点和各个关联节点按照本实施例中的预设共识算法进行共识,示例性的,待验证节点和各个关联节点根据接收到的区块数据中的交易记录对应的节点标识在自身的交易存储区中获取对应的交易记录,并将区块数据中的交易记录与获取的交易记录进行对比判断是否相同,以验证交易记录的正确性。可选的,在上述验证方案的基础上,各个关联节点还可以根据与区块数据中的交易记录关联的自身存储的交易属性信息,验证区块数据中的交易记录的真实性,防止待验证节点在区块链中上传虚假的交易信息。其中,区块生成节点的公钥可以从区块链系统中的授权认证中心(Certificate Authority,CA)处获取。CA认证中心是区块链系统中负责发放和管理数字证书的权威机构,并作为区块链中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。

其中,关联节点中自身存储的交易属性信息与待验证节点的交易记录具有一定的相关联性。进一步的,在各个关联节点对区块数据的有效性、正确性和/ 或真实性进行验证后,需要向区块生成节点发送相应的验证反馈,以使区块生成节点根据验证结果对区块数据对应的待验证节点进行相应奖惩,从而在区块链系统中设定以激励机制,调动各个节点上传真实和高价值的交易数据的积极性。

进一步的,在本实施例的基础上,在执行区块数据的验证过程时,关联节点接收到区块生成节点发送的区块数据,首先会根据现有技术对区块数据的有效性进行验证,各个区块记录节点可以利用对应的哈希运算对区块数据的有效性进行验证,验证通过时,区块记录节点根据区块数据中交易记录对应的节点标识和序号,确定区块记录节点自身交易存储区中存储的对应的交易记录验证正确性,并结合区块记录节点中待验证节点的关联节点中本地存储的关联的交易属性信息验证区块数据中交易记录中的真实性,并将验证结果发送给区块生成节点,进行验证反馈,以使区块生成节点区块链平台中待验证节点请求上传交易数据时预支付的预付金以及对应的验证反馈结果确定对待验证节点的奖惩结果,以调动待验证节点上传真实和高价值交易数据的积极性。

可选的,如图3B所示,根据与区块数据关联的交易属性信息验证区块数据,可以具体包括:

S321,根据初始验证算法对区块数据中的交易结果进行初始验证。

具体的,交易结果为区块数据中进行哈希运算加密后的交易记录,初始验证算法可以是现有技术中对区块数据中的解密后的哈希结果进行验证的算法。可选的,区块记录节点中的待验证节点和关联节点在接收到区块生成节点发送的区块数据时,首先会利用区块生成节点的公钥解密区块数据中的加密哈希结果,得到解密后的哈希结果,然后对区块数据中的多条交易记录进行哈希运算,比较运算得到的哈希结果和区块数据中解密后的哈希结果,若两者一致则认为该区块数据是由区块生成节点发出并且在传输过程中没有被篡改。

S322,根据区块数据中交易记录对应的节点标识和序号,确定本地存储的对应交易记录以及关联的交易属性信息,并验证区块数据中的交易记录的正确性和真实性。

具体的,关联节点在对区块数据中的交易结果进行初始验证,且验证通过后,还需要进一步对区块数据中交易记录的正确性和真实性进行验证。关联节点可以根据区块数据中交易记录对应的节点标识和序号,确定待验证节点和关联节点自身的交易存储区中本地存储的待验证节点的交易记录,以及相关联的交易属性信息,将区块数据中的交易记录与本地获取的交易记录进行对比判断是否相同,以验证交易记录的正确性,可以分别对区块数据中的交易记录和本地存储的交易记录进行摘要计算,对比摘要计算结果是否相同,以加快对比速度,验证通过时,还需要根据相关联的交易属性信息验证区块数据中的交易记录的真实性。

可选的,在对区块数据进行真实性验证之前,区块链平台还可以预先根据区块数据中交易记录的类型和处理需求确定是否需要进行区块数据中交易记录的真实性验证,需要的话则根据本实施例中的方法对区块数据进行验证;否则直接按照现有的区块验证方法进行验证,即可以仅进行区块数据的有效性和正确性验证。可选的,可以根据本实施例中的交易价值和系统事务处理速率 (Transactions Per Second,TPS)需求确定具体的验证方法。示例性的,如果区块数据中是非金融交易记录或者是对TPS要求不高的交易记录,则由区块生成节点根据节点标识确定待验证节点的关联节点,进行本实施例中的区块数据的真实性验证过程,如果区块数据是金融交易(转账、支付、购买、结算等) 或者对TPS要求较高的交易记录,则按照现有的BFT、PBFT等共识算法进行验证,不进行真实性验证。

本实施例提供的技术方案,通过关联的交易属性信息实现对区块数据的真实性验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

实施例四

图4为本发明实施例四提供的一种区块数据的处理方法的流程图。本实施例是在上述实施例三的基础上进行优化。具体的,参照图4,本实施例可以包括如下步骤:

S410,对区块链系统中全部节点的交易记录结合对应的节点标识进行本地存储,以便后续进行数据验证。

具体的,在区块链系统中,执行本实施例中的区块数据的处理方法之前,需要各个节点将自身的交易记录在区块链系统中进行广播,以使各个节点可以在自身的交易存储区中存储区块系统中的全部其他节点的交易记录。可选的,各个节点对区块链系统中全部其他节点广播的交易记录结合对应的节点标识进行本地存储,其中广播的交易记录还包括相应的序号,以便后续验证时根据节点标识和交易序号及时提取本地存储的对应的交易记录,对区块数据进行验证。

S420,接收区块链系统中的区块生成节点发送的区块数据。

S430,根据初始验证算法对区块数据中的交易结果进行初始验证。

S440,根据区块数据中交易记录对应的节点标识和序号,确定本地存储的对应交易记录以及关联的交易属性信息,并验证区块数据中的交易记录的正确性和真实性。

S450,向区块生成节点发送验证反馈,以使区块生成节点根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果。

本实施例提供的技术方案,通过关联的交易属性信息实现对区块数据的真实性验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

实施例五

图5为本发明实施例五提供的区块链系统中各个节点交互的一种区块数据的处理方法的流程图,本实施例应用于区块链系统中。本实施例是在上述实施例的基础上,对区块链系统的各个节点的交互过程进行进一步解释说明。如图5 所示,本实施例可以具体包括如下步骤:

S510,区块生成节点根据区块链系统中待验证节点的交易记录,生成区块数据。

S520,区块生成节点将区块数据发送给待验证节点的关联节点。

S530,各个关联节点接收区块链系统中的区块生成节点发送的区块数据。

S540,各个关联节点根据与区块数据关联的交易属性信息验证区块数据,并向区块生成节点发送验证反馈。

S550,区块生成节点接收关联节点对区块数据的验证反馈,对参与验证过程的除待验证节点之外的其他节点进行奖励。

S560,判断验证通过的关联节点数量是否小于验证阈值,若否,则执行S570;若是,则执行S580。

S570,根据待验证节点的预付金和区块数据对应的奖励比例对待验证节点进行奖励,并将区块数据发送给区块链系统中的其他节点。

S580,扣除待验证节点的预付金,对待验证节点进行惩罚。

本实施例提供的技术方案,通过关联的交易属性信息实现对区块数据的真实性验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

实施例六

图6为本发明实施例六提供的应用于具体区块链系统中的一种区块数据的处理方法的流程图。本实施例是在上述实施例的基础上给出具体应用到智能合约中的应用场景,智能合约通过发行代币对各个节点进行奖惩。本实施例中,区块链系统中包括10个节点A-J,区块生成节点为节点B,其他节点均为区块链系统中的区块记录节点。本实施例中的区块生成节点由区块链系统中的各个节点进行投票选取产生,例如PBFT共识中的主节点,RAFT中的Leader节点,在区块生成节点失效时会选举出新的区块生成节点。

具体的,如果需要进行真实性验证,则每个节点均预先在本地的缓存或数据库中写入对应的交易属性信息。其中,节点A写入了“与某银行间的转账记录、某商品物流记录、某商品买卖流通记录、某公司人员履历记录等”,节点B 同样写入了“与某银行间的转账记录、某商品物流记录、某商品买卖流通记录、某公司人员履历记录等”,节点C写入了“与某银行间的转账记录、某商品物流记录、某商品买卖流通记录等”,节点D写入了“与某银行间的转账记录、某公司人员履历记录等”,节点E-F只写入了“某商品买卖流通记录等”,节点G-J 未写入任何上述相关信息,仅写入“某类证件和证书的登记信息”。后续可以通过各个节点写入的交易属性信息对待验证区块中的区块数据进行真实性验证。

如果不需要进行真实性验证,则无需进行上述每个节点在本地的缓存或数据库中写入对应的交易属性信息的步骤。

具体的,区块链平台认为节点A-C写入的交易属性信息的类型结合数量的价值最大,节点G-J写入的交易属性信息的类型价值其次,节点E-F写入的交易属性信息的类型价值最低,因此在后续对共识通过的待验证节点进行奖励时,奖励比例与确定的价值成正比。可选的,假设节点A中的交易记录需要上传到区块链中,则区块链平台通过预先对10个节点中的交易属性信息进行聚类分析,确定节点A的关联节点为节点B-F,其中,强关联节点为节点B-D,普通关联节点为节点E-F。

具体的,如图6所示,应用于具体区块链系统中的区块数据的处理方法可以包括如下步骤:

S610,区块生成节点B接收节点A的交易请求,在自身的交易存储区中查找节点A的交易记录,进行处理生成区块数据。

具体的,区块生成节点B从自身的交易存储区中取出节点A的多条交易记录,并根据节点标识确定节点A对应的关联节点B-F,确定参与该轮共识的关联节点A-F。然后区块生成节点B通知节点A预支付1个代币存放在区块链平台中,随后开始共识,进行共识时区块生成节点B将节点A的多条交易记录放入区块中,并对该多条交易记录进行哈希运算,将哈希运算的结果利用自己的私钥加密,并将加密后的哈希结果一并放入区块中,生成对应的区块数据。

S620,区块生成节点B将生成的区块数据分别发送给节点A和节点C-F等关联节点。

S630,节点A和节点C-F对区块数据的有效性、正确性和真实性进行验证,并向区块生成节点B反馈验证结果。

具体的,节点A和节点C-F分别对接收到的区块数据进行哈希解密,验证交易结果的有效性,验证通过后,通过节点A和节点C-F自身的交易存储区中存储的节点A的交易记录判断区块数据中的交易记录的正确性,并根据节点A 和节点C-F与节点A关联的交易属性信息验证区块数据的真实性。例如,节点A 发出的交易请求是“某公司给某员工发了5000元工资”,节点B将处理后的区块数据发给节点C,而节点C中也写入了该公司的工资记录,其中,节点C的交易属性信息中写明“某公司的发给员工的最高工资为4500”,此时,节点C对该区块数据进行验证时会根据该自身的交易属性信息直接确定验证不通过,实现对区块数据的真实性验证。

S640,区块生成节点B接收节点A和节点C-F发送的验证反馈,根据验证通过的关联节点数量判断是否小于验证阈值,对节点进行相应的奖惩。

具体的,接收验证反馈时,不管共识有没有通过,区块生成节点B通知区块链平台对出节点A之外的参与验证过程的全部节点(包括区块生成节点B自己)进行奖励,例如给节点B-F每个节点奖励1个代币。可选的,假设本实施例中为基于PBFT的共识机制,节点A-E均返回验证通过的共识响应,节点F返回验证未通过的共识响应或节点F未返回共识响应,则区块生成节点B确定5 个节点验证通过,大于等于了(2N+1)/3个节点,其中N为总节点数,这里N=6,则通知区块链平台扣除节点A预支付的1个代币后,根据区块数据中交易记录的价值类型和数量确定奖励比例,例如在节点A的交易数据价值比较大的情况下确定奖励比例为2,则区块生成节点B通知区块链平台按照节点A支付的代币和奖励比例即1*2向节点A返还2个代币;在节点A的交易数据价值一般的情况下确定奖励比例为0.5,则区块生成节点B通知区块链平台按照节点A支付的代币和奖励比例即1*0.5向节点A返还0.5个代币;在共识未通过的情况下,例如仅收到共识节点A-C返回的验证通过的共识响应,则区块生成节点B通知区块链平台直接扣除节点A预支付的1个代币,不向节点A返还代币。

S650,如果验证通过的关联节点数量大于或等于验证阈值,区块生成节点B 将区块数据发送给区块链系统中的其他节点。

具体的,区块生成节点B将区块数据发送给区块链系统中的节点A和节点C-J,以使其他节点将该区块数据加入自身的区块链中,并从自身的交易存储区中删除该区块数据中对应的交易记录。

本实施例提供的技术方案,通过关联的交易属性信息实现对区块数据的真实性验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

实施例七

图7为本发明实施例七提供的一种区块数据的处理装置的结构示意图,具体的,如图7所示,该装置可以包括:

区块生成模块710,用于根据区块链系统中待验证节点的交易记录,生成区块数据,待验证节点为区块链系统中的任一节点;

第一区块发送模块720,用于将区块数据发送给待验证节点的关联节点,以使关联节点根据关联的交易属性信息验证区块数据;

节点奖惩模块730,用于接收关联节点对区块数据的验证反馈,并根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果。

本实施例提供的技术方案,通过关联的交易属性信息实现对区块数据的真实性验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

进一步的,上述节点奖惩模块730可以包括:节点奖励单元7301,用于如果验证通过的关联节点数量大于或等于验证阈值,则根据待验证节点的预付金和区块数据对应的奖励比例确定相应的奖励金,对待验证节点进行奖励;节点惩罚单元7302,用于如果验证通过的关联节点数量小于验证阈值,则扣除待验证节点的预付金,对待验证节点进行惩罚。

进一步的,上述节点奖励单元7301还可以用于:在接收关联节点对区块数据的验证反馈之后,对参与验证过程的除待验证节点之外的其他节点进行奖励。

进一步的,上述装置还可以包括:第二区块发送模块740,用于如果验证通过的关联节点数量大于或等于验证阈值,将区块数据发送给区块链系统中的其他节点。

本实施例提供的区块数据的处理装置可适用于上述任意实施例提供的应用于区块链系统的区块生成节点中的区块数据的处理方法,具备相应的功能和有益效果。

实施例八

图8为本发明实施例八提供的一种区块数据的处理装置的结构示意图,具体的,如图8所示,该装置可以包括:

区块接收模块810,用于接收区块链系统中的区块生成节点发送的区块数据;

区块验证模块820,用于根据与区块数据关联的交易属性信息验证区块数据,并向区块生成节点发送验证反馈,以使区块生成节点根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果。

本实施例提供的技术方案,通过关联的交易属性信息实现对区块数据的真实性验证,并对达到共识的区块数据中的交易记录对应的待验证节点进行奖励,降低区块生成节点恶意生成交易数据的情况,并通过具体的节点激励机制,提高区块链系统中各个节点上传真实和高价值的交易数据的积极性,减少区块链中的垃圾数据。

进一步的,上述装置还可以包括:记录存储模块830,用于在接收区块链系统中的区块生成节点发送的区块数据之前,对区块链系统中全部节点的交易记录结合对应的节点标识进行本地存储,以便后续进行数据验证。

进一步的,上述区块验证模块820可以包括:初始验证单元8201,用于根据初始验证算法对区块数据中的交易结果进行初始验证;正确性和真实性验证单元8202,用于根据区块数据中交易记录对应的节点标识和序号,确定本地存储的对应交易记录以及关联的交易属性信息,并验证区块数据中的交易记录的正确性和真实性。

进一步的,上述区块生成节点可以是基于区块链系统中非挖矿的共识机制确定的。

本实施例提供的区块数据的处理装置可适用于上述任意实施例提供的应用于区块链系统的区块记录节点中的区块数据的处理方法,具备相应的功能和有益效果。

实施例九

图9为本发明实施例九提供的一种设备的结构示意图,如图9所示,该设备包括处理器90、存储装置91和通信装置92;设备中处理器90的数量可以是一个或多个,图9中以一个处理器90为例;设备中的处理器90、存储装置91 和通信装置92可以通过总线或其他方式连接,图9中以通过总线连接为例。

存储装置91作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的应用于区块链系统的各个节点中的区块数据的处理方法对应的程序指令/模块。处理器90通过运行存储在存储装置91中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述应用于区块链系统的区块生成节点中的区块数据的处理方法。

存储装置91可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储装置91可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储装置91可进一步包括相对于处理器90 远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

通信装置92可用于实现承载区块链系统中各个节点的设备间的网络连接或者移动数据连接。

本实施例提供的一种设备可用于执行上述任意实施例提供的应用于区块链系统的各个节点中的区块数据的处理方法,具备相应的功能和有益效果。

实施例十

本发明实施例十还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例中的应用于区块链系统的区块生成节点中的区块数据的处理方法。该方法具体可以包括:

根据区块链系统中待验证节点的交易记录,生成区块数据,待验证节点为区块链系统中的任一节点;

将区块数据发送给待验证节点的关联节点,以使关联节点根据关联的交易属性信息验证区块数据;

接收关联节点对区块数据的验证反馈,并根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果。

或者,该方法具体可以包括:

接收区块链系统中的区块生成节点发送的区块数据;

根据与区块数据关联的交易属性信息验证区块数据,并向区块生成节点发送验证反馈,以使区块生成节点根据验证反馈与待验证节点的预付金确定对待验证节点的奖惩结果。

当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的应用于区块链系统的各个节点中的区块数据的处理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器 (Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

值得注意的是,上述应用于区块链系统的各个节点中的区块数据的处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1