当前位置: 首页 > 专利查询>湖南大学专利>正文

一种基于区块链的主节点公平选举方法技术

技术编号:29261548 阅读:27 留言:0更新日期:2021-07-13 17:35
本发明专利技术属于计算机科学领域,公开了一种基于区块链的主节点公平选举方法。本发明专利技术改进了PBFT共识方法,使网络中的节点可以自由的加入与退出,增加了区块链网络的灵活性。同时为在区块链网络中设置了一个最近生产队列,本轮中被选中的主节点的编号不能与生产队列中的节点编号重复,这种方式解决了部分节点不能被选为生产节点的不公平问题。由于本发明专利技术中区块链网络中的主节点不是由固定的节点担任,因此在一定程度上增加了系统的安全性。

【技术实现步骤摘要】
一种基于区块链的主节点公平选举方法
本专利技术属于计算机科学领域,涉及区块链技术应用,具体涉及一种基于区块链的主节点公平选举方法。
技术介绍
在区块链系统中,必须通过一种共识方法来保证系统运作的公平。目前常见的共识方法有POW(ProofofWork),POS(ProofOfStake),PBFT(PracticalByzantineFaultTolerance),DBFT(DelegatedByzantineFaultTolerant)等。POW和POS这类的共识方法本质上属于算力或权益大小的比拼,这就导致了网络中一部分节点并没有作为生产节点的机会,且会造成一定程度的资源浪费。PBFT算法有很多优点,但它也有致命的缺点。首先,它在一个完全封闭的环境中工作,其中想要加入或离开的节点必须停止整个系统。其次,PBFT中许多系统成员更希望依靠其他人进行繁琐的工作以降低成本,这对系统安全具有破坏性。DBFT解决了BFT算法的扩容性问题,但是由于该共识方法主要由7个固定的超级节点来决定,因此被外界质疑为过于中心化,且固定暴露的节点容易被攻击,不够安全。上述共识方法存在资源浪费、选举不公平、网络节点加入退出难和被选举的节点固定且暴露这些问题。本专利技术提出了一种基于区块链的主节点公平选举方法,可以适用于动态网络,方便节点的加入与退出,同时增加网络的公平性。
技术实现思路
针对上述共识方法存在的资源浪费、选举不公平、网络节点加入退出难和被选举的节点固定且暴露的这些问题,本专利技术提供一种基于区块链的主节点公平选举方法。为了实现上述目的,本专利技术的解决方案是:一种基于区块链的主节点公平选举方法,将系统中的节点类型分为监管节点(Supervision)、主节点(Primary)和从节点(Slave),包括节点的加入与退出、主节点的选举和系统共识三个部分,其中,节点的加入与退出包含如下步骤:第一步:在NodeCA处注册加入的新节点,通过NodeCA维护一个记录节点身份信息的列表,列表信息包括节点ID、IP地址、公钥和节点状态;如果新加入节点的身份信息通过了检查,NodeCA将在节点信息列表的末尾添加其身份信息,并为其分配一个数字编号j;第二步:节点j将向所有副本多播加入请求消息<JOIN,j,IP,PK>σj,其中,消息的第一个变量是信息类型,JOIN指的是新节点的加入请求,IP指的是节点j的IP地址,PK是节点j的公钥,σj指的是节点j利用其私钥对这个消息的签名;收到加入请求后,网络中的节点i将验证签名,然后将节点j的公钥信息与在NodeCA记录的签名进行核对;如果通过了这些检查,则节点i将运行JOIN协议,将JOIN-REPLY消息发送到节点j;第三步:如果节点j要离开网络,则它在NodeCA处吊销其证书和相关信息,然后,节点j将退出请求消息<EXIT,j,IP,PK>σj多播到其他副本;收到退出请求后,网络中的节点i将验证签名,如果通过了这些检查,则节点i运行EXIT协议,将EXIT-REPLY消息发送到节点j。主节点的选举包含如下步骤:第一步:确定系统中节点总数量为n,用1,2,3···n为每个节点编号,为系统设置一个最近生产队列,其中队列的容量由系统中的节点数量来决定,队列中存储的是最近几轮被选为主节点的节点编号,队列的容量为m,则队列中存储的是最近m轮被选为主节点的节点编号;第二步:使用随机函数随机选择一个节点作为主节点;第三步:假如本轮中被选中的主节点的编号与生产队列中的节点编号重复,则重复第二步骤重新选举,直到本轮被选中的主节点的编号不与生产队列中的节点编号重复为止;系统共识流程包含如下步骤:第一步:request阶段,客户端向主节点发送请求信息;第二步:prepare阶段,主节点接收到客户端请求后将请求数据里的主要信息提出,并向其余节点发送;第三步:commit阶段,节点们接收到来自主节点的prepare,首先利用主节点的公钥进行签名认证,其次将消息进行散列后签名,向监管节点发送;第四步:distribution阶段,监管节点接收到2f个commit信息,并全部签名验证通过,则进行到distribution步骤,向全网其他节点广播;第五步:reply阶段,节点接收到监管节点的distribution,并签名验证通过后,则把消息存入到本地,并向客户端返回reply消息。本专利技术的有益效果是:改进了PBFT共识方法,使网络中的节点可以自由的加入与退出,增加了区块链网络的灵活性。同时为区块链网络设置了一个最近生产队列,这种方式解决了部分节点不能被选中为生产节点的不公平问题。由于区块链网络中的主节点不是由固定的节点担任,因此在一定程度上增加了系统的安全性。附图说明图1为本专利技术中节点加入网络的过程;图2为本专利技术中节点退出网络的过程;图3为本专利技术中主节点的选举过程;图4为本专利技术中系统共识流程。具体实施方式本专利技术提供一种基于区块链的主节点公平选举方法,为了更具体地描述本专利技术,下面结合附图及具体实施方式对本专利技术的技术方案进行详细说明。图1是节点加入网络的过程:第一步:在NodeCA处注册加入的新节点,通过NodeCA维护一个记录节点身份信息的列表,列表信息包括节点ID、IP地址、公钥和节点状态;如果新加入节点的身份信息通过了检查,NodeCA将在节点信息列表的末尾添加其身份信息,并为其分配一个数字编号j;第二步:节点j将向所有副本多播加入请求消息<JOIN,j,IP,PK>σj,其中,消息的第一个变量是信息类型,JOIN指的是新节点的加入请求,IP指的是节点j的IP地址,PK是节点j的公钥,σj指的是节点j利用其私钥对这个消息的签名;收到加入请求后,网络中的节点i将验证签名,然后将节点J的公钥信息与在NodeCA记录的签名进行核对;如果通过了这些检查,则节点i将运行JOIN协议,将JOIN-REPLY消息发送到节点j;图2是节点退出网络的过程:第一步:如果节点j要离开网络,则它在NodeCA处吊销其证书和相关信息,然后,节点j将退出请求消息<EXIT,j,IP,PK>σj多播到其他副本;收到退出请求后,网络中的节点i将验证签名,如果通过了这些检查,则节点i运行EXIT协议,将EXIT-REPLY消息发送到节点j。图3是主节点的选举过程:第一步:确定系统中节点总数量为n,用1,2,3···n为每个节点编号,为系统设置一个最近生产队列,其中队列的容量由系统中的节点数量来决定,队列中存储的是最近几轮被选为主节点的节点编号,队列的容量为m,则队列中存储的是最近m轮被选为主节点的节点编号;第二步:使用随机函数随机选择一个节点作为主节点;第三步:假如本轮中被选中的主节点的编号与生产队列中的节点编号重复,则重复第二步骤重新选举,直到本轮被选中的主节点的编本文档来自技高网...

