[发明专利]一种基于零知识证明的区块链区块同步方法及装置有效
申请号: | 202210710309.4 | 申请日: | 2022-06-22 |
公开(公告)号: | CN114785812B | 公开(公告)日: | 2022-10-21 |
发明(设计)人: | 郭东升;陈嘉俊;臧铖 | 申请(专利权)人: | 浙商银行股份有限公司;易企银(杭州)科技有限公司 |
主分类号: | H04L67/1095 | 分类号: | H04L67/1095;H04L9/32;H04L67/568;H04L67/5682;G06Q40/04 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 刘静 |
地址: | 311200 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 知识 证明 区块 同步 方法 装置 | ||
本发明公开了一种基于零知识证明的区块链区块同步方法及装置,在节点同步区块时,不需要重复计算区块里的交易,同时,由于隐私等问题,区块里的数据可能为加密的,区块验证不能直接明文验证,本发明采用对区块里的零知识证明进行验证,验证通过则表明区块是合法区块,然后进行区块同步,能够提升区块同步的效率,同时提高区块链的隐私保护性能;此外,区块同步采用异步的方式,将区块传输、验证进行分离,在区块传输、验证阶段均采用分段策略,降低区块同步对区块链网络负载的影响,防止当同步较多区块时出现错误导致整个同步工作失败,浪费资源,影响区块链网络稳定。
技术领域
本发明属于区块链技术领域,尤其涉及一种基于零知识证明的区块链区块同步方法及装置。
背景技术
区块链网络在新加入节点或节点恢复等情况,需要进行区块同步,传统做法是重新计算区块里的交易,然后验证执行结果跟区块中的结果是否一致来验证区块的有效性,验证通过后再同步区块,传统的同步方案会有大量的重复计算,导致节点同步区块效率低下;同时,由于区块链共识的特性要求共识的信息需要在共识节点内进行透明公开,会造成隐私安全问题。
发明内容
本发明的目的在于针对现有技术的不足,提出一种基于零知识证明的区块链区块同步方法及装置。
本发明的目的是通过以下技术方案实现的:
根据本发明的第一方面,提供一种基于零知识证明的区块链区块同步方法, 包括:
在区块链网络设置公共的零知识证明服务模块,所述零知识证明服务模块为区块链节点提供基于离散对数的非交互式零知识证明服务,将零知识证明服务请求所输入零知识证明材料生成零知识证明,并将零知识证明返回给请求者;
在区块传输阶段,计算区块同步请求节点需要同步的总区块高度,根据分段步长确定分段数,针对各分段的同步区块从最新区块高度节点中选择同步节点进行同步;
在区块验证阶段,当区块被传送到区块同步请求节点后,放入缓存,区块同步请求节点根据分段步长进行分段验证,各分段内验证最高的区块,各分段内最高的区块对应的同步节点向零知识证明服务模块发起服务请求,并将零知识证明服务模块返回的零知识证明发送到区块同步请求节点完成区块验证。
进一步地,所述基于离散对数的非交互式零知识证明服务流程包括:
区块同步请求节点向同步节点发起区块同步请求;
同步节点向零知识证明服务模块请求零知识证明服务,同步节点根据区块信息生成零知识证明材料δ,并发送到零知识证明服务模块;
零知识证明服务模块利用零知识证明材料δ构建基于大质数p和正整数g的离散对数y=gδ(mod p),mod为求模,y为指数值;
零知识证明服务模块从群Zp中选出一个随机数v,计算新的指数值t=gv(mod p),其中Zp为小于p的所有素数集合构成的群;
零知识证明服务模块计算哈希值h=H(g,y,t),H(·)为哈希函数;
零知识证明服务模块计算中间变量r=v-h*δ,得到零知识证明proof=(t,r),并将零知识证明proof以及正整数g、指数值y、哈希值h返回给区块同步;
同步节点将零知识证明proof以及正整数g、指数值y、哈希值h发送给区块同步请求节点;
区块同步请求节点验证零知识证明proof,即验证公式gryh≡t是否成立。
进一步地,所述零知识证明材料包括:前序区块哈希、交易列表、区块签名信息、时间戳、随机数、默克尔树验证路径、默克尔根。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙商银行股份有限公司;易企银(杭州)科技有限公司,未经浙商银行股份有限公司;易企银(杭州)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210710309.4/2.html,转载请声明来源钻瓜专利网。