[发明专利]一种区块链交易验证方法和系统有效

专利信息
申请号: 202210666120.X 申请日: 2022-06-13
公开(公告)号: CN114900319B 公开(公告)日: 2023-08-01
发明(设计)人: 徐静;尹铃元 申请(专利权)人: 中国科学院软件研究所
主分类号: H04L9/32 分类号: H04L9/32;H04L9/40;H04L67/1097
代理公司: 北京君尚知识产权代理有限公司 11200 代理人: 余长江
地址: 100190 *** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 区块 交易 验证 方法 系统
【权利要求书】:

1.一种区块链交易验证方法,包括以下步骤:

将区块链中每一证明者维护的证明链C,每间隔len个区块就分隔为一个子段,总共分隔为P个子段Cp,其中,所述证明链C包括n′个区块,所述n′个区块中的前n个区块对应的证据已被验证者验证,第n+1个区块属于子段Ci中,待验证交易包含在第n+1个区块至第n′个区块中的一区块,1<i≤P;

针对每一子段Cj,其中,j∈[i,P],i表示第n+1个区块所在的子段Cp的序号;通过构建MMR树,获取对同一个子段Cp中所有区块的承诺值,以及各区块MMR证据,包括:

对于所述证明链C中第s个位置的区块Bs,获取所述区块Bs所在的子段Cp

在所述子段Cp中,基于所述区块Bs之前的区块,构建区块集合;

根据所述区块集合中各区块的区块头,组成一棵MMR树,其中,所述MMR树的根存放在所述区块Bs的区块头中,且所述MMR树中第一个叶子结点存放的MMR根设置为空值;

基于前一个区块中的MMR根和前一个区块的区块头,获取当前区块中的MMR根;

基于各个区块所在子段Cp中最后一个区块中包含的MMR根,获取对Cp中所有之前区块的承诺值;

基于所述承诺值,获取各区块的MMR证据,所述MMR证据的尺寸与相应的子段Cp的长度成对数关系;

基于所述承诺值与所述MMR证据,计算所述证明链C的有效性证据;

计算所述待验证交易的默克尔路径,并结合所述待验证交易所在区块的区块头与所述MMR证据,生成证明待验证交易的存在性证据;

基于所述证明链C的有效性证据与所述待验证交易的存在性证据,计算所述证明链C中待验证交易的有效性证据,并将所述待验证交易的有效性证据发送至验证者,以使所述验证者基于获取各待验证交易的有效性证据,计算所述待验证交易的验证结果。

2.如权利要求1所述的方法,其特征在于,所述基于所述承诺值与所述MMR证据,计算所述证明链C的有效性证据,包括:

对于每一子段Cj,基于所述承诺值,并利用FlyClient协议中证明算法Prove(Cj,length(Cj),c),生成所述子段Cj的初始有效性证据πj,其中,length(Cj)表示子段Cj的长度,c表示敌手节点数目除以诚实节点数目数值;

将所述子段Cj的第一个区块的区块头和MMR证据,加入所述子段Cj的初始有效性证据,得到所述子段Cj的有效性证据π′j

根据各子段Cj的有效性证据π′j,获取所述证明链C的有效性证据。

3.如权利要求2所述的方法,其特征在于,计算所述长度length(Cj)的方法,包括:

若j=i,则

若j=P,则

其它情况,则length(Cj)=len。

4.如权利要求1所述的方法,其特征在于,所述证明链C的有效性证据,还包括:

获取第一个未被验证者验证的区块序号n+1;

计算所述证明链C中区块总数与已验证区块数的差值n’-n;

将所述区块序号n+1与所述差值n’-n,加入所述证明链C的证据。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院软件研究所,未经中国科学院软件研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202210666120.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top