选择区块链共识机制的方法、装置以及共识节点与流程

文档序号:15639774发布日期:2018-10-12 21:55阅读:183来源:国知局

本公开涉及计算机技术领域,特别涉及一种选择区块链共识机制的方法、装置、共识节点及计算机可读存储介质。



背景技术:

随着区块链技术在各行业的应用,区块链技术有了较大提高。但是,目前区块链技术的提高始终局限于区块链的内部构建以及实现等方面。目前,工信部等多个部委及国内外多家行业巨头都组建专门团队或实验室,积极推进区块链技术及其应用的研究。区块链已应用于供应链管理、食品安全、信息传播等多个领域。

现有区块链技术已被许多厂商在实际工作生活中使用,用户能够从厂家提供的区块链产品中查看区块链信息。



技术实现要素:

申请人经过研究发现,相关技术当中区块链技术会造成较大的资源开销。

本公开解决的一个技术问题是,如何减少区块链技术造成的资源开销。

根据本公开实施例的一个方面,提供了一种选择区块链共识机制的方法,包括:在接收到业务数据后,根据业务数据中的共识机制影响因子信息,确定业务数据的共识机制等级;利用业务数据的共识机制等级,从所有备选区块链共识机制中为业务数据选择相对应的区块链共识机制。

在一些实施例中,根据业务数据中的共识机制影响因子信息,确定业务数据的共识机制等级包括:利用共识机制影响因子信息,确定业务数据在各个共识机制影响因子项下的共识机制影响因子数值、共识机制影响因子权重;将共识机制影响因子数值、共识机制影响因子权重进行加权求和,得到业务数据的共识机制等级。

在一些实施例中,共识机制影响因子包括用户类型级别、信息安全级别、数据类型级别以及业务类型级别。

在一些实施例中,为业务数据选择的区块链共识机制的等级不低于业务数据的共识机制等级。

在一些实施例中,该方法还包括:预先确定各个备选区块链共识机制的共识机制等级,各个备选区块链共识机制的共识机制等级与共识机制复杂度呈正相关。

在一些实施例中,该方法还包括:将选择的区块链共识机制上报至用户;接收用户发送的区块链共识机制反馈信息;根据所选择的区块链共识机制以及区块链共识机制反馈信息,重新为业务数据选择区块链共识机制。

根据本公开实施例的另一个方面,提供了一种共识节点,包括:机制等级确定模块,被配置为在接收到业务数据后,根据业务数据中的共识机制影响因子信息,确定业务数据的共识机制等级;共识机制选择模块,被配置为利用业务数据的共识机制等级,从所有备选区块链共识机制中为业务数据选择相对应的区块链共识机制。

在一些实施例中,机制等级确定模块被配置为:利用共识机制影响因子信息,确定业务数据在各个共识机制影响因子项下的共识机制影响因子数值、共识机制影响因子权重;将共识机制影响因子数值、共识机制影响因子权重进行加权求和,得到业务数据的共识机制等级。

在一些实施例中,共识机制影响因子包括用户类型级别、信息安全级别、数据类型级别以及业务类型级别。

在一些实施例中,为业务数据选择的区块链共识机制的等级不低于业务数据的共识机制等级。

在一些实施例中,共识节点还包括备选机制等级确定模块,被配置为:预先确定各个备选区块链共识机制的共识机制等级,各个备选区块链共识机制的共识机制等级与共识机制复杂度呈正相关。

在一些实施例中,共识节点还包括共识机制重选模块,被配置为:将选择的区块链共识机制上报至用户;接收用户发送的区块链共识机制反馈信息;根据所选择的区块链共识机制以及区块链共识机制反馈信息,重新为业务数据选择区块链共识机制。

根据本公开实施例的又一个方面,提供了一种选择区块链共识机制的装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述的选择区块链共识机制的方法。

根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现前述的选择区块链共识机制的方法。

本公开能够根据业务数据中的共识机制影响因子信息,实时动态的选择合适的区块链共识机制,从而减少了区块链技术中因共识机制导致的资源开销。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了相关的区块链技术架构示意图。

图2示出了本公开一个实施例的选择区块链共识机制的方法的流程示意图。

图3示出了确定业务数据的共识机制等级的一个应用例。

图4示出了本公开另一个实施例的选择区块链共识机制的方法的流程示意图。

图5示出了一个实施例的区块链的技术架构示意图。

图6示出了本公开一个实施例的共识节点的结构示意图。

图7示出了本公开一个实施例的选择区块链共识机制的装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。目前使用较多的区块链技术有hyperledgerfabric、sawtoothlake、lroha、corda等等。图1示出了相关技术中的区块链技术架构示意图。相关技术中的区块链技术架构中包括应用层、激励层、共识层、安全层、数据层。各个层当中涉及的具体技术细节如图1所示。

