一种应用于基于区块链的人员考核系统的共识方法转让专利

申请号 : CN202110032952.1

文献号 : CN112396357B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高建彬

申请人 : 电子科技大学

摘要 :

本发明公开了一种应用于基于区块链的人员考核系统的共识方法,属于互联网技术领域。本发明以共识节点利用算力进行区块验证的同时,以算力对系统数据进行检查,以维护数据的准确性,杜绝篡改数据的行为发生,有效利用算力资源;本发明每轮共识选取多个领导节点生成新区块,将区块以有向无环图的形式进行存储,设置主链策略使其收敛,减少分叉,使得区块链系统区块生成能力大大提高,系统数据处理能力得到大大加强;本发明对于领导节点的计算方式使得节点在必须优于平均水平之上才有机会成为领导节点,利用密码算法使得节点竞选成功的概率完全随机化,无法通过策略参加竞选,保证了领导节点的诚实性和选举的随机性。

权利要求 :

1.一种应用于基于区块链的人员考核系统的共识方法,其特征在于,将管理人员作为基于区块链的人员考核系统的共识节点参与共识处理,所述共识处理具体为:步骤S1:选择领导节点:

r

基于当前区块生成轮数r时各共识节点的管理员积分scorej 得到管理员积分平均值r

AVEscore,其中,j表示共识节点区分符;

r

若共识节点j的管理员积分scorej满足:则将共识节点j作为领导节点;

其中,H表示安全加密哈希函数,L表示哈希函数H的二进制位数,SIGj表示用共识节点j的管理员的私钥进行签名,“丨”表示连接运算符;

步骤S2:领导节点生成新区块:若当前轮不存在领导节点,则跳过进行下一轮共识处理;

若当前轮存在领导节点,则每个领导节点生成一个新区块,基于共同的父区块或父区块集组成当前轮的一个新区块集;领导节点每次生成新区块时,选择上一轮中管理员积分最高的区块作为父区块或者上一轮中管理员积分均值最高的区块集作为父区块集;

各领导节点根据所选择的父区块或父区块集,基于预设的考核项量化规则,计算各指定的考核项的量化结果,对指定的考核项的考核信息及其量化结果进行数据打包,生成当前轮的新区块;

若当前轮仅生成单个的新区块,则以生成各新区块的领导节点所对应的管理员积分最大的新区块所在的链为主链,当出现分叉区块时,采用预设的主链选择协议进行主链选择处理;

若当前轮生成新区块集,则以生成各新区块集所对应的领导节点集的管理员积分均值最大的新区块集所在的链为主链,当出现分叉区块集时,以区块集为对象,采用预设的主链选择协议进行主链选择处理;

步骤S3:共识节点验证区块:

区块链网络中的每个共识节点所对应的管理员对当前轮生成的新区块对象进行有效性验证,若验证通过,则将该新区块对象保存在本地维护的区块链账本中,并增加生成该新区块对象所对应的管理员积分,其中新区块对象为新区块或新区块集。

2.如权利要求1所述的方法,其特征在于,步骤S2中,若当前轮仅生成单个的新区块,则以生成各新区块的领导节点所对应的管理员积分最大的新区块所在的链为主链,当出现分叉区块时,主链选择处理为:

在每个分叉处选取管理员积分最高的新区块所在的链为主链;

并且仅容许对一条分叉链进行补偿,在主链上的新区块上记录前R轮的分叉的孤儿区块或孤儿区块集,即最多R轮的孤儿区块能获得出块补偿,其中R为预设值;

将主链上的新区块的区块出块奖励设置为标准出块奖励和其记录的孤儿出块奖励之和;其中,孤儿出块奖励基于主链分叉位置与各孤儿区块之间的间隔距离设置:间隔距离越小,孤儿区块的出块奖励越大,且孤儿区块的出块奖励的最大值小于标准出块奖励。

