一种委托工作量证明共享方法技术

技术编号:37422581 阅读:29 留言:0更新日期:2023-04-30 09:44
本发明专利技术公开了一种可限制节点的恶意行为并降低资源的消耗,同时保证区块链共识的高效性和安全的委托工作量证明共识方法。本发明专利技术通过降低算法的难度并设计相应机制在每轮共识中选择十个候选节点来减少对具有最大计算能力的节点的控制。同时,基于每个节点随机值的生成和加密,提出了可用于联盟链的共识模型。经过改进,可减少出块过程中消耗的能源同时在一定程度上提升安全性。一定程度上提升安全性。一定程度上提升安全性。

【技术实现步骤摘要】
一种委托工作量证明共享方法


[0001]本专利技术涉及区块链
,具体涉及一种降低能源消耗和增强安全性的工作量证明共识机制。

技术介绍

[0002]区块链作为一种分布式账本技术,将交易数据以区块的形式打包,并在去中心化P2P网络连接的全网节点之间通过共识算法达成一致,多方共同维护同一份不可篡改的链式账本,其本质上是一种具有去中心化、匿名性、不可篡改性等特征的拜占庭容错全复制分布式数据库。近年来,区块链技术广泛应用于医疗、金融、物联网、交通等领域。其中,共识机制作为区块链底层核心技术,决定了区块链的层次结构,保证了区块链系统的可信度,提升了区块链网络的安全性,确保了分布式存储的一致性。一个良好的共识机制可以提升区块链系统性能,促进区块链技术应用。区块链涉及的底层技术包括P2P网络、共识算法、密码学加密、分布式数据库等。其中本文将着重探讨对其中某一共识机制的改进。在部分公有链系统中工作量证明算法用于确定交易的有效性并在链中生成新块,以消除任何欺诈企图。出块节点必须解决一个复杂的算法问题并经全网过半数节点验证通过后才能在主链中添加新块。为此,出块节点需操作特定的计算机硬件,以找到一个符合难度的随机值。为了找到符合要求的解,节点将测试大量的可能性,这将会消耗大量的能源。为了解决能源消耗问题,研究者们又提出了许多新的共识机制,如POS(权重证明机制)及DPOS(股份授权证明)但这种算法在一定程度上会导致资产的集中化的问题。

技术实现思路

