一种可验证的DPoS共识方法及其系统技术方案

技术编号:21612067 阅读:14 留言:0更新日期:2019-07-13 20:36
本申请公开了一种可验证的DPoS共识方法及其系统,该系统包括超级节点、验证节点以及普通节点,至少一个普通节点选择N个超级节点;该方法包括:第一超级节点接收至少一个普通节点发送的请求数据;对预设时间段内的第一请求数据打包成第一区块,并对其进行验证;第一区块验证通过后,将第一区块发送给其余超级节点进行验证;其余超级节点采用PBFT对第一区块进行验证;当验证通过后,第一超级节点通过VRF算法随机选择M个验证节点,M个验证节点采用PBFT算法对第一区块进行验证;当验证通过后,第一区块上链。本申请提高区块的产生效率和区块链系统的安全性;且去中心化程度相对较高。

A Verifiable DPOS Consensus Method and Its System

【技术实现步骤摘要】
一种可验证的DPoS共识方法及其系统
本申请涉及区块链
,尤其涉及一种可验证的DPoS共识方法及其系统。
技术介绍
目前,区块链、物联网以及人工智能并列为未来科技的三大技术。区块链技术是基于去中心化的对等网络,用开源软件把密码学原理、时序数据和共识机制相结合,来保障分布式数据库中各节点的连贯和持续,使信息能即时验证、可追溯,但难以篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。共识算法是区块链技术的核心组成部分,主要解决由构建和检验区块的主体是谁,以及如何维护区块链统一的问题。在中心化的结构体系中,整个系统的共识算法由中心来决定,各个参与方只需要服从这个中心即可,因此在中心化的系统中,共识算法的建立是极为高效的;而区块链技术是一种去中心化的系统,系统中每个参与节点地位平等,当出现分歧时,共识算法就成为解决此类问题的重要方法与手段。目前,区块链技术常用的共识算法有工作量证明(ProofofWork,PoW)、权益证明(ProofofStake,POS)、授权股权证明(DelegatedProofofStake,DPoS)与实用拜占庭容错算法(PracticalByzantineFaultTolerance,PBFT)等。然而,PoW算法去中心化程度最高,需要大量的哈希计算,浪费太多电力能源,并且10分钟左右产生一个新的区块,效率较低;DPoS算法是PoS算法的升级,由节点投票选择若干代理节点,若干代理节点进行验证和记账,30秒左右产生一个新的区块,解决了PoW算法效率低下的问题,但是代理节点一般低于100个,中心化程度较低,代理节点容易作恶,安全性相对于PoW算法较低。随着区块链的场景应用越来越广泛,如何找到一种共识方法,不仅能够提高区块的产生效率,而且能够提高区块链系统去中心化程度和安全性,成为亟待解决的问题。
技术实现思路
为了解决上述问题,本申请提供一种可验证的DPoS共识方法及其系统,该方法不仅能够提高区块的产生效率,而且能够提高区块链系统的去中心化程度和安全性。本申请第一方面公开了一种可验证的DPoS共识方法,应用于一种可验证的DPoS共识系统中,所述系统包括超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据;其中,至少一个所述普通节点选择N个超级节点,N为正整数,所述N个超级节点包括第一超级节点;所述方法包括:所述第一超级节点接收至少一个所述普通节点发送的请求数据,所述请求数据包括请求信息、请求双方地址以及所述请求信息的哈希值;所述第一超级节点对预设时间段内的第一请求数据打包成第一区块,并对所述第一区块进行验证;所述第一超级节点对所述第一区块验证通过后,将所述第一区块发送给其余超级节点进行验证,所述其余超级节点为所述N个超级节点中除所述第一超级节点外的超级节点;所述其余超级节点采用实用拜占庭容错算法对所述第一区块进行验证;当所述其余超级节点对所述第一区块验证通过后,所述第一超级节点通过可验证的随机算法随机选择M个所述验证节点,M个所述验证节点采用实用拜占庭容错算法对所述第一区块进行验证,M为正整数;当所述M个验证节点对所述第一区块验证通过后,所述第一区块上链。在一种可能的实施方式中,超级节点N的取值范围为10-100。在一种可能的实施方式中,所述请求信息包括交易信息和/或业务信息;其中,所述交易信息包括交易金额和买方的数字签名;所述业务信息包括业务数据,所述业务数据包括业务属性数据、价格数据以及所有者数据。在一种可能的实施方式中,所述第一请求数据包括所述第一区块与所述第一区块之前区块之间的全部所述请求数据。在一种可能的实施方式中,所述其余超级节点对所述第一区块验证通过后,所述第一超级节点确定所述第一区块的字节大于预设字节阈值时,所述第一超级节点将所述第一区块划分为至少两个分片区块;所述第一超级节点通过可验证的随机算法随机选择至少两个验证节点组,所述至少两个验证节点组采用实用拜占庭容错算法对所述至少两个分片区块进行验证;其中,一个验证节点组对应验证一个分片区块;所述第一超级节点接受所述至少两个验证节点组对所述至少两个分片区块的通过验证消息,所述第一区块上链。在一种可能的实施方式中,所述N个超级节点按照顺序打包区块,所述第一超级节点连续打包L个区块后,再按顺序由下一个超级节点打包区块,L为正整数;其中,所述N个超级节点打包区块的顺序,由所述第一超级节点通过迪杰斯特拉算法计算全局路径后确定。在一种可能的实施方式中,第一超级节点连续打包L个区块,L的取值范围为1-100。在一种可能的实施方式中,当所述第一超级节点打包第一区块,且确定所述第一区块的字节大于预设字节阈值时,所述第一超级节点将所述第一区块划分为至少两个分片区块;其中,至少两个分片区块包括第一分片区块和所述第二分片区块,第一分片区块由所述第一超级节点打包,所述第二分片区块由所述第一超级节点通过可验证的随机算法随机选择所述其余超级节点中的一个超级节点打包。在一种可能的实施方式中,当所述其余超级节点对所述第一区块进行验证时,和/或当M个所述验证节点对所述第一区块进行验证时;所述第一超级节点对预设时间段内的第二请求数据打包成第二区块,并对所述第二区块进行验证。在一种可能的实施方式中,当所述其余超级节点对所述第一区块验证通过后,所述其余超级节点通过可验证的随机算法随机选择M个所述验证节点,M个所述验证节点对所述第一区块进行验证,M为正整数;或当所述其余超级节点对所述第一区块验证通过后,所述第一超级节点通过可验证的随机算法随机选择m1个所述验证节点,m1个所述验证节点通过可验证的随机算法随机选择m2个所述验证节点,m1、m2均为正整数,且m1+m2=M,M个所述验证节点对所述第一区块进行验证。在一种可能的实施方式中,验证节点M的取值20-200。在一种可能的实施方式中,所述第一区块的验证包括对所述第一区块中全部请求数据进行哈希验证和请求双方的身份验证。本申请第二方面提供一种可验证的DPoS共识系统,所述系统包括N个超级节点,验证节点以及普通节点;其中,至少一个所述普通节点选择N个超级节点,N为正整数,所述N个超级节点包括第一超级节点;所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据;所述第一超级节点接收至少一个所述普通节点发送的请求数据,所述请求数据包括请求信息、请求双方地址以及所述请求信息的哈希值;所述第一超级节点对预设时间段内的第一请求数据打包成第一区块,并对所述第一区块进行验证;所述第一超级节点对所述第一区块验证通过后,将所述第一区块发送给其余超级节点进行验证,所述其余超级节点为所述N个超级节点中除所述第一超级节点外的超级节点;所述其余超级节点采用实用拜占庭容错算法对所述第一区块进行验证;当所述其余超级节点对所述第一区块验证通过后,所述第一超级节点通过可验证的随机算法随机选择M个所述验证节点,M个所述验证节点采用实用拜占庭容错算法对所述第一区块进行验证,M为正整数;当所述M个验证节点对所述第一区块验证通过后,所述第一区块上链。本申请的方法不仅能够提高区块的产生效率,而且能够提高区块链系统的安本文档来自技高网
...