3.如权利要求1所述的方法,其特征在于,步骤S2中,若当前轮生成新区块集,则以生成各新区块集所对应的领导节点集的管理员积分均值最大的新区块集所在的链为主链,当出现分叉区块集时,以区块集为对象进行的主链选择处理为:在每个分叉处选取管理员积分均值最高的新区块集所在的链为主链;

并且仅容许对一条分叉链进行补偿,在主链上的新区块上记录前R轮的分叉的孤儿区块或孤儿区块集,即最多R轮的孤儿区块能获得出块补偿,其中R为预设值;

将主链上的新区块集的区块出块奖励设置为标准出块奖励和其记录的孤儿出块奖励之和;其中,孤儿出块奖励基于主链分叉位置与各孤儿区块之间的间隔距离设置:间隔距离越小,孤儿区块的出块奖励越大,且孤儿区块的出块奖励的最大值小于标准出块奖励。

4.如权利要求1所述的方法,其特征在于,步骤S3中,若新区块对象的有效性验证通过,则将该新区块对象保存在本地维护的区块链账本中,并增加生成该新区块对象所对应的管理员积分时,处于主链的新区块的管理员积分的增加幅度大于处于分叉链上的新区块管理员积分的增加幅度。

5.如权利要求1至4任一项所述的方法,其特征在于,步骤S3中,共识节点对当前轮生成的新区块对象的有效性验证包括:(1)是否能利用生成当前新区块对象的领导节点所对应的管理员的公钥对签名进行解密;

r

(2)生成的新区块对象的领导节点所对应的管理员积分scorej是否满足:(3)共识节点在区块链上对新区块对象中的部分考核项的量化结果进行查询和计算,以验证部分考核项的量化处理是否正确。

说明书 :

一种应用于基于区块链的人员考核系统的共识方法

技术领域

[0001] 本发明属于互联网技术领域,尤其涉及一种应用于基于区块链的人员考核系统的共识方法。

背景技术

[0002] 区块链技术是一种能够实现去中心化的分布式存储系统,能够实现数据透明且不可篡改。共识算法是实现分布式系统中各节点达成一致的办法,在区块链系统中应用为分
布的各节点通过共识算法对待存储数据达成一致,以共同来维护区块链账本。
[0003] 当前基于区块链技术对人员进行考核主要是通过将被监管人员的行为以数字化的积分形式来表现,以数据来评定个人行为准则,此举措将行为数字化,以公平公正的方式
利于人员的考核与管理,且易于存储和查询。
[0004] 例如,存在这样一种一种基于区块链的人员考核系统。此基于区块链的人员考核系统操作流程为:
[0005] (1)考核任务下发:云平台下发人员考核任务,其中包括参与任务执行的人员以及参与任务考核的管理人员,同时将任务上传区块链平台;
[0006] (2)考核任务填报:在截止时间之内,参与任务执行的人员上报工作记录,管理员验证工作记录有效之后对其生成考核评价,分别上传至云平台和区块链平台;
[0007] (3)考核验证阶段:云平台统计参与任务的管理员考核评价,生成人员的综合评价作为考核结果,同时根据管理员的个人考核评价与综合评价的偏离程度对管理人员进行考
核,最终以诚信积分的形式评价人员和管理人员业务能力,并上传至区块链平台进行存储。
[0008] 此基于区块链的人员考核系统中缺少与之相匹配以达成系统高效、以实现人员诚信严格管理的共识算法。同时现存的基于区块链的人员行为数字化的考核管理系统也缺乏
一种专门设计的具有针对性的共识处理方案。

发明内容