【技术保护点】
1.一种区块链主节点公平选举的共识机制,其特征在于,将系统中的节点类型分为监管节点、主节点和从节点,包括节点的加入与退出、主节点的选举和系统共识三个部分,其中,节点的加入与退出包含如下步骤:/n第一步:在NodeCA处注册加入的新节点,通过NodeCA维护一个记录节点身份信息的列表,列表信息包括节点ID、IP地址、公钥和节点状态;如果新加入节点的身份信息通过了检查,NodeCA将在节点信息列表的末尾添加其身份信息,并为其分配一个数字编号j;/n第二步:节点j将向所有副本多播加入请求消息<JOIN,j,IP,PK>σj,其中,消息的第一个变量是信息类型,JOIN指的是新节点的加入请求,IP指的是节点j的IP地址,PK是节点j的公钥,σj指的是节点j利用其私钥对这个消息的签名;收到加入请求后,网络中的节点i将验证签名,然后将节点j的公钥信息与在NodeCA记录的签名进行核对;如果通过了这些检查,则节点i将运行JOIN协议,将JOIN-REPLY消息发送到节点j;/n第三步:如果节点j要离开网络,则它在NodeCA处吊销其证书和相关信息,然后,节点j将退出请求消息<EXIT,j,IP,PK>σj多播到其他副本;收到退出请求后,网络中的节点i将验证签名,如果通过了这些检查,则节点i运行EXIT协议,将EXIT-REPLY消息发送到节点j;/n主节点的选举包含如下步骤:/n第一步:确定系统中节点总数量为n,用1,2,3···n为每个节点编号,为系统设置一个最近生产队列,其中队列的容量由系统中的节点数量来决定,队列中存储的是最近几轮被选为主节点的节点编号,队列的容量为m,则队列中存储的是最近m轮被选为主节点的节点编号;/n第二步:使用随机函数随机选择一个节点作为主节点;/n第三步:假如本轮中被选中的主节点的编号与生产队列中的节点编号重复,则重复第二步骤重新选举,直到本轮被选中的主节点的编号不与生产队列中的节点编号重复为止;/n系统共识流程包含如下步骤:/n第一步:request阶段,客户端向主节点发送请求信息;/n第二步:prepare阶段,主节点接收到客户端请求后将请求数据里的主要信息提出,并向其余节点发送;/n第三步:commit阶段,节点们接收到来自主节点的prepare,首先利用主节点的公钥进行签名认证,其次将消息进行散列后签名,向监管节点发送;/n第四步:distribution阶段,监管节点接收到2f个commit信息,并全部签名验证通过,则进行到distribution步骤,向全网其他节点广播;/n第五步:reply阶段,节点接收到监管节点的distribution,并签名验证通过后,则把消息存入到本地,并向客户端返回reply消息。/n...

