CN114362963B - 一种基于算力证明的治未病场景下联盟链主节点选举方法 - Google Patents
一种基于算力证明的治未病场景下联盟链主节点选举方法 Download PDFInfo
- Publication number
- CN114362963B CN114362963B CN202210019139.5A CN202210019139A CN114362963B CN 114362963 B CN114362963 B CN 114362963B CN 202210019139 A CN202210019139 A CN 202210019139A CN 114362963 B CN114362963 B CN 114362963B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- master node
- voting
- calculation
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 201000010099 disease Diseases 0.000 title claims abstract description 12
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 title claims abstract description 12
- 206010061619 Deformity Diseases 0.000 abstract 1
- 238000013500 data storage Methods 0.000 abstract 1
- 238000011156 evaluation Methods 0.000 description 2
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于算力证明的治未病场景下联盟链主节点选举方法。该方法通过算力证明机制和投票选举机制筛选出综合能力较强的节点,节点根据场景需求完成相应难度的计算任务,确保自身能够满足最低算力需求,然后通过请求投票成为主节点,只有获得超过半数节点投票的节点才能够被承认为主节点。该方法通过非对称加密技术和数字签名技术保证在联盟链环境下的网络安全,充分考虑恶意节点的作恶可能性,保障主节点选取的公平有效。该方法可以代替联盟链下实用拜占庭容错方法中原有的基于视图编号的顺序选取主节点方式,提高区块链网络的安全性和稳定性,更好地满足治未病场景下的数据保存需求。
Description
技术领域
本发明涉及区块链技术领域,特别是涉及区块链共识方法。
背景技术
在对此方法的研究和实践过程中,本发明的发明人发现:治未病场景下联盟链的主流共识方法实用拜占庭容错方法在主节点选取方式上存在安全性问题。主节点作为特殊的记账节点,需要承担额外的任务,包括接受客户端的消息,打包区块和广播区块等。一方面,主节点比记账节点多了计算和通信的任务,如果主节点的硬件性能和网络条件无法实现快速完成任务的要求,会带来不可避免的性能下降。另一方面,如果主节点不具备稳定地提供服务的能力,或是针对网络攻击的抗性较差,导致主节点因故障下线或是因网络攻击而失去服务能力这一现象频繁地发生。实用拜占庭容错方法基于视图编号轮流担任主节点的主节点选取方式的问题在于,一方面,随着网络的运行每个节点都会有成为主节点的机会,这意味着如果不能够保证网络内所有节点都稳定提供服务(显然这是不现实的),那么整个网络都需要承担额外的视图切换的开销。另一方面,这种主节点选取的方式严格遵循编号顺序,这意味着攻击者基于当前主节点的编号可以很容易地推算出后续将成为主节点的一组节点编号顺序,这意味着攻击者可以很精准地攻击对应节点使其失去服务能力,这样在接下连续的多个视图内区块链网络都失去了服务能力,形成瘫痪整个网络的效果。或是恶意节点在成为主节点之后,攻击编号在自己之后的多个节点,影响视图切换过程的执行,延长自己担任主节点的时间,便于实现自己的意图。
发明内容
为了克服上述现有技术的不足,本发明提供了一种基于算力证明的治未病场景下联盟链主节点选举方法。
本发明所采用的技术方案是:
基于算力证明的治未病场景下联盟链主节点选举方法,包括如下步骤:
第一步,读取配置文件,获得当前网络难度值和所有节点偏差值列表。
第二步,构造一种特殊的数据结构,不断改变随机数后使用SHA256方法,找到这样一个使得该数据结构的哈希值小于目标值的随机数,作为算力证明的结果。
第三步,若在完成算力证明前收到其他节点的有效投票请求,则为其投票并停止进行算力证明,否则成为候选人并为自己投票,凭借算力证明结果向其他节点发送投票请求。
第四步,收到超过一半节点投票的节点广播投票凭证宣布自身当选主节点,如果超时则重新开始选举。
与现有技术相比,本发明的有益效果是能够筛选出计算能力、网络情况、稳定性和抗攻击能力具备优势的主节点。算力证明机制通过完成计算任务保证了只有具备一定程度的计算能力的节点才能够作为主节点选举的候选人请求其余节点投票。而在网络内存在多个满足算力要求条件的节点的情况下,同一时间下多个节点成为候选人,此时网络状况更为良好的节点的请求能够更早地抵达其余节点,更有可能成为主节点。而且,联盟链环境下节点易于管理,基于授权方式的节点加入规则决定了通过线下完成节点性能评估的方式是可行的。通过节点性能评估,可以通过偏差值来决定网络对于选择该节点为主节点的倾向性。所以最终选出来的节点能够满足区块链网络对于主节点应具备的性能要求。
附图说明
图1为本发明基于算力证明的治未病场景下联盟链主节点选举方法的流程图。
图2为本发明基于算力证明的治未病场景下联盟链主节点选举方法中算力机制的流程图;
具体实施方式
基于算力证明的治未病场景下联盟链主节点选举方法,包括如下步骤:
第一步,读取配置文件,获得当前网络难度值和所有节点偏差值列表。
第二步,构造一种特殊的数据结构,不断改变随机数后使用SHA256方法,找到这样一个使得该数据结构的哈希值小于目标值的随机数,作为算力证明的结果。进一步地,具体方法如下:
(1)每个节点构造一个特殊的数据结构,属性如下:
(2)计算算力证明需要的目标值,计算公式如下:
h=1<<(256-diff-offset)
其中diff表示网络难度值,0ffset表示偏差值。
(3)随机数从0开始递增,每次改变随机数之后计算数据结构的哈希值,直到找到一个使得哈希值小于目标值的随机数。
第三步,若在完成算力证明前收到其他节点的有效投票请求,则为其投票并停止进行算力证明,否则成为候选人并为自己投票,凭借算力证明结果向其他节点发送投票请求。进一步地,具体方法如下:
(1)在完成算力证明之前收到其他节点有效的算力证明结果,则将票投给该节点,并停止算力证明的计算。
(2)在完成算力证明时仍没有投出自己的票,则将票投给自己,并向其余节点广播算力证明结果。
(3)已经投票之后收到其他节点有效的算力证明结果,不响应其投票请求。
第四步,收到超过一半节点投票的节点广播投票凭证宣布自身当选主节点,如果超时则重新开始选举。
下面结合附图及具体实施例对本发明作进一步详细描述。
实施例
结合图2,本发明基于算力证明的治未病场景下联盟链主节点选举方法,算力证明步骤如下:
(1)每个节点构造一个特殊的数据结构,属性如下:
前一区块哈希值为″0000000000000000000000000000000000000000000000000000000000000000″,节点编号分别为0、1、2,节点签名为每个节点用RSA方法对前一区块哈希值的签名,网络难度值为10,偏差值均为0,,计算能力等级分别为强、中、弱,时间戳为当前机器时间。
(2)计算算力证明需要的目标值,计算公式如下:
h=1<<(256-diff-offset)
其中diff表示网络难度值,offset表示偏差值。
(3)随机数从0开始递增,每次改变随机数之后计算数据结构的哈希值,直到找到一个使得哈希值小于目标值的随机数。最后编号为0的节点耗费61ms,编号为1的节点耗费1719ms,编号为2的节点耗费4368ms。
结合图1,本发明基于算力证明的治未病场景下联盟链主节点选举方法,投票选举步骤如下:
(1)在完成算力证明之前收到其他节点有效的算力证明结果,则将票投给该节点,并停止算力证明的计算,此处为编号为1和2的节点。
(2)在完成算力证明时仍没有投出自己的票,则将票投给自己,并向其余节点广播算力证明结果,此处为编号为0的节点。
(3)已经投票之后收到其他节点有效的算力证明结果,不响应其投票请求,此处没有这种情况出现。
最后由计算能力为强的编号为0的节点成功当选主节点。
Claims (1)
1.一种基于算力证明的治未病场景下联盟链主节点选举方法,其特征在于,包括如下步骤:
第一步,读取配置文件,获得当前网络难度值和所有节点偏差值列表;
第二步,算力证明流程,如下:
(1)每个节点构造一个特殊的数据结构,属性如下:
(2)计算算力证明需要的目标值,计算公式如下:
h=1<<(256-diff-offset)
其中diff表示网络难度值,offset表示偏差值;
(3)随机数从0开始递增,每次改变随机数之后计算数据结构的哈希值,直到找到一个使得哈希值小于目标值的随机数;
第三步,投票选举流程,如下:
(1)在完成算力证明之前收到其他节点有效的算力证明结果,则将票投给该节点,并停止算力证明的计算;
(2)在完成算力证明时仍没有投出自己的票,则将票投给自己,并向其余节点广播算力证明结果;
(3)已经投票之后收到其他节点有效的算力证明结果,不响应其投票请求;
第四步,收到超过一半节点投票的节点广播投票凭证宣布自身当选主节点,如果超时则重新开始选举。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210019139.5A CN114362963B (zh) | 2022-01-07 | 2022-01-07 | 一种基于算力证明的治未病场景下联盟链主节点选举方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210019139.5A CN114362963B (zh) | 2022-01-07 | 2022-01-07 | 一种基于算力证明的治未病场景下联盟链主节点选举方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114362963A CN114362963A (zh) | 2022-04-15 |
CN114362963B true CN114362963B (zh) | 2024-06-18 |
Family
ID=81106329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210019139.5A Active CN114362963B (zh) | 2022-01-07 | 2022-01-07 | 一种基于算力证明的治未病场景下联盟链主节点选举方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114362963B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200059369A1 (en) * | 2017-05-16 | 2020-02-20 | Peking University Shenzhen Graduate School | Determining consensus by parallel proof of voting in consortium blockchain |
CN107395403B (zh) * | 2017-07-07 | 2020-01-14 | 北京区块链云科技有限公司 | 一种适用于大规模电子商务的基于信用的区块链共识方法 |
CN109165945B (zh) * | 2018-09-07 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 代表节点设备选举方法、装置、计算机设备及存储介质 |
CN110796547A (zh) * | 2019-10-30 | 2020-02-14 | 桂林电子科技大学 | 一种基于联盟区块链的改进的实用拜占庭容错*** |
CN110910139B (zh) * | 2019-12-04 | 2022-06-28 | 北汽蓝谷信息技术有限公司 | 基于区块链的可信硬件与高性能去中心化匿名加密方法 |
CN212724738U (zh) * | 2020-05-11 | 2021-03-16 | 云不凡(厦门)智慧科技有限公司 | 一种全民健康保障管理*** |
CN113407632A (zh) * | 2021-06-26 | 2021-09-17 | 南京搜文信息技术有限公司 | 一种基于pbft的委托权益证明区块链共识算法 |
-
2022
- 2022-01-07 CN CN202210019139.5A patent/CN114362963B/zh active Active
Non-Patent Citations (2)
Title |
---|
Block Chain Based Cloud Computing Model on EVM Transactions for Secure Voting;Sathya V 等;2019 3rd International Conference on Computing Methodologies and Communication (ICCMC);1075-1079 * |
基于PBFT的联盟链共识算法;周艺华;计算机科学;第48卷(第11期);133-141 * |
Also Published As
Publication number | Publication date |
---|---|
CN114362963A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110289966B (zh) | 基于拜占庭容错的抗自适应攻击联盟链共识方法 | |
CN109842606B (zh) | 基于一致性哈希算法的区块链共识算法和*** | |
Kogias et al. | Enhancing bitcoin security and performance with strong consistency via collective signing | |
Clulow et al. | Suicide for the common good: a new strategy for credential revocation in self-organizing systems | |
CN110825810B (zh) | 一种基于区块链的群智感知双重隐私保护方法 | |
CN112532676B (zh) | 一种基于区块链数据共享的车辆计算任务卸载方法 | |
CN112907252B (zh) | 一种基于多人链下通道的区块链交易方法及*** | |
CN109327467A (zh) | Rssp-ii安全通信协议密钥管理机制的管理方法 | |
CN113660668A (zh) | 一种异构融合网络的无缝可信跨域路由***及其控制方法 | |
CN110445795B (zh) | 一种区块链认证唯一性确认方法 | |
CN111582843A (zh) | 一种基于聚合签名的区块链隐私交易方法 | |
CN114745140B (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及*** | |
CN116614516A (zh) | 基于声誉改进的pbft共识方法 | |
Zhang et al. | March: A distributed incentive scheme for peer-to-peer networks | |
CN116017509A (zh) | 面向任务无人机网络轻量异步可证明共识方法及应用 | |
CN113422805A (zh) | 一种基于可验证随机函数的分片共识方法 | |
CN114362963B (zh) | 一种基于算力证明的治未病场景下联盟链主节点选举方法 | |
Li et al. | Trustworthy announcement dissemination scheme with blockchain-assisted vehicular cloud | |
CN111865595B (zh) | 一种区块链的共识方法及装置 | |
Maffiola et al. | Goliath: A decentralized framework for data collection in intelligent transportation systems | |
Corman et al. | A Secure Group Agreement (SGA) protocol for peer-to-peer applications | |
Pradweap et al. | A novel RSU-aided hybrid architecture for anonymous authentication (RAHAA) in VANET | |
Lebre et al. | Internet voting: Improving resistance to malicious servers in REVS | |
CN115941680A (zh) | 基于跨分片拜占庭容错算法的灵活分片区块链方法及装置 | |
EP4122184B1 (en) | Rapid ledger consensus system and method for distributed wireless networks |
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 |