[0009] 本发明的发明目的在于:针对现有的基于区块链的人员考核系统缺乏针对性的共识处理,本发明提供了一种基于区块链的人员考核系统中共识节点高效达成一致的技术方
案,能够实现对系统管理员和待考核人员的行为数字化公正透明管理,能够将节点的算力
充分运用于与维护系统的稳定有序运行而不造成浪费。
[0010] 本发明的一种应用于基于区块链的人员考核系统的共识方法,将管理人员作为基于区块链的人员考核系统的共识节点参与共识处理,该共识处理具体为:
[0011] 步骤S1:选择领导节点:
[0012] 基于当前区块生成轮数r时各共识节点的管理员积分scorejr得到管理员积分平均r
值AVEscore,其中,j表示共识节点区分符;
[0013] 若共识节点j的管理员积分scorejr满足:
[0014]
[0015] 则将共识节点j作为领导节点;
[0016] 其中,H表示安全加密哈希函数,L表示哈希函数H( )的二进制位数,SIGj表示用共识节点j的管理员的私钥进行签名,“丨”表示连接运算符;
[0017] 步骤S2:领导节点生成新区块:
[0018] 若当前轮不存在领导节点,则跳过进行下一轮共识处理;
[0019] 若当前轮存在领导节点,则每个领导节点生成一个新区块,基于共同的父区块或父区块集组成当前轮的一个新区块集;领导节点每次生成新区块时,选择上一轮中管理员
积分最高的区块作为父区块或者上一轮中管理员积分均值最高的区块集作为父区块集;
[0020] 领导节点根据所选择的父区块或父区块集,基于预设的考核项量化规则,计算各指定的考核项的量化结果,对指定的考核项的考核信息及其量化结果进行数据打包,生成
当前轮的新区块;
[0021] 若当前轮仅生成单个的新区块,则以生成各新区块的领导节点所对应的管理员积分最大的新区块所在的链为主链,当出现分叉区块时,采用预设的主链选择协议进行主链
选择处理;
[0022] 若当前轮生成新区块集,则以生成各新区块集所对应的领导节点集的管理员积分均值最大的新区块集所在的链为主链,当出现分叉区块集时,以区块集为对象,采用预设的
主链选择协议进行主链选择处理;
[0023] 步骤S3:共识节点验证区块:
[0024] 区块链网络中的每个共识节点所对应的管理员对当前轮生成的新区块对象进行有效性验证,若验证通过,则将该新区块对象保存在本地维护的区块链账本中,并增加生成
该新区块对象所对应的管理员积分,其中新区块对象为新区块或新区块集。
[0025] 进一步的,步骤S2中,当出现分叉区块或分叉区块集时,在每个分叉处选取管理员积分最高的新区块或管理员积分均值最高的新区块集所在的链为主链;
[0026] 并且仅容许对一条分叉链进行补偿,在主链上的新区块上记录前R轮的分叉的孤儿区块或孤儿区块集,即最多R轮的孤儿区块能获得出块补偿,其中R为预设值;
[0027] 将主链上的新区块或新区块集的区块出块奖励设置为标准出块奖励和其记录的孤儿出块奖励之和;其中,孤儿出块奖励基于主链分叉位置与各孤儿区块之间的间隔距离
设置:间隔距离越小,孤儿区块的出块奖励越大,且孤儿区块的出块奖励的最大值小于标准
出块奖励。
[0028] 进一步的,步骤S3中,增加生成该新区块对象所对应的管理员积分时,处于主链的新区块的管理员积分的调整幅度大于处于分叉链上的新区块管理员积分的调整幅度。
[0029] 进一步的,步骤S3中,共识节点对当前轮生成的新区块对象的有效性验证包括:
[0030] (1)是否能利用生成当前新区块对象的领导节点所对应的管理员的公钥对签名进行解密;
[0031] (2)生成的新区块对象的领导节点所对应的管理员积分scorejr是否满足:
[0032]
[0033] (3)共识节点在区块链上对新区块对象中的部分考核项的量化结果进行查询和计算,以验证部分考核项的量化处理是否正确。
[0034] 综上所述,本发明的优点以及积极效果为:
[0035] (1)本发明能够完全契合与基于区块链的人员考核系统,填补区块链在人员行为数字化管理的不足,提高区块链技术作为管理和存储人员考核信息底层平台应用的落地实
施,以去中心化系统实现人员考核的公平公正公开;
[0036] (2)目前广泛使用的工作量证明机制存在大量算力资源的浪费,本发明能够实现共识节点利用算力进行区块验证的同时,以算力对系统数据进行检查,以维护数据的准确
性,杜绝篡改数据的行为发生,有效利用算力资源;
[0037] (3)本发明每轮共识选取多个领导节点生成新区块,将区块以有向无环图的形式进行存储,设置主链策略使其收敛,减少分叉,此外对于分叉的产生有一定的容忍度,能够
使用分叉区块,这样的策略使得区块链系统区块生成能力大大提高,系统数据处理能力得
到大大加强;
[0038] (4)本发明对于领导节点的算法使得节点在必须优于平均水平之上才有机会成为领导节点,利用密码算法使得节点竞选成功的概率完全随机化,无法通过策略参加竞选,本
算法保证领导节点的诚实性和选举的随机性。

