一种区块链主节点匿名排序方法技术

技术编号:33293071 阅读:116 留言:0更新日期:2022-05-01 00:16
本发明专利技术公开了一种区块链主节点匿名排序方法,包括:初始化区块链系统,区块链系统内的节点集合中所有节点生成相同的创世纪区块;计算公开承诺;发送匿名承诺;生成有序领导者序列;搜集投票;广播有序领导者序列;等待序领导者序列超时。综合运用门限签名、环签名多种隐藏主节点的身份,设计了匿名节点身份认证机制;节点在不泄露各自身份的前提下,产生共同的主节点序列,周期性的更新有序领导者节点列表;算法的通讯复杂度仅仅为O(n),具有良好的性能与可扩展性;通过该算法可以隐藏主节点的身份,减少主节点失效引起的系统故障,提升区块链系统的安全性。块链系统的安全性。块链系统的安全性。

【技术实现步骤摘要】
一种区块链主节点匿名排序方法


[0001]本专利技术属于区块链共识
,尤其涉及一种区块链主节点匿名排序方法。

技术介绍

[0002]区块链是一种目前受到各国战略性关注的革命性技术,它是不可篡改、可追踪、不断增长的分布式账本式数据库。区块链作为一种链式数据结构,由不断增长的区块利用哈希指针前后链接而成。区块链中的数据只能追加、不可删除或篡改。区块链系统是一个典型的分布式系统,其中每个节点维护一份本地区块链数据备份。在区块链系统中,区块链共识协议制定了一组每个节点必须遵守的规则,最终保证分布式系统中各节点区块链数据备份的一致性。
[0003]共识算法是指在多方协同的条件下,所有参与方对任务执行结果达成共识的算法,共识算法多应用于确保分布式系统数据一致。新节点要想加入到区块链系统,也需要经过区块链各个节点的共识。区块链共识算法分为两个主要步骤:主节点选举和区块共识。在主节点选举阶段,某个节点(或多个节点)成为出块节点,提出新区块。由于分布式网络中可能存在的恶意节点及分叉块的影响,其他节点在收到新区块以后不能直接将其加入自己的本地区块链中。所有节点需要利用主链共识对新区块及其构成的主链达成一致。主节点选举和区块共识共同保证了区块链数据的正确性和一致性,从而为分布式环境中的不可信主体间建立信任关系提供技术支撑。区块链共识通常需要选出一个领导人节点,该节点负责发起提案并发送给其他节点,其他节点基于提案更新数据。领导人节点的负责提议与产生区块,直接影响区块链系统的性能和稳定性。区块链共识协议的出块节点选举机制与传统分布式协议中的领导人选举(leader election)问题类似,指分布式系统中采用某种机制选出一个领导人节点,该节点负责发起提案并发送给其他节点,其他节点基于提案更新数据,以此提升分布式系统运行效率。领导人选举思想应用于随后一系列的分布式系统共识协议,由于大部分区块链系统是由出块节点负责发起区块提案并发送给其他节点,因此主节点的稳定性与系统整体稳定性直接相关。出块节点选举机制类似于领导人选举问题,有所不同的是,区块链共识协议的出块节点选举机制需要抵御开放网络环境中的恶意节点。通过在P2P 网络中伪造大量虚拟节点,恶意节点可以发起女巫攻击,从而控制区块链系统。为了解决这一问题,区块链系统在出块节点选举环节通常工作量证明、权益证明、可验证随机数。
[0004]现有技术中区块链主节点选择算法包括:
[0005]1、工作量证明
[0006]比特币首次使用工作量证明(Proof of work,简称PoW)机制进行出块节点选举,随后的大量区块链研究工作及系统都采用这一机制。工作量证明用于实现可验证的计算任务。工作量证明包括证明者和验证者两个角色,证明者向验证者出示证据,表明自己在某时间段内完成了一定数量的计算任务。由于产生证据需消耗一定量计算资源,工作量证明可用于缓解垃圾邮件和其他拒绝服务攻击问题。
[0007]由于哈希算法具备的输入敏感和抗碰撞特点,节点唯有不断调整输入值(Nonce、交易数据等)以寻找满足条件的Nonce。因此,节点解决难题从而成为出块节点的概率与其可用的计算资源成正比。计算资源的投入可被视为一种身份定价机制,即便攻击者伪造大量虚拟身份,也无法提升计算资源,从而增加成为出块节点的优势。因此,工作量证明难题解决了分布式系统中的女巫攻击问题。另一方面,由于哈希算法具备的正向快速和逆向困难特点,验证节点可利用出块节点寻找的解快速验证正确性。因此,工作量证明难题实现了匿名分布式网络中的可公开验证。
[0008]2、权益证明
[0009]针对工作量证明机制的资源浪费问题,比特币社区在2011年首次提出了权益证明机制,根据节点掌握的比特币数量而不是算力作为权重选举出块节点。权益证明机制的安全性基于权益拥有者比矿工更有动力维护网络安全的假设,当区块链系统遭到攻击,权益拥有者自身利益更容易受损。2012年,权益证明机制首次在点点币 (Peercoin/Ppcoin)系统中得到应用。点点币以权益作为选举权重,提出了权益证明难题。
[0010]与比特币工作量证明难题相比,点点币权益证明难题主要有两处不同:哈希运算中移除随机数Nonce,引入币龄调整难题难度。由于移除随机数Nonce,点点币权益证明难题减轻了工作量证明难题算力竞争问题。在给定元数据blockData的情况下,共识节点在求解点点币权益证明难题中,可尝试的只有时间戳变量。由于点点币采用以秒计数的UNIX时间戳,节点求解难题时尝试空间有限。因此,点点币权益证明难题大大缩小了工作量证明难题的计算尝试空间,减缓了算力竞赛带来的资源浪费问题。
[0011]3、可验证随机函数
[0012]基于权益证明机制在一定程度上缓和了工作量证明机制的算力浪费问题,但采用的仍是基于难题求解的竞争性选举机制。为了进一步解决算力浪费问题,提高出块节点选举效率,还有一些系统采用基于随机函数的机制。这类机制采用随机算法确定出块节点,同时,其他节点可通过随机算法验证出块节点身份的正确性。由于不再利用算力竞争成为出块节点,基于随机函数的权益证明属于非竞争性选举机制。
[0013]可验证随机函数可以看作是一个随机预言机,通过任意的一个输入,获得一个随机数输出,满足如下条件:
[0014]1)对于不同的输入,输出的值是随机的,并且均匀分布在值域范围内。
[0015]2)对于相同的输入,它得到的输出一定是相同的。
[0016]但是可验证随机函数比随机预言机多了一个非交互的零知识证明,可以用来证明该随机数输出的正确性,表明这个随机数的确是某个人生成的。它包含四个函数:生成密钥、生成随机数输出、计算零知识证明、验证随机数输出。生成随机数和其证明的过程在本机执行,输入是私钥和一个值。输出就是随机数本数以及它的零知识证明。其他节点收到该输入和证明之后,结合生成该随机数的节点的公钥,即可对该随机数处进行验证。采用基于随机函数的机制可以随机的选取主节点,相比于轮询算法,一定程度上提升系统的安全性。
[0017]然而,由于现有大多数共识算法存在如下缺点:
[0018]1、各个节点和身份信息全网公开可见,节点按照固定的顺序依次作为主节点产生区块,容易导致主节点被恶意节点攻击,从而造成导致主节点的提案被中断,影响系统活性和安全性。
[0019]2、现有主节点选择算法例如采用难题求解或者随机选择机制,需要付出较多的系统算力,难以适应性能和扩展性较高的使用场景;表现在:工作量证明、权益证明、可验证随机函数等策略选取领导者节点时,采用的基于难题求解的竞争性选举机制,需要付出较多的算力。可验证随机函数虽然解决了随机数的生成与验证问题,通过随机数策略选取主节点,但是由于调用了多种加密算法和零知识证明,需要耗费比较多的系统资源,难以适应性能和扩展性较高的使用场景。