发明人对区块链技术当中的共识机制进行了研究。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。发明人认为,现有区块链技术大部分使用单一的内部共识机制,共识机制的选择缺少灵活性。有些共识机制有些比较复杂,需要消耗较多资源且相对较慢;有些共识机制则比较简单,消耗较少资源且相对快速。如果有些用户、有些业务不需要相对严格的共识机制,单一的内部的共识机制可能导致所有用户、所有业务都会使用相对复杂严格的共识机制,从而造成较大的资源开销,导致资源浪费。为此,发明人根据共识机制的复杂程度对共识机制进行了量化分级,将复杂的共识机制赋予较高的共识机制等级,将简单的共识机制赋予较低的共识机制等级,以便根据业务数据实时动态的选择合适的区块链共识机制。

下面结合图2描述本公开一个实施例的选择区块链共识机制的方法,以说明如何减少区块链技术中因共识机制导致的资源开销。

图2示出了本公开一个实施例的选择区块链共识机制的方法的流程示意图。如图2所示,该实施例中的选择区块链共识机制的方法包括步骤s202~步骤s208。

在步骤s202中,共识节点接收业务数据。

例如,共识节点a可以从其它共识节点b接收业务数据。业务数据中可以具有共识机制影响因子信息,具体可以包括会员类型标识、安全类型标识、数据类型标识以及业务类型标识。

在步骤s204中,共识节点根据业务数据中的共识机制影响因子信息,确定业务数据的共识机制等级。

进行区块链背书过程中,共识机制影响因子例如可以包括但不限于用户类型级别、信息安全级别、数据类型级别以及业务类型级别。可以根据需要对共识机制影响因子进行扩展。根据会员类型标识可以确定用户类型级别,例如业务系统会员机制中的普通会员或者白金会员。根据安全类型标识可以确定信息安全级别,例如业务系统中用户信息可以是安全等级较高的信息,商品信息可能是安全等级较低的信息。根据数据类型标识可以确定数据类型级别,例如日志数据、交易数据、用户数据分别具有不同的数据类型级别;根据业务类型标识可以确定及业务类型级别,例如对于电商系统来说,交易结算是相对核心的业务,业务类型级别较高;搜索业务是相对边缘的业务,业务类型级别较低。

利用共识机制影响因子信息,可以确定业务数据在各个共识机制影响因子项下的共识机制影响因子数值、共识机制影响因子权重。然后,将共识机制影响因子数值、共识机制影响因子权重进行加权求和,得到业务数据的共识机制等级。

可选的,在步骤s206中,预先确定各个备选区块链共识机制的共识机制等级,各个备选区块链共识机制的共识机制等级与共识机制复杂度呈正相关。

备选区块链共识机制具体可以包括pow(proofofwork,工作量证明)、pos(proofofstake,股权证明)、dpos(delegatedproofofstake,股份授权证明机制)、pbft(practicalbyzantinefaulttolerance,实用拜占庭容错算法)等等。pow通过与或运算计算出一个满足规则的随机数,即获得本次记账权,然后发出本轮需要记录的数据,全网其它节点验证后一起存储。pos是一种升级共识机制,能够根据每个节点所占代币的比例和时间,然后等比例的降低挖矿难度,从而加快找随机数的速度。dpos是让每一个持有比特股的人进行投票,由此产生101位代表,我们可以将其理解为101个超级节点或者矿池,而这101个超级节点彼此的权利是完全相等的。pbft,是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。将所有的副本组成的集合使用大写字母r表示,使用0到|r|-1的整数表示每一个副本。

划分共识机制等级时,可以将pow、pos、dpos、pbft、paxos、raft、ripple等备选共识机制分为1-10个共识机制等级,即每个共识机制等级都有对应的共识机制,还可以将paxos或者raft的共识机制等级设置为8级别以上(表示业务数据的共识机制等级要不小于8才可以使用该共识机制),将pbft的共识机制等级设置为5级别以上,将pow、pos、ripple的共识机制等级设置为级别1以上。

在步骤s208中,共识节点利用业务数据的共识机制等级,从所有备选区块链共识机制中为业务数据选择相对应的区块链共识机制。

例如,业务数据的共识机制等级为5。如果备选共识机制是按照1~10个等级逐级划分的,则可以从备选共识机制中选择共识机制等级为5的区块链共识机制。如果备选共识机制是按照等级范围进行划分的,则为业务数据选择的区块链共识机制的等级不低于业务数据的共识机制等级,即先判断业务数据的共识机制等级是否满足不小于8级别这一条件,在不满足的情况下进一步判断识机制等级满足不小于5级别这一条件,因此选择pbft。

上述实施例中能够根据业务数据中的共识机制影响因子信息,实时动态的选择合适的区块链共识机制,从而减少了区块链技术中因共识机制导致的资源开销。

下面结合图3描述如何确定业务数据的共识机制等级。

图3示出了确定业务数据的共识机制等级的一个应用例。如图3所示,假设影响共识机制包括用户类型级别、信息安全级别、以及业务类型级别。

