CN110266781A - 一种基于哈希函数的网络节点随机选取方法 - Google Patents
一种基于哈希函数的网络节点随机选取方法 Download PDFInfo
- Publication number
- CN110266781A CN110266781A CN201910507932.8A CN201910507932A CN110266781A CN 110266781 A CN110266781 A CN 110266781A CN 201910507932 A CN201910507932 A CN 201910507932A CN 110266781 A CN110266781 A CN 110266781A
- Authority
- CN
- China
- Prior art keywords
- network node
- person
- data
- seed
- data decimation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1072—Discovery involving ranked list compilation of candidate peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Power Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于哈希函数的网络节点随机选取方法,用于解决现有技术中存在的公平性不足的技术问题,实现步骤为:数据提供者选取随机种子、包含网络节点的集合A和需返回的网络节点数量,并发送给数据选取者;数据选取者初始化动态参数、集合B和选取的网络节点数量;数据选取者对集合A中的网络节点进行编号,并计算标识参数;数据选取者根据标识参数选取集合A中的网络节点,并将该网络节点添加到集合B中;数据选取者判断选取的网络节点数量是否等于需返回的网络节点数量;数据选取者将集合B发送给数据提供者。本发明通过采用哈希函数计算及更新动态参数的方式,有效地提高了选取过程的公平性,保护了网络节点的权益。
Description
技术领域
本发明属于计算机技术领域,涉及一种网络节点选取方法,具体涉及一种基于哈希函数的网络节点随机选取方法,可应用于区块链等系统。
背景技术
区块链是由多个网络节点共同参与维护的分布式账本,以其去中心化,去信任,匿名性,不可篡改,可追溯性等技术特点,被广泛应用于数字货币,智能合约,智慧城市,医疗信息管理等领域。在区块链中,网络节点通过执行共识算法对新建区块达成共识,从而保证区块链中数据的一致性和真实性,以及区块链的安全性和高效性。因此,共识算法是区块链技术中不可或缺的技术方法。
强一致性共识算法能够解决区块链系统中由人为错误操作,系统漏洞,软件漏洞而引发的种种问题。采用强一致性共识算法的区块链比采用其它类型共识算法的区块链更加安全,更适合应用于复杂的网络环境。然而,强一致性共识算法的复杂度较高,在网络节点数量较多时效率严重不足。通过采用网络节点选取方法可以提高网络节点执行强一致性共识算法达成共识的效率,保证区块链的安全性与高效性。
网络节点选取方法通过在较多的网络节点中选取较少的网络节点作为代表,降低执行强一致性共识算法的网络节点数量,从而提高网络节点达成共识的效率。公平的选取是每个网络节点的根本需求,是每个网络节点权益的重要保障。而选取的公平性主要体现在每个网络节点被选取的概率是否相等上。
申请公布号为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更新动态参数保证了下一步的选取仍是随机。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的较佳的具体实施例而已,并不用于限制本发明,任何熟悉本技术领域的技术人员在本发明揭露的技术范围,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内,因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (1)
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,令设选取的网络节点数量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)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910507932.8A CN110266781B (zh) | 2019-06-12 | 2019-06-12 | 一种基于哈希函数的网络节点随机选取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910507932.8A CN110266781B (zh) | 2019-06-12 | 2019-06-12 | 一种基于哈希函数的网络节点随机选取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110266781A true CN110266781A (zh) | 2019-09-20 |
CN110266781B CN110266781B (zh) | 2021-05-18 |
Family
ID=67917828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910507932.8A Active CN110266781B (zh) | 2019-06-12 | 2019-06-12 | 一种基于哈希函数的网络节点随机选取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110266781B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786772A (zh) * | 2019-12-10 | 2020-10-16 | 深圳启元信息服务有限公司 | 一种基于区块链的确定的非确定性选择方法、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107347009A (zh) * | 2017-08-30 | 2017-11-14 | 北京知金链网络技术有限公司 | 区块链一维随机数共识推举方法 |
CN108259235A (zh) * | 2018-01-04 | 2018-07-06 | 杭州复杂美科技有限公司 | 一种区块链记账节点选择方法 |
CN108614748A (zh) * | 2018-04-19 | 2018-10-02 | 上海分布信息科技有限公司 | 一种拜占庭容错的方法及其通证经济的治理系统 |
CN108665274A (zh) * | 2018-05-14 | 2018-10-16 | 北京链享未来科技有限公司 | 一种记账节点智能选择方法 |
US20190034465A1 (en) * | 2017-07-28 | 2019-01-31 | Hitachi, Ltd. | Blockchain logging of data from multiple systems |
-
2019
- 2019-06-12 CN CN201910507932.8A patent/CN110266781B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190034465A1 (en) * | 2017-07-28 | 2019-01-31 | Hitachi, Ltd. | Blockchain logging of data from multiple systems |
CN107347009A (zh) * | 2017-08-30 | 2017-11-14 | 北京知金链网络技术有限公司 | 区块链一维随机数共识推举方法 |
CN108259235A (zh) * | 2018-01-04 | 2018-07-06 | 杭州复杂美科技有限公司 | 一种区块链记账节点选择方法 |
CN108614748A (zh) * | 2018-04-19 | 2018-10-02 | 上海分布信息科技有限公司 | 一种拜占庭容错的方法及其通证经济的治理系统 |
CN108665274A (zh) * | 2018-05-14 | 2018-10-16 | 北京链享未来科技有限公司 | 一种记账节点智能选择方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111786772A (zh) * | 2019-12-10 | 2020-10-16 | 深圳启元信息服务有限公司 | 一种基于区块链的确定的非确定性选择方法、系统及存储介质 |
CN111786772B (zh) * | 2019-12-10 | 2024-05-07 | 北京铭泰恒通信息技术有限公司 | 一种基于区块链的确定的非确定性选择方法、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110266781B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Poelstra et al. | Confidential assets | |
Bastiaan | Preventing the 51%-attack: a stochastic analysis of two phase proof of work in bitcoin | |
CN109523683B (zh) | 一种基于区块链技术的不记名电子投票方法 | |
CN111539731A (zh) | 基于区块链的联邦学习方法及装置和电子设备 | |
CN110827028B (zh) | 一种基于区块链的数据采集交易系统和方法 | |
CN109597822B (zh) | 一种用户数据的存储及查询方法和用户数据处理装置 | |
CN106415530A (zh) | 区块挖掘方法和装置 | |
Fischer et al. | Bounds on secret key exchange using a random deal of cards | |
CN109785132A (zh) | 一种基于区块链的防伪溯源方法、装置及存储介质 | |
CN109410043B (zh) | 一种基于分层树状结构的区块链信息高效存储方法及装置 | |
CN111177080A (zh) | 一种基于区块链和ipfs的知识图谱存储与验证方法 | |
CN101753304B (zh) | 一种生物特征和密钥绑定的方法 | |
CN108667717A (zh) | 基于即时通信消息记录的区块链处理方法、介质、装置和计算设备 | |
KR100723996B1 (ko) | 계산 방법, 계산 장치 및 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 | |
CN110661790A (zh) | 一种区块链隐私数据的保护方法、装置、设备和介质 | |
CN111047316A (zh) | 一种反篡改的智能区块链系统及实现方法 | |
CN103279713A (zh) | 一种优化的社交网络图数据发布隐私保护方法 | |
CN112132577B (zh) | 一种基于区块链的多重监管的交易处理方法及装置 | |
Bingöl et al. | An efficient 2-party private function evaluation protocol based on half gates | |
CN109985389A (zh) | 基于区块链智能合约的牌类游戏防作弊方法及其系统 | |
CN110209729A (zh) | 数据转移对象识别的方法及装置 | |
CN111444203B (zh) | 一种同步处理方法、装置、设备及介质 | |
CN110266781A (zh) | 一种基于哈希函数的网络节点随机选取方法 | |
CN111666289A (zh) | 数据的存储与查询方法、装置、电子设备及可读存储介质 | |
CN108471382A (zh) | 一种基于节点度值的复杂网络聚类算法攻击方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |