一种基于哈希函数的网络节点随机选取方法技术

技术编号:22172983 阅读:30 留言:0更新日期:2019-09-21 13:41
本发明专利技术提出了一种基于哈希函数的网络节点随机选取方法,用于解决现有技术中存在的公平性不足的技术问题,实现步骤为:数据提供者选取随机种子、包含网络节点的集合A和需返回的网络节点数量,并发送给数据选取者;数据选取者初始化动态参数、集合B和选取的网络节点数量;数据选取者对集合A中的网络节点进行编号,并计算标识参数;数据选取者根据标识参数选取集合A中的网络节点,并将该网络节点添加到集合B中;数据选取者判断选取的网络节点数量是否等于需返回的网络节点数量;数据选取者将集合B发送给数据提供者。本发明专利技术通过采用哈希函数计算及更新动态参数的方式,有效地提高了选取过程的公平性,保护了网络节点的权益。

A Node Random Selection Method Based on Hash Function

【技术实现步骤摘要】
一种基于哈希函数的网络节点随机选取方法
本专利技术属于计算机
,涉及一种网络节点选取方法,具体涉及一种基于哈希函数的网络节点随机选取方法,可应用于区块链等系统。
技术介绍
区块链是由多个网络节点共同参与维护的分布式账本,以其去中心化,去信任,匿名性,不可篡改,可追溯性等技术特点,被广泛应用于数字货币,智能合约,智慧城市,医疗信息管理等领域。在区块链中,网络节点通过执行共识算法对新建区块达成共识,从而保证区块链中数据的一致性和真实性,以及区块链的安全性和高效性。因此,共识算法是区块链技术中不可或缺的技术方法。强一致性共识算法能够解决区块链系统中由人为错误操作,系统漏洞,软件漏洞而引发的种种问题。采用强一致性共识算法的区块链比采用其它类型共识算法的区块链更加安全,更适合应用于复杂的网络环境。然而,强一致性共识算法的复杂度较高,在网络节点数量较多时效率严重不足。通过采用网络节点选取方法可以提高网络节点执行强一致性共识算法达成共识的效率,保证区块链的安全性与高效性。网络节点选取方法通过在较多的网络节点中选取较少的网络节点作为代表,降低执行强一致性共识算法的网络节点数量,从而提高网络节点达成共识的效率。公平的选取是每个网络节点的根本需求,是每个网络节点权益的重要保障。而选取的公平性主要体现在每个网络节点被选取的概率是否相等上。申请公布号为CN108810077A,名称为“区块链共识处理方法、电子装置及计算机可读存储介质”的专利申请,公开了一种基于周期性轮换机制和工作量证明算法的网络节点选取方法,该方法通过在轮换周期中的竞选起点时刻,由数据选取者对网络节点集合执行工作量证明算法的方式,实现了数据提供者指定数量的网络节点选取,但其存在的不足之处在于:在工作量证明算法中,网络节点的算力高低是数据选取者是否选取该网络节点的重要依据,算力越高的网络节点被选取的概率越大,这种公平性不足的网络节点选取方法会导致严重的安全漏洞,损害网络节点的权益。
技术实现思路
本专利技术的目的是针对上述现有技术的不足,提出了一种基于哈希函数的网络节点随机选取方法,用于解决现有技术存在的公平性不足的技术问题。为实现上述目的,本专利技术采取的技术方案,包括如下步骤:(1)数据提供者向数据选取者发送应用信息:(1a)数据提供者从字符空间中任意选取比特长度为l的字符串作为随机种子i,并从网络空间中选取p个网络节点组成集合A,同时从整数区间(0,p]中选取需返回的网络节点数量m,其中l>0,p>0;(1b)数据提供者将随机种子i、集合A和需返回的网络节点数量m作为应用信息发送给数据选取者;(2)数据选取者初始化选取信息:数据选取者采用哈希函数H,通过随机种子i计算动态参数seed,seed=H(i),并设置集合B,令设选取的网络节点数量n,令n=1;(3)数据选取者选取网络节点:(3a)数据选取者对集合A中的p-n+1个网络节点进行编号,并对动态参数seed进行模运算,得到标识参数s,s=seed(mod(p-n+1))+1;(3b)数据选取者选取集合A中的第s个网络节点,并将该第s个网络节点添加到集合B中;(3c)数据选取者判断m=n是否成立,若是,将集合B发送给数据提供者,否则,令n=n+1,seed=H(seed),并执行步骤(3a)。本专利技术与现有技术相比,具有如下优点:本专利技术在数据选取者选取网络节点的过程中,通过利用哈希函数和随机种子计算初始动态参数以及利用哈希函数更新动态参数的方法,实现了当数据提供者发送的网络节点集合与随机种子相同时,数据选取者选取出的网络节点相同,并且,数据提供者提供的每个网络节点被数据选取者选取的概率是相等的,从而保证了网络节点选取的公平性,与现有技术相比,有效地提高了网络节点选取的公平性,保护了网络节点的权益。附图说明图1为本专利技术的实现流程图。具体实施方式以下结合附图和具体实施例,对本专利技术作进一步详细描述:参照图1.本专利技术实施例对区块链网络中的节点进行随机选取,包括如下步骤:步骤1)数据提供者向数据选取者发送应用信息:(1a)数据提供者从字符空间中任意选取比特长度为l的字符串作为随机种子i,其中,l>0,本实施例选择l=256。随机种子i将作为哈希函数H的初始输入以保证选取的公平性不依赖于数据选取者的可靠性,其中,哈希函数能够确定性地将任意比特长度的输入变换成一个固定比特长度的输出,同时保证不同的输出所对应的输入不同。目前常用的哈希函数主要有两种:一种是满足输出与真随机数计算不可区分的哈希函数,另一种是不满足输出与真随机数计算不可区分的哈希函数,第一种哈希函数均满足本专利技术的要求,本实施例选择的是第一种哈希函数中的哈希函数SHA3-256。数据提供者在区块链网络空间中将p个有意参与共识的网络节点组成集合A,其中,p>0,本实施例选择p=10000,任意的区块链网络均满足本专利技术的要求,本实施例选择的是采用强一致性共识算法的区块链网络。数据提供者根据强一致性共识算法的效率需求,从整数区间(0,p]中选取需返回作为代表的网络节点数量m,本实施例选择m=100以满足0<m≤10000;(1b)数据提供者将随机种子i、集合A和需返回作为代表的网络节点数量m作为应用信息发送给数据选取者;步骤2)数据选取者初始化选取信息:数据选取者采用哈希函数SHA3-256,通过随机种子i计算动态参数seed,seed=SHA3-256(i),同时设置集合B,令设选取的网络节点数量n,令n=1。动态参数seed作为哈希函数SHA3-256的输出,与真随机数计算不可区分;步骤3)数据选取者选取网络节点:(3a)数据选取者对集合A中的p-n+1个网络节点进行编号,并对动态参数seed进行模运算,得到标识参数s,s=seed(mod(p-n+1))+1。模运算和动态参数seed保证了标识参数s与真随机数计算不可区分且标识参数s在有效区间(0,p-n+1]内;(3b)数据选取者选取集合A中的第s个网络节点,并将该第s个网络节点添加到集合B中,通过利用标识参数s选取网络节点的方法,保证了选取的过程是随机的,从而使得集合A中的每个网络节点被选取的概率相同;(3c)数据选取者判断m=n是否成立,若是,则集合B中已经包含m个选取出的网络节点,将集合B发送给数据提供者作为网络节点代表集合,否则,令n=n+1,seed=SHA3-256(seed),并执行步骤(3a)。采用哈希函数SHA3-256更新动态参数保证了下一步的选取仍是随机。以上所述的具体实施例,对本专利技术的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本专利技术的较佳的具体实施例而已,并不用于限制本专利技术,任何熟悉本
的技术人员在本专利技术揭露的技术范围,所做的任何修改、等同替换、改进等,均应包含在本专利技术的保护范围之内,因此,本专利技术的保护范围应该以权利要求的保护范围为准。本文档来自技高网
...

