区块链代表节点选取方法、装置、计算机设备和存储介质转让专利
申请号 : CN202011563219.4
文献号 : CN112738196B
文献日 : 2021-11-30
发明人 : 李涵
申请人 : 卓尔智联(武汉)研究院有限公司
摘要 :
权利要求 :
1.一种区块链代表节点选取方法,其特征在于,所述方法包括:获取参与本轮竞选的节点集合;所述节点集合中包括多个节点;
获取所述节点集合中各个节点对应的机会值;所述机会值基于所述节点参与系统运行的有效时间与所述节点的当前有效余额的加权求和得到;
根据各个节点的所述机会值,从所述节点集合中确定出至少一个准代表节点;所述准代表节点的所述机会值大于预先确定的目标值;
获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点,包括:对各个所述猜测值进行排序,根据排序后的多个猜测值中的中位数,确定所述多个猜测值中的目标猜测值;将各个所述猜测值中与所述目标猜测值的相似度最大的猜测值对应的准代表节点作为本轮竞选的代表节点,并为所述准代表节点以及代表节点分配本轮竞选的奖励,将所述准代表节点和所述代表节点的有效时间还原为初始值,以及增加所述节点集合中在本轮竞选为非准代表节点的有效时间,形成调整后的节点集合,以基于调整后的节点集合进行下一轮竞选。
2.根据权利要求1所述的方法,其特征在于,所述获取参与本轮竞选的节点集合,包括:获取新加入区块链的新节点、上一轮竞选中未成为代表节点的准代表节点以及上一轮竞选中的代表节点,得到所述节点集合。
3.根据权利要求1所述的方法,其特征在于,所述获取所述节点集合中各个节点对应的机会值,包括:
针对所述节点集合中各个节点,获取节点对应的执行验证时刻以及参与系统运行的初始时刻;根据所述执行验证时刻与所述初始时刻的第一差值,得到所述节点对应的有效时间;
获取所述节点在上一轮竞选结束时对应的余额以及初始余额;根据所述上一轮竞选结束时对应的余额与所述初始余额的第二差值,得到所述当前有效余额;
对所述有效时间以及所述当前有效余额进行加权求和,得到所述节点对应的机会值。
4.根据权利要求1所述的方法,其特征在于,还包括:获取上一轮竞选中的准代表节点的第一数量,以及参与上一轮竞选的节点的第二数量;
根据所述第一数量、所述第二数量以及上一轮竞选对应的所述目标值,得到本轮竞选的所述目标值。
5.根据权利要求1所述的方法,其特征在于,还包括:所述各个准代表节点在本轮竞选中进行随机数猜测时,猜测机会为一次;所述各个准代表节点在完成随机数猜测后,向其他所述准代表节点广播所述猜测值。
6.根据权利要求5所述的方法,其特征在于,还包括:所述各个准代表节点在本轮竞选中进行随机数猜测时,若确定其猜测值为所述目标猜测值,发送所述目标猜测值对应的目标准代表节点竞选胜出的广播消息;
所述根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点,包括:
接收到所述目标准代表节点的所述广播消息之后,若获取到大于预设比例的准代表节点对所述广播消息的验证通过消息,确定所述目标准代表节点为本轮竞选的代表节点。
7.一种区块链代表节点选取装置,其特征在于,所述装置包括:第一获取模块,用于获取参与本轮竞选的节点集合;所述节点集合中包括多个节点;
第二获取模块,用于获取所述节点集合中各个节点对应的机会值;所述机会值基于所述节点参与系统运行的有效时间与所述节点的当前有效余额的加权求和得到;
第一确定模块,用于根据各个节点的所述机会值,从所述节点集合中确定出至少一个准代表节点;所述准代表节点的所述机会值大于预先确定的目标值;
第二确定模块,用于获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根据所述猜测值,从所述至少一个准代表节点中确定出本轮竞选的代表节点,具体用于:对各个所述猜测值进行排序,根据排序后的多个猜测值中的中位数,确定所述多个猜测值中的目标猜测值;将各个所述猜测值中与所述目标猜测值的相似度最大的猜测值对应的准代表节点作为本轮竞选的代表节点,还用于为所述准代表节点以及代表节点分配本轮竞选的奖励,将所述准代表节点和所述代表节点的有效时间还原为初始值,以及增加所述节点集合中在本轮竞选为非准代表节点的有效时间,形成调整后的节点集合,以基于调整后的节点集合进行下一轮竞选。
8.根据权利要求7所述的装置,其特征在于,所述第一获取模块,具体用于:获取新加入区块链的新节点、上一轮竞选中未成为代表节点的准代表节点以及上一轮竞选中的代表节点,得到所述节点集合。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
说明书 :
区块链代表节点选取方法、装置、计算机设备和存储介质
技术领域
背景技术
而,在区块链中通常会存在某些节点参与度低,以及存在无效或恶意区块的问题,导致区块
链的中心化程度偏高,因此,降低区块链网络中的无效区块或恶意区块的产生显得十分必
要。目前对恶意区块或无效区块的剔除通常是采用投票机制,对不积极的节点进行剔除,然
而,该方法仍然无法避免节点参与度低的问题,导致区块链中的中心化程度偏高。
发明内容
效时间;
点。
的机会值,并根据各个节点对应的机会值,从节点集合中确定出至少一个准代表节点,其中
准代表节点的机会值大于预先确定的目标值,再获取各个准代表节点在本轮竞选中进行随
机数猜测时的猜测值,根据该猜测值,从至少一个准代表节点中确定本轮竞选的代表节点。
相较于传统的通过投票机制的确定代表节点的方法,本方案通过对节点的竞选设置激励机
制,利用节点的机会值以及引入的随机数猜测机制,确定各轮竞选的代表节点,从而弱化了
代表节点的集中性,降低了区块链中代表节点的中心化程度。
附图说明
具体实施方式
用于限定本申请。
可以获取服务器104中的区块链中参与本轮竞选的包括多个节点的节点集合,并获取节点
集合中各个节点对应的机会值,再根据各个节点的机会值,从节点集合中确定的该至少一
个准代表节点,还可以获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,从
而终端102可以根据猜测值,从至少一个准代表节点中确定本轮竞选的代表节点。其中,终
端102可以但不限于是各种个人计算机、笔记本电脑、智能手机和平板电脑,服务器104可以
用多个服务器组成的服务器集群来实现,区块链可以以分布式存储在多个服务器中。
中,每轮竞选的节点集合中可以包括多个节点,每轮竞选的节点集合中的多个节点可以不
同,具体地,终端102可以获取新加入区块链的新节点、上一轮竞选中为成为代表节点的准
代表节点以及上一轮竞选中的代表节点,形成上述参与本轮竞选的节点集合,即参与本轮
竞选的节点集合中可以由新添加到系统的新节点和准备用于本轮验证的旧节点组成,旧节
点可以是上一轮竞选中没有成为代表的准代表节点,也可以是代表节点,在确保不损害旧
节点利益的前提下,通过保证公平的奖励分配措施,使这一层中的所有节点具有同等地位,
并在本轮公平竞争。
述节点集合中,各个节点成为准代表节点的机会,各个节点的机会值可以用于进行机会验
证,机会验证可以用于选取准代表节点。终端102可以基于节点参与系统运行的有效时间以
及节点的当前有效余额确定。其中,节点参与系统运行的有效时间可以基于节点参与系统
运行的初始时刻以及节点执行上述验证的时刻确定,节点的有效余额可以基于其初始余额
数以及上一轮结束时的余额数确定,其中,上述节点的有效余额与其是否积极参与到区块
链中的验证有关,参与越多,则可以得到越多的余额。
机会值,从节点集合中确定至少一个准代表节点。其中,终端102可以基于预先确定的目标
值,对上述各个节点进行机会验证,即终端102可以将上述各个节点的机会值与预先确定的
目标值进行比较,将机会值大于预先确定的目标值的节点作为准代表节点,从而完成对节
点的机会验证。
本轮竞选中进行随机数猜测时的猜测值,并根据各个节点对应的猜测值,从上述至少一个
准代表节点中确定出本轮竞选的代表节点。具体地,终端102可以对各个节点对于随机数的
猜测值,进行预设处理后,从中确定出目标的猜测值,从而终端102可以基于目标的猜测值
确定本轮竞选的代表节点。另外,需要说明的是,终端102还可以基于上述各个节点参与验
证的积极性,为节点提供相应的奖励,节点参与度越高,则奖励越多。
对应的机会值,从节点集合中确定出至少一个准代表节点,其中准代表节点的机会值大于
预先确定的目标值,再获取各个准代表节点在本轮竞选中进行随机数猜测时的猜测值,根
据该猜测值,从至少一个准代表节点中确定本轮竞选的代表节点。相较于传统的通过投票
机制的确定代表节点的方法,本方案通过对节点的竞选设置激励机制,利用节点的机会值
以及引入的随机数猜测机制,确定各轮竞选的代表节点,从而弱化了代表节点的集中性,降
低了区块链中代表节点的中心化程度。
刻与初始时刻的第一差值,得到节点对应的有效时间;获取节点在上一轮竞选结束时对应
的余额以及初始余额;根据上一轮竞选结束时对应的余额与初始余额的第二差值,得到当
前有效余额;对有效时间以及当前有效余额进行加权求和,得到节点对应的机会值。
中选出准代表节点。终端102可以获取上述节点集合中,各个节点对应的执行验证时刻,以
及节点参与系统运行的初始时刻,并根据执行验证时刻与初始时刻的第一差值,得到节点
对应的参与系统运行的有效时间;终端102还可以获取节点对应的当前有效余额,终端102
可以获取节点在上一轮竞选结束时对应的余额数,以及节点对应的初始余额,并基于上述
上一轮竞选结束时的余额以及初始余额的第二差值,得到节点对应的当前有效余额。具体
地,将节点参与系统运行的有效时间设为t,则上述有效时间的计算公式可以为:t=Te‑Ts;
其中,Te表示节点执行验证的时刻,Ts代表节点参与系统运行的初始时刻。将节点的当前有
效余额设为c,则节点有效余额的计算公式可以为:c=ce‑cs;其中,ce代表上一轮结束时的
余额数;cs代表初始余额数。由此终端102可以得到上述节点集合中,各个节点对应的参与
系统运行的有效时间t,以及当前有效余额c。
公式可以为:O=A×t+B×c;其中,节点的权利被量化为上述有效时间和余额裱花的加权综
合,并以机会值的形式表示,上述公式中的A和B可以是常数,且满足A+B=1,通常A和B的取
值为0.5。
链中代表节点的中心化程度。
到本轮竞选的目标值。
述各个节点是否通过机会验证,其中,上述目标值可以是动态变化的。终端102可以获取上
一轮竞选中的准代表节点的第一数量,以及参与上一轮竞选的节点的第二数量,并根据第
一数量、第二数量以及上一轮竞选对应的目标值,得到本轮竞选的目标值。具体地,终端102
可以将目标值设为Target,终端102可以根据不同的业务场景将Target设置为相应的初始
值。目标值可以是每轮调整自身的动态量,具体地,目标值的调整过程可以如下所示:
选取过程的示意图。终端102可以对节点集合中各个节点进行机会值的计算,并对各个节点
进行基于机会值和目标值的机会验证,将满足验证条件的节点作为准代表节点。确定目标
值后,各个节点可以根据自己的机会值自发执行验证,节点满足机会验证的条件可以为:O
>Target;即机会值大于目标值时,确定该节点为准代表节点,上述目标值可以在每一轮验
证后,均通过上述公式进行调整,以准备进行下一轮验证。其中,S可以表示初始节点,即上
述节点集合,n可以表示理论上满足认证的初始节点数量,例如可以是所有参与验证的节
点,C可以表示准节点的设置。
极性,从而可以减少区块链中选取代表节点的中心化程度。
值中的目标猜测值;根据目标猜测值,确定本轮竞选的代表节点。
行随机数猜测,终端102可以对各个准代表节点的猜测值进行排序,并获取排序后的节点的
中位数,其中若猜测值的个数为偶数,则终端102可以将中间两个数与所有猜测值的平均值
做比较,取接近平均值的猜测值,作为中位数。终端102可以根据得到的中位值,确定上述多
个猜测值中的目标猜测值,从而可以基于目标猜测值,确定出本轮竞选的代表节点,例如可
以将猜测值为目标猜测值的准代表节点作为代表节点,即作为最终共识决策的代表。
以保证选择的随机性,在这种情况下,代表的产生将更加透明并减少作弊的可能性,从而降
低了区块链中选取代表节点的中心化程度。
个准代表节点在每一轮竞选中只有一次猜测的机会。当各个准代表节点在完成随机数猜测
后,可以向其他准代表节点广播猜测值,即当准代表节点随机猜测完成后,可以在准代表之
间执行广播,使得每个准代表节点从当前的随机数猜测过程中获得尽可能多的结果。
取的中心化程度。
根据猜测值,从至少一个准代表节点中确定出本轮竞选的代表节点,包括:接收到目标准代
表节点的广播消息之后,若获取到大于预设比例的准代表节点对广播消息的验证通过消
息,确定目标准代表节点为本轮竞选的代表节点。
标猜测值,随机数个数为偶数时,则将中间两个数与所有猜测值的平均数作比较,取接近平
均数的数,上述各个准代表节点均可以获取上述排序后得到的中位数,若节点在本轮竞选
中进行随机数猜测时,确定自身的猜测值为上述目标猜测值,则该节点可以向所有其他准
代表节点发送其作为目标准代表节点竞选胜出的广播消息。
该目标准代表节点为本轮竞选的代表节点。具体地,假设准节点A接收到的一组随机数,排
序后发现中位数是自己猜测的,则向所有准代表节点发送广播,让其他准代表节点验证,终
端102可以接收上述各个准代表节点的验证结果,若超过预设比例,例如三分之二的准代表
节点验证通过,则节点A成为本轮竞选的正式的代表节点。需要说明的是,除代表节点外,每
个准代表节点都需要验证代表节点所生成块的合法性,具体地,可以包括两部分验证:第一
验证代表节点通过机会验证时是否作弊;第二个验证表示节点猜测的随机数是否为所有结
果的中位数。其中每个准代表参加验证的热情直接影响到以后的奖励。
分配奖励,该奖励可以是节点的余额变化。奖励的主要来源是本轮商定区块中所有交易的
费用,可以主要分配给当前共识中编写的区块的代表节点以及参与验证的准代表节点,在
本轮竞选中已达成共识的所有交易费用,将由书面的共识代表节点和参与验证的准代表节
点支付,由于存在奖励,每个节点将积极参与验证并争取更多的奖励。终端102可以调整所
有准代表节点的机会影响因子,从而使所有节点在下一轮竞争中处于同一水平,终端102可
以在本轮竞选后,清除成为准代表节点的有效时间t,即将初始时间Ts设置为验证结束的时
间Te,从而避免了在每一轮竞选中重复选择相同的节点的情况。另外,对于本轮未通过机会
验证,没有成为准代表节点的节点,系统中运行的有效时间也会增加,对于准代表和代表节
点,尽管它们获得奖励,但它们的有效运行时间将减少。
选举中,所有节点上的机会仍然处于相对平衡的状态,这确保了每个节点对于下一轮选举
都可以相对公平,从而可以减少区块链中代表节点的中心化程度。
执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分
步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完
成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是
可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
合。
的第一差值,得到节点对应的有效时间;获取节点在上一轮竞选结束时对应的余额以及初
始余额;根据上一轮竞选结束时对应的余额与初始余额的第二差值,得到当前有效余额;对
有效时间以及当前有效余额进行加权求和,得到节点对应的机会值。
及上一轮竞选对应的目标值,得到本轮竞选的目标值。
本轮竞选的代表节点。
表节点竞选胜出的广播消息。
代表节点为本轮竞选的代表节点。
分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备
中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执
行以上各个模块对应的操作。
其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易
失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该
内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备
的数据库用于存储区块链中的节点数据。该计算机设备的网络接口用于与外部的终端通过
网络连接通信。该计算机程序被处理器执行时以实现一种区块链代表节点选取方法。
可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,
本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可
包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read‑
Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器
(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种
形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存
储器(Dynamic Random Access Memory,DRAM)等。
盾,都应当认为是本说明书记载的范围。
说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护
范围。因此,本申请专利的保护范围应以所附权利要求为准。