技术实现思路

[0020]本专利技术的目的是提供一种区块链主节点匿名排序方法,通过多种算法隐藏主节点身份,各个节点在不泄露各自身份的前提下,所有节点周期性的产本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种区块链主节点匿名排序方法,其特征在于,包括:步骤1:初始化区块链系统,所述区块链系统内的节点集合中所有节点生成相同的创世纪区块,所述创世纪区块是一个特殊的区块,包含了起始状态下节点的ID与IP信息,所述区块链系统内的节点按照所述创世纪区块中的节点顺序,依次成为所述区块链系统的主节点;步骤2:计算公开承诺;步骤3:发送匿名承诺;步骤4:生成有序领导者序列;步骤5:搜集投票;步骤6:广播有序领导者序列;步骤7:等待序领导者序列超时。2.根据权利要求1所述的一种区块链主节点匿名排序方法,其特征在于,所述步骤2包括:如果节点的视图增加值等于周期p
i
,则启动匿名主节点选择算法,所述区块链系统内的节点N
i
计算凭证所述凭证表示节点N
i
在区块高度h的数字签名,所述凭证是节点身份的重要证明,每个节点仅仅保存自己的凭证,无法伪造其他共识节点的凭证,进行节点计算并生成公开承诺通过Hash函数的不可逆性对所述凭证的信息实现匿名隐藏。3.根据权利要求1所述的一种区块链主节点匿名排序方法,其特征在于,所述步骤3包括:所述节点N
i
的匿名承诺的匿名承诺包含所述公开承诺的及其环签名、高度h
i
和视图v
i
,所述节点N
i
发送匿名承诺到匿名主节点序列对应的节点,其中n的初始值为1且n>0。4.根据权利要求1所述的一种区块链主节点匿名排序方法,其特征在于,所述步骤4包括:节点N
j
收到其他节点发送的匿名承诺后,首先判断所述公开承诺是否有效,包括将所述环签名和所述公开承诺作为输入参数,通过验证函数验证所述公开承诺的有效性;若所述匿名承诺有效,将对应的公开承诺按照升序放入到有序领导者序列;若所述匿名承诺无效,丢弃对应的所述公开承诺其中所述节点N
j
仅仅可以确定所述匿名承诺是由节点集合中的某个节点环签名,但是无法知晓具体是哪一个节点生成匿名承诺;节点N
i
可能由于网络故障或者恶意故障的原因,产生多个不同的匿名承诺和这些匿名承诺被送给节点N
j
。为了防止同一节点产生多个匿名承诺,影响产生正确的生成有序领导者序列。节点N
j
在收到匿名承诺时,需要进行验证。当且仅当满足如下约
束条件时,认为匿名承诺有效,无效并被丢弃:无效并被丢弃:约束条件:(1)(2)(3)v
i
'≥v
i
(4)h
i
'≥h
i
约束条件(1)表示,节点N
i
仅仅可以产生高度h下...

【专利技术属性】
技术研发人员:胡凯万季
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:

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

1