【技术特征摘要】
1.一种区块链主节点公平选举的共识机制,其特征在于,将系统中的节点类型分为监管节点、主节点和从节点,包括节点的加入与退出、主节点的选举和系统共识三个部分,其中,节点的加入与退出包含如下步骤:
第一步:在NodeCA处注册加入的新节点,通过NodeCA维护一个记录节点身份信息的列表,列表信息包括节点ID、IP地址、公钥和节点状态;如果新加入节点的身份信息通过了检查,NodeCA将在节点信息列表的末尾添加其身份信息,并为其分配一个数字编号j;
第二步:节点j将向所有副本多播加入请求消息<JOIN,j,IP,PK>σj,其中,消息的第一个变量是信息类型,JOIN指的是新节点的加入请求,IP指的是节点j的IP地址,PK是节点j的公钥,σj指的是节点j利用其私钥对这个消息的签名;收到加入请求后,网络中的节点i将验证签名,然后将节点j的公钥信息与在NodeCA记录的签名进行核对;如果通过了这些检查,则节点i将运行JOIN协议,将JOIN-REPLY消息发送到节点j;
第三步:如果节点j要离开网络,则它在NodeCA处吊销其证书和相关信息,然后,节点j将退出请求消息<EXIT,j,IP,PK>σj多播到其他副本;收到退出请求后,网络中的节点i将验证签名,如果通过了这些检查,则节点i运行EXIT协议,将EXIT-REPLY消息发送到...

【专利技术属性】
技术研发人员:彭绍亮刘加梦白亮刘浩肖霞张兴龙刘凡杨学超
申请(专利权)人:湖南大学
类型:发明
国别省市:湖南;43

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

1