【技术保护点】
1.一种可验证的DPoS共识方法,其特征在于,应用于基于可验证的DPoS共识机制的共识系统中,所述系统包括超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据;其中,至少一个所述普通节点选择N个超级节点,N为正整数,所述N个超级节点包括第一超级节点;所述方法包括:所述第一超级节点接收至少一个所述普通节点发送的请求数据,所述请求数据包括请求信息、请求双方地址以及所述请求信息的哈希值;所述第一超级节点对预设时间段内的第一请求数据打包成第一区块,并对所述第一区块进行验证;所述第一超级节点对所述第一区块验证通过后,将所述第一区块发送给其余超级节点进行验证,所述其余超级节点为所述N个超级节点中除所述第一超级节点外的超级节点;所述其余超级节点采用实用拜占庭容错算法对所述第一区块进行验证;当所述其余超级节点对所述第一区块验证通过后,所述第一超级节点通过可验证的随机算法随机选择M个所述验证节点,M个所述验证节点采用实用拜占庭容错算法对所述第一区块进行验证,M为正整数;当所述M个验证节点对所述第一区块验证通过后,所述第一区块上链...

【技术特征摘要】
1.一种可验证的DPoS共识方法,其特征在于,应用于基于可验证的DPoS共识机制的共识系统中,所述系统包括超级节点、验证节点以及普通节点,所述超级节点用于打包区块和验证区块,所述验证节点用于验证区块,所述普通节点用于同步区块链上的数据;其中,至少一个所述普通节点选择N个超级节点,N为正整数,所述N个超级节点包括第一超级节点;所述方法包括:所述第一超级节点接收至少一个所述普通节点发送的请求数据,所述请求数据包括请求信息、请求双方地址以及所述请求信息的哈希值;所述第一超级节点对预设时间段内的第一请求数据打包成第一区块,并对所述第一区块进行验证;所述第一超级节点对所述第一区块验证通过后,将所述第一区块发送给其余超级节点进行验证,所述其余超级节点为所述N个超级节点中除所述第一超级节点外的超级节点;所述其余超级节点采用实用拜占庭容错算法对所述第一区块进行验证;当所述其余超级节点对所述第一区块验证通过后,所述第一超级节点通过可验证的随机算法随机选择M个所述验证节点,M个所述验证节点采用实用拜占庭容错算法对所述第一区块进行验证,M为正整数;当所述M个验证节点对所述第一区块验证通过后,所述第一区块上链。2.根据权利要求1所述的方法,其特征在于,所述请求信息包括交易信息和/或业务信息;其中,所述交易信息包括交易金额和买方的数字签名;所述业务信息包括业务数据,所述业务数据包括业务属性数据、价格数据以及所有者数据。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述其余超级节点对所述第一区块验证通过后,所述第一超级节点确定所述第一区块的字节大于预设字节阈值时,所述第一超级节点将所述第一区块划分为至少两个分片区块;所述第一超级节点通过可验证的随机算法随机选择至少两个验证节点组,所述至少两个验证节点组采用实用拜占庭容错算法对所述至少两个分片区块进行验证;其中,一个验证节点组对应验证一个分片区块;所述第一超级节点接受所述至少两个验证节点组对所述至少两个分片区块的通过验证消息,所述第一区块上链。4.根据权利要求1所述的方法,其特征在于,所述N个超级节点按照顺序打包区块,所述第一超级节点连续打包L个区块后,再按顺序由下一个超级节点打包区块,L为正整数;其中,所述N个超级节点打包区块的顺序,由所述第一超级节点通过动态规划方法来决定;和/或在每一轮打包顺序确定后,所述N个超级节点之间的数据传输路径,由动态规划方法来确定。5.根据权利要求1或4所述的方法,其特征在于,当所述其余超级节点对所述第一区块进行验证时,和/或当M个所述验证节点对所述第一区块进行验证时;所述第一超级节点对预设时间段内的第二请求数据打包成第二区块,并对所述...

【专利技术属性】
技术研发人员:吉建勋杨慧
申请(专利权)人:北京艾摩瑞策科技有限公司
类型:发明
国别省市:上海,31

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

1