用户类型级别为x,随着用户类型级别数值变大,用户收到的重视度相应变大,相应的权重会相应增加;信息安全级别为y,随着信息安全级别数值变大,用户安全性级别要求变大,相应的权重会相应增加;业务类型级别为z,随着业务类型级别变大,使用的业务系统将变得复杂多变,所占权重也会相应增加。l、m、n分别为加权系数,其中x、y、z、l、m、n的取值范围是大于等于1并小于等于10,且满足l+m+n=10。业务数据的共识机制等级v可以表示为v=x*l*0.1+y*m*0.1+z*n*0.1+……。

例如,用户类型级别为5,权重为3;信息安全级别为8,权重为5;业务类型级别为4,权重为2。因此,v=x*l*0.1+y*m*0.1+z*n*0.1=6.3。从而根据计算值选择合适的共识机制执行。

下面结合图4描述本公开另一个实施例的选择区块链共识机制的方法。

图4示出了本公开另一个实施例的选择区块链共识机制的方法的流程示意图。如图4所示,在图2所示实施例的基础上,本实施例中的选择区块链共识机制的方法还包括步骤s408~s412。

在步骤s410中,共识节点将选择的区块链共识机制上报至用户。

例如,共识节点a可以将选择的区块链共识机制pbft及共识机制5等级上报至用户。用户接收到共识节点a选择的区块链共识机制后,可以判断该共识机制是否满足其业务要求。

在步骤s412中,共识节点接收用户发送的区块链共识机制反馈信息。

例如,用户判断不需要如此严格复杂的共识机制,可以接受更低等级的共识机制,可以向共识节点反馈信息。该反馈信息具体可以为共识机制信息,以指示共识节点其需要的共识机制;也可以为共识机制等级信息,以指示共识节点其需要的共识机制等级;还可以为共识机制等级调整信息,以指示共识节点降低(或调高)共识机制等级。

在步骤s414中,共识节点根据所选择的区块链共识机制以及区块链共识机制反馈信息,重新为业务数据选择区块链共识机制。

共识节点a接收到用户的反馈信息后,可以根据反馈信息重新选择共识机制。具体来说是直接选择共识机制、先确定共识机制等级还是调整共识机制等级,需要依靠反馈信息的形式而定。

上述实施例中,用户可以根据实际需要对选择的区块链共识机制进行调整,从而进一步增强了区块链共识机制实时动态选择特性,能够进一步减少区块链技术中因共识机制导致的资源开销,并能够增强用户体验。

图5示出了一个实施例的区块链的技术架构示意图。其中,较好的共识机制选择方案的设计方式是模块化,例如notary。如图5所示,在现有区块链技术架构中增加共识机制动态选择层,可以构建带有内部动态选择共识算法的机制。动态选择层可以将共识机制影响因子以及权重系数进行合理运算,结合共识机制信任度动态规划共识机制,

下面结合图6描述本公开一个实施例的共识节点的结构。

图6示出了本公开一个实施例的共识节点的结构示意图。如图6所示,该实施例的共识节点60包括:机制等级确定模块602以及共识机制选择模块604。

机制等级确定模块602,被配置为在接收到业务数据后,根据业务数据中的共识机制影响因子信息,确定业务数据的共识机制等级;

共识机制选择模块604,被配置为利用业务数据的共识机制等级,从所有备选区块链共识机制中为业务数据选择相对应的区块链共识机制。

在一些实施例中,机制等级确定模块602被配置为:利用共识机制影响因子信息,确定业务数据在各个共识机制影响因子项下的共识机制影响因子数值、共识机制影响因子权重;将共识机制影响因子数值、共识机制影响因子权重进行加权求和,得到业务数据的共识机制等级。

在一些实施例中,共识机制影响因子包括用户类型级别、信息安全级别、数据类型级别以及业务类型级别。

在一些实施例中,为业务数据选择的区块链共识机制的等级不低于业务数据的共识机制等级。

在一些实施例中,共识节点60还包括备选机制等级确定模块606,被配置为:预先确定各个备选区块链共识机制的共识机制等级,各个备选区块链共识机制的共识机制等级与共识机制复杂度呈正相关。

上述实施例中能够根据业务数据中的共识机制影响因子信息,实时动态的选择合适的区块链共识机制,从而减少了区块链技术中因共识机制导致的资源开销。

在一些实施例中,共识节点60还包括共识机制重选模块608,被配置为:将选择的区块链共识机制上报至用户;接收用户发送的区块链共识机制反馈信息;根据所选择的区块链共识机制以及区块链共识机制反馈信息,重新为业务数据选择区块链共识机制。

上述实施例中,用户可以根据实际需要对选择的区块链共识机制进行调整,从而进一步增强了区块链共识机制实时动态选择特性,能够进一步减少区块链技术中因共识机制导致的资源开销,并能够增强用户体验。

图7示出了本公开一个实施例的选择区块链共识机制的装置的结构示意图。如图7所示,该实施例的选择区块链共识机制的装置70包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一个实施例中的选择区块链共识机制的方法。

其中,存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。

机器手作业装置70还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730,740,750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口740为sd卡、u盘等外置存储设备提供连接接口。

本公开还包括一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述任意一个实施例中的选择区块链共识机制的方法。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

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