[0003]为了限制节点的恶意行为并且降低资源的消耗,以同时保证区块链共识的高效性和安全性,本专利技术提出一种委托工作量证明共识方法。
[0004]根据本专利技术的一方面,提供了一种公有链场景下委托工作量证明的方法,包括:
[0005]S1、出块节点选取交易池中的交易,执行低难度目标值的工作量证明算法,生成区块。
[0006]S2、出块节点将区块广播至全网,并验证接收其他候选区块,形成候选区块列表。
[0007]S3、出块节点选取候选列表中最接近目标值的十个候选区块,广播至全网并与全网达成一致后,依据等式计算出最终出块节点。
[0008]S4、若出现分叉问题,全网节点回滚至上一区块并重新收集选举候选区块以及出块节点。
[0009]根据本专利技术的另一方面,提供了一种联盟链场景下委托工作量证明的方法,包括:
[0010]S1、出块节点不执行工作量证明算法,而是直接在本地生成一个随机数以及临时密钥。
[0011]S2、出块节点利用临时密钥对随机数进行加密,将加密结果广播至全网。
[0012]S3、网络中每个出块节点广播自身的临时密钥并接收网络中其他节点的临时密
钥。
[0013]S4、出块节点利用接收的临时密钥将上一轮得到的所有加密结果依次解密得到随机数。
[0014]S5、对接收到的所有随机数进行运算得到最终的出块节点。
[0015]本专利技术实施的技术方案通过降低算法的难度并设计相应机制在每个共识中选择十个候选节点来减少对具有最大计算能力的节点的控制。同时,基于每个节点随机值的生成和加密,提出了可用于联盟链的共识模型。经过改进,可减少出块过程中消耗的能源同时在一定程度上提升安全性。
附图说明
[0016]图1为本专利技术在公有链场景下分叉问题解决方案示意图;
[0017]图2为本专利技术一种委托工作量证明共识方法在联盟链场景下的流程示意图;
[0018]图3为本专利技术一种委托工作量证明共识方法在公有链场景下的流程示意图;
具体实施方式
[0019]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0020]为了实现根据本专利技术的这些目的和其它优点,提供了一种委托工作量证明算法。针对公有链与联盟链的不同特点,本专利技术提出了相应的工作量证明机制改进方法,具体包含以下步骤:
[0021]在公有链场景中,本专利技术包含以下步骤。
[0022]步骤1:在第一阶段,令网络中所有参与出块竞争的节点执行传统的工作量证明算法,其中,算法要求的难度目标值远低于现有系统运行的工作量证明算法的难度目标值。
[0023]步骤2:所有出块节点计算目标值,若目标值满足目标难度则广播至全网,同时在计算期间需接收并验证网络中其余节点发送过来的区块。
[0024]步骤3:每一个出块节点在计算出一个符合难度的目标值或收到十个候选区块后,停止对目标值的计算。
[0025]步骤4:收到十个候选区块的出块节点在将候选列表验证后,将包含十个候选区块的列表广播至网络。
[0026]步骤5:接收到候选区块列表的节点对列表进行验证后,将列表继续广播至全网。
[0027]步骤6:出块节点对接收到的所有列表中的区块进行排序,选择出目标值最小的前十个候选区块,组成新的列表,广播至全网。若所计算出的目标值相同,则优先选择包含事务多的候选区块。
[0028]步骤7:在第二阶段,所有出块节点执行以下等式得出最终出块节点。在等式中,i表示列表中的目标值对应的区块编号。
[0029][0030]步骤8:若遇到分叉问题,如图1所示,所有参与共识的节点将回滚到上一区块,使
维护的区块链不存在分支。
[0031]步骤9:对于回滚到上一区块的节点,将对新的候选区块列表进行排序,重新选出出块节点。
[0032]步骤10:若遇到分叉问题,且接收到的新区块块号小于当前区块高度两个及以上,则认为该新区块过时,继续当前的区块操作。
[0033]在联盟链场景中,本专利技术包含以下步骤。
[0034]步骤1:联盟链的节点数量相比公有链较少,因此在第一阶段出块节点无需运行传统的工作量证明算法,只需令所有参与出块的节点在本地生成一个随机数m
i
以及临时密钥k
i

[0035]步骤2:出块节点执行以下等式对随机数m
i
进行加密。其中p为系统给定的素数值。
[0036]C
i
=m
i
×
k
i mod p
[0037]步骤3:因为存在m

与k

,其加密后取模的结果等价于C
i
,因此出块节点还需执行下列等式保证结果的唯一性。
[0038]C

i
=ki
ki mod p
[0039]步骤4:网络中的所有节点将接收彼此发送的列表{C
i
,C

i
}。当每个节点都接收到所有节点发送的列表后,进入下一阶段。
[0040]步骤5:在第二阶段,所有节点广播自身的临时密钥k
i...

【技术保护点】

【技术特征摘要】
1.一种委托工作量证明共识算法,其特征在于:对于公有链系统,基于工作量证明算法,形成多个候选区块。利用出块算法从候选区块列表中选出最终区块。对于联盟链系统,采用密钥生成算法与加解密算法,结合出块算法选出最终出块节点。2.如权利要求1所述一种适用于公有链系统的委托工作量证明共识算法,其特征在于:在出块竞争阶段,参与竞争的出块节点运行低难度目标值的工作量证明算法,并将满足结果的区块广播至全网。在最终出块阶段,全网出块节点依据同一等式从候选区块列表中选出最终区块。3.如权利要求2所述一种适用于公有链系统的委托工作量证明共识算法,其特征在于:若遇到分叉问题,,所有参与共识的节点将回滚到上一区块,使维护的区块链不存在分支。4.如权利要求1所述一种适用于联盟链系统的委托工作量证明共识算法,其特征在于:在出块竞争阶段,各出块节点对本地生成的随机数进行加密,并传播至全网。在最终出块阶段,所有节点广播自身的密钥,以使网络中其他对上一轮随机值进行解密。将所有解密结果进行运算得出最终出块节点。5.如权利要求2所述一种适用于公有链系统的委托工作量证明共识算法,其特征在于:具体包括以下步骤:1)所有出块节点计算低难度目标值,若目标值满足目标难度则广播至全网,同时在计算期间需接收...

【专利技术属性】
技术研发人员:郑志明李春培袁波章天乙
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1