附图说明

[0039] 图1是本发明基于区块链人员考核系统进行数据上链共识达成的方法流程图。
[0040] 图2是此共识方法区块链生成实例。

具体实施方式

[0041] 为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。
[0042] 本发明在基于区块链的人员考核系统中,所采用的考核标准为:管理人员在对人员考核的同时,还作为系统的共识节点参与系统共识。管理人员通过被考核人员行为信息
的记录来对其工作表现进行考核评价,综合统计多个管理员的考核评价均分作为被考核人
员的考核结果并对其积分进行增减,对管理员的考核则通过管理员个人对被考核人的考核
评价与被考核人实际所得到综合考核评价的偏离程度来进行积分的增减。
[0043] 参见图1,本发明的应用于基于区块链的人员考核系统的共识方法,具体包括下列步骤:
[0044] 步骤S1:选择领导节点:
[0045] 上链信息通过领导节点进行数据的处理打包从而生成新的区块,在n个共识节点组成的系统中,即n个管理员的系统中选择领导节点的处理过程为:
[0046]               (1)
[0047]      (2)
[0048] 其中,r表示当前区块生成轮数,scorejr表示第r轮共识节点j(即管理员j)的积分,H表示安全加密哈希函数,SIGj表示利用管理员j的私钥进行签名处理,L表示安全加密哈希
r
函数H的二进制位数,AVEscore表示在第r轮区块生成时,系统中作为共识节点的管理员积
分平均值,j表示共识节点(或管理员)区分符,本具体实施方式中,将管理员区分符设置为
r
从1开始的序号,积分平均值AVEscore的具体计算为:
[0049]                     (3)
[0050] 在本发明的共识方法的领导节点的选择中,只要满足(1)式就能够成为领导节点进行区块的打包,(1)式右端式子中分子为哈希值的L位二进制表示, L位二进制数所能表
L L
示的最大数为2‑1,因分母为2 ,可见右端的取值范围是在区间[0,1)内,(1)式等式左边为
管理员积分均值和管理员的积分的比值。由(2)式得知右端式子经管理员个人私钥签名生
成,且哈希算法具有不可预测性,所以要满足(1)式中的条件成为领导节点,管理员个人积
分必须高于均值才能够有机会以随机的概率成为领导节点。从领导节点选择算法可以看
出,每轮可以选择0个或者N(N≥1)个领导节点进行出块。
[0051] 由(2)式所知,本发明的共识方法提供给各个共识节点相同的数据,即轮数和此轮管理员积分均值,同时因为哈希算法的不可预测性,节点是否能够成为领导节点只和自己
的私钥有关,同时也限定每轮领导节点选择中,每个管理员共识节点只有一次参与的机会。
[0052] 步骤S2:领导节点生成区块:
[0053] (1)在每一轮新区块的生成中,因为领导节点数量的不确定,导致可能产生多个区块或者是没有区块产生,本发明通过下述设定解决:
[0054] 当轮若是存在多个领导节点,每个领导节点生成一个新区块,基于共同的父区块(集)组成当前轮的一个新区块集,即基于上轮同一区块(集)生成的所有新区块组成当前轮
的一个区块集;
[0055] 当轮若是不存在领导节点,则跳过进行下一轮共识;
[0056] (2)在此区块生成设定之下,区块链成为一个有向无环图,并以如下的策略来选择主链使得区块链收敛:
[0057] ⅰ.领导节点每次生成新区块时选择管理员积分(管理员积分均值)最高的区块(集)作为父区块(集)来进行新区块的数据处理和打包;
[0058] ⅱ.以生成区块的领导节点对应的管理员积分(管理员积分均值)最大的区块(集)所在的链为主链,出现分叉区块(集)时,采用预置的主链选择协议(例如GHOST(Greedy 
Heaviest‑Observed Sub‑Tree protocol)协议)进行主链选择处理。
[0059] 本具体实施方式中,当出现分叉区块(集)时,基于区块的出块奖励进行主链选择处理,其具体为:
[0060] 定义m表示标准出块奖励(根据使用需求自定义),主链上的新区块(集)记录前几轮(具体的轮数可基于实际需求进行指定)分叉的孤儿区块(集),新区块除了能得到出块奖
励 外,还能得到一定的额外奖励(分叉的孤儿区块的出块奖励),分叉的孤儿区块的出块
奖励基于主链上的新区块记录的链上区块分叉位置与分叉链上孤儿区块之间的距离进行
设置:距离越小,出块奖励越大,且分叉的孤儿区块的出块奖励的最大值小于m;例如,设置,
R为7,并将各分叉的孤儿区块的出块奖励取值范围设置为[m/8,7 m/8],若与主链分叉位置
区块相隔0个区块则奖励最高,即为7 m/8,相隔6个区块则奖励最少,即为m/8。这样孤儿区
块和主链区块都能得到奖励,但相比而言主链区块奖励较多,此后生成孤儿区块的矿工会
向延伸主链而努力,从而避免分叉;
[0061] ⅲ.作为领导节点的管理员根据考核评价对相关被考核人和考核管理员进行积分的增减,处理数据后打包数据生成区块,此管理员可获得积分增加的奖励。
[0062] 图2给出了基于本发明的共识方式的一种区块链生成实例,其中,数字代表当前区块生成的轮数,数字后的字母用于区分分叉链路,其中,第1轮仅存在一个领导节点所以只
生成一个区块,第2、3轮存在多个领导节点所以存在区块集,倘若因为第5轮中作为领导节
点的共识节点未收到第4轮区块的信息,使链在第5轮中发生分叉,且第4、5轮的生成区块节
点(生成区块的领导节点)的管理员积分相同,所以此后的第6、7轮中生成区块节点的管理
员积分相同,使得分叉延伸,到第8轮因生成区块节点的管理员积分最高,所以不再发生分
叉,在此过程中,分叉链上5‑b、6‑b以及7‑b是孤儿块,因其在分叉容忍范围内,也就是仅存
在一条分叉链以及在新区块记录孤儿区块轮数范围内,所以其数据都进行记录并能获得相
应补偿费用。
[0063] 步骤S3:共识节点验证区块:领导节点打包生成新区块以后,区块链网络中的共识节点,也就是系统的管理者需要对新区块打包的数据进行验证,验证通过则保存在本地所
维护的区块链账本中,视为新区块通过共识达成一致上链成功。
[0064] 其中,共识节点的验证包括:
[0065] (1)是否能利用此领导节点的公钥对签名进行解密,从而得到正确的当轮次数和当轮管理员平均积分信息,以满足公式(2)条件;
[0066] (2)生成区块的节点是否满足式(1)的领导节点条件,为完成此检验,共识节点需要对链中此节点诚信积分的增减情况进行查询和计算,以确保此节点当轮时间下积分的正
确性,在此步骤中实现节点以算力进行验证的同时维护系统的稳定;
[0067] (3)共识节点在区块链上对新区块包含被考核人员和管理员积分的诚信积分的增减情况进行查询和计算,以判断领导节点对打包区块中被考核人员和管理员积分的判定和
增减是否正确。
实施例
[0068] 下面是结合基于区块链的人员考核系统对本发明的具体实施流程做更详尽描述。
[0069] (1)选择领导节点:在基于区块链的人员考核系统中,管理员为共识节点,新区块的生成需要在共识节点中选择打包数据生成区块的领导节点,新区块经共识节点验证有效
则记录到区块链账本中。在 个共识节点组成的系统中以(1)式来选择领导节点,可以生成0
个或者多个领导节点。
[0070] (2)领导节点生成区块:在每一轮新区块的生成中,因为领导节点数量的不确定,导致可能产生多个区块或者是没有区块产生,无领导节点则进行下一轮共识,选出领导节
点则进行如下过程的数据处理和打包区块工作:
[0071] (2‑1)若是有新发布的人员考核任务则将其摘要信息进行打包;
[0072] (2‑2)若是有人员执行任务而填报的工作记录则将其摘要信息进行打包;
[0073] (2‑3)若是有管理员根据人员工作记录进行评定的考核评价则将其利用哈希算法生成摘要信息进行打包;
[0074] (2‑4)若是有云平台发布的由考核结果生成的考核结果和考核证明,根据考核证明对考核结果验证有效后,根据考核结果对相关人员的人员积分和管理员的管理员积分进
行修改并将记录打包。
[0075] 其中,步骤(2‑4)中对人员积分和管理积分的修改策略如下:
[0076] ⅰ.人员未在截止时间内提交工作记录则记为超时,需要扣减人员积分,扣减策略如下:
[0077]       (4)
[0078] 其中,subScore为扣减分数,curScore为当前分数,overDay为提交超时天数。例如某员工超时两天提交工作记录,则他的扣减分数为subScore=0.3×curScore。
[0079] 即,将提交超时天数的取值范围划分多个子段,每个子段配置一个对应的权重系数,其中权重系数与超时天数负相关,从而基于每个子段的权重系数与当前分数的乘积得
到扣减分数,将当前分数减去该扣减分数得到考核后积分,该扣减策略适用于人员积分和
管理员积分。
[0080] ⅱ.管理员未在截止时间内提交考核评价记录则记为超时,需要扣减管理员积分,扣减策略如公式(4)所示;
[0081] ⅲ.通过考核结果对人员积分进行扣减或者增加,策略如下:
[0082] WorkerSocre=curWorkerScore+ Avescore                         (5)
[0083] 其中,WorkerSocre为扣减或者增加以后的分值,Avescore为参与考核的多个管理员根据实际衡量指标对人员进行考核的考核评分均值,curWorkerScore为当前被考核人员
分值,也就是人员的积分值。
[0084] ⅳ.通过管理员对人员的考核评分与云综合后的考核结果的偏差对管理员积分进行扣减或者增加,策略如下:
[0085] (6)
[0086] 其中,addScore为扣减或者增加以后的分值,Avescore为参与考核的多个管理员根据实际衡量指标对人员的考核评分的平均值,curScore为当前参与考核的管理员积分
值,bias为偏差值,score为当前管理员个人对人员的考核评价分数,偏差值计算方式如下:
[0087] bias=|score‑Avescore|                             (7)
[0088] 另外,每轮新区块的生成中,成为领导节点的共识节点,也就是管理员能够获得奖励,生成区块处于主链上奖励规则如(8)所示:
[0089] leadScore=curLeaderScore+ 0.3×curLeaderScore                  (8)
[0090] 生成区块处于分叉链上奖励规则如(9)所示:
[0091] leadScore=curLeaderScore+ 0.1×curLeaderScore                  (9)
[0092] 其中,leadScore为奖励之后的积分,curLeaderScore 为当前领导节点分值。
[0093] 共识节点主要对以下方面进行验证:
[0094] (3‑1)以此节点公钥对(2)式进行验证以获得正确的轮数和当轮管理员积分;
[0095] (3‑2)共识节点利用算力在区块链中查询和计算此领导节点的诚信积分是否正确,以是否满足(1)式的领导节点选择算法;
[0096] (3‑3)共识节点利用算力在区块链中查询和计算此区块中包含的人员和管理员的诚信积分的增减是否正确。
[0097] 以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方
法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。