[发明专利]基于DPoS的云端数据溯源区块链共识机制改进方法有效
| 申请号: | 202010438374.7 | 申请日: | 2020-05-22 |
| 公开(公告)号: | CN111683121B | 公开(公告)日: | 2022-12-13 |
| 发明(设计)人: | 杨武;玄世昌;王巍;苘大鹏;吕继光;陈治瑀 | 申请(专利权)人: | 哈尔滨工程大学 |
| 主分类号: | H04L67/10 | 分类号: | H04L67/10;H04L9/40;H04L9/06 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 150001 黑龙江省哈尔滨市南岗区*** | 国省代码: | 黑龙江;23 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 dpos 云端 数据 溯源 区块 共识 机制 改进 方法 | ||
1.一种基于DPoS的云端数据溯源区块链共识机制改进方法,其特征在于,包括以下步骤:
步骤1:区块链系统将向云服务提供商CSP询问云端虚拟节点集合N中每个节点所代表的用户为维护区块链贡献的资源量,根据资源量的多少从大到小将节点排序;
步骤2:区块链系统向排序为前l的节点发送消息HASH(PreBlockHead),Round,Ni;其中,HASH(PreBlockHead)为前一个区块头部的哈希值;Round为当前选举的轮次信息;
步骤3:收到信息的节点Ni从当前的区块链中获取前一个区块的区块头部,提取其中的Round信息后,将其加1,并计算前一个区块头部的哈希值HASH(PreBlockHead);
步骤4:若节点Ni计算得出的HASH(PreBlockHead)与Round信息和收到的信息完全一致,则节点Ni计算HASH(HASH(PreBlockHead),Round,Ni)的值,并广播消息HASH(HASH(PreBlockHead),Round,Ni),Ni;否则节点Ni会忽略掉此条信息;
步骤5:区块链系统将节点Ni划分到共识节点集合NC中,以(int)(Random()*l+i)作为该节点在本轮投票中的编号;
步骤6:若区块链系统收到l条HASH(HASH(PreBlockHead),Round,Ni),Ni的验证消息,则区块链系统将共识节点集合NC进行广播;
若区块链系统收到的验证消息不足l条,则区块链系统按照缺少的数量,依照排名顺延发送消息HASH(PreBlockHead),Round,Ni,返回步骤3;
步骤7:区块链系统将云端虚拟节点集合N中未进入共识节点集合NC中的节点划分为交易节点集合NT;
步骤8:区块链系统将向云服务提供商CSP确认共识节点集合NC中每个节点所代表的用户为维护区块链贡献的资源量,锁定用户资源;计算共识节点集合NC中的每个节点偏向成为见证者的概率{P1(Round),P2(Round),P3(Round),...,Pl(Round)};为共识节点集合NC中的每个节点开启TIMER;
步骤9:当共识节点集合NC中的节点的TIMER到期后,区块链系统将向交易节点集合NT中的节点发送消息(int)(Random()*l+i),Round;
步骤10:交易节点集合NT中的节点收到(int)(Random()*l+i),Round消息后,若确认Round信息无误且自身仍没有投过票,则将私钥和作为签名函数MessagePrK=Sign(Message,PrK)的输入,计算得到后,广播消息
步骤11:区块链系统收到从交易节点集合NT中的节点广播的消息后,将的公钥与信息作为解签名函数Message=Unsign(MessagePrK,PuK)的输入,得到原始信息
步骤12:区块链系统对已收到的相同的随机数(int)(Random()*l+i)进行统计,得出共识节点集合NC中每个节点获得的总票数;
步骤13:区块链系统根据共识节点集合NC中每个节点获得的总票数进行排名,选出得票数量排名最高的前m个节点,构建见证者节点集合NW;共识节点集合NC中其余节点组成参与者节点集合NP;
步骤14:区块链系统将见证者节点集合NW进行乱序处理后与参与者节点集合NP一并广播至区块链网络中,各节点更新自身的身份,并保存节点集信息;
步骤15:见证者节点集合NW中的节点生成一个区块区块中包含了上一个区块的哈希值HASH(PreBlock)、状态标签INITIAL、节点选举轮次Round、当前的见证者节点集合NW、生产区块的见证者节点序号,区块的时间戳TimeStamp、近期的交易TX和由交易信息生成的Merkle树的树根MerkleRoot;
步骤16:区块链系统根据见证者节点集合NW中的排序,确认下一个生产区块的见证者节点是否能够继续参与共识过程,如果确认失败将触发节点的重新选举,而确认成功的见证者节点集合NW负责将自己生产的区块广播至区块链网络中;
步骤17:交易节点集合NT中的节点转发收到的参与者节点集合中的节点提取中的交易信息TX,根据自己手中与TX对应的交易信息生成Merkle树,然后与收到的区块中的所有信息进行比较;
若节点中的信息与收到的区块中的所有信息完全一致,则节点将自己的私钥与收到的区块作为签名函数的输入,签名后广播此消息;否则,节点将根据收到区块所提供的信息生成一个自己认为正确的区块将与自己的私钥作为签名函数的输入,签名后广播此消息;
步骤18:见证者节点集合NW中的节点根据接收到的来自节点的消息,通过解签名函数对内容进行解签名,得到区块或
步骤19:节点统计接收到的区块的数量和接收到的区块的数量
若则将区块的状态判定为CORRECT,见证者节点广播BlockCORRECT;否则,见证者节点广播BlockERROR;
步骤20:所有参与整体共识过程的云端虚拟节点集合N中的节点Ni会将收到的BlockCORRECT区块添加至自身的区块链中,将收到的BlockERROR区块丢弃;区块链系统在检测到BlockERROR区块后将停止本轮的区块共识流程,开始下一轮的共识节点的选举流程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工程大学,未经哈尔滨工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010438374.7/1.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