【技术保护点】
1.一种基于哈希函数的网络节点随机选取方法,其特征在于包括如下步骤:(1)数据提供者向数据选取者发送应用信息:(1a)数据提供者从字符空间中任意选取比特长度为l的字符串作为随机种子i,并从网络空间中选取p个网络节点组成集合A,同时从整数区间(0,p]中选取需返回的网络节点数量m,其中l>0,p>0;(1b)数据提供者将随机种子i、集合A和需返回的网络节点数量m作为应用信息发送给数据选取者;(2)数据选取者初始化选取信息:数据选取者采用哈希函数H,通过随机种子i计算动态参数seed,seed=H(i),并设置集合B,令

【技术特征摘要】
1.一种基于哈希函数的网络节点随机选取方法,其特征在于包括如下步骤:(1)数据提供者向数据选取者发送应用信息:(1a)数据提供者从字符空间中任意选取比特长度为l的字符串作为随机种子i,并从网络空间中选取p个网络节点组成集合A,同时从整数区间(0,p]中选取需返回的网络节点数量m,其中l>0,p>0;(1b)数据提供者将随机种子i、集合A和需返回的网络节点数量m作为应用信息发送给数据选取者;(2)数据选取者初始化选取信息:数据选取者采用哈希函数H,通过随机种子i计算动态参数s...

【专利技术属性】
技术研发人员:王保仓詹宇
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

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

1