[发明专利]一种基于有向无环图的智能合约冲突检测方法在审
申请号: | 202110184446.4 | 申请日: | 2021-02-10 |
公开(公告)号: | CN112837153A | 公开(公告)日: | 2021-05-25 |
发明(设计)人: | 郑志明;邱望洁;袁波;庞景方;吴发国;朱红;周冬旭;许洪华;朱正谊;姚铭艺;王文帝 | 申请(专利权)人: | 北京航空航天大学;国网江苏省电力有限公司南京供电分公司 |
主分类号: | G06Q40/04 | 分类号: | G06Q40/04 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 无环图 智能 合约 冲突 检测 方法 | ||
1.一种基于有向无环图的智能合约冲突检测方法,其特征在于,包括以下步骤:
S1、背书节点提取交易模拟执行结果的读写集;
S2、根据读写集更新智能合约冲突关系图,并进行冲突检测,生成有向无环图的冲突关系映射表;
S3、在完成交易验证并将交易添加到链上后,对智能合约冲突关系图以及冲突关系映射表进行更新。
2.根据权利要求1所述的一种基于有向无环图的智能合约冲突检测方法,其特征在于,所述步骤S1具体包括:
S11、背书节点将客户端发来的交易进行模拟执行,并缓存智能合约调用后的相关结果;
S12、背书节点提取交易中所调用智能合约对应的读写集并将其缓存。
3.根据权利要求1所述的一种基于有向无环图的智能合约冲突检测方法,其特征在于,所述步骤S2具体包括:
S21、根据提取出的读写集对在通道上创建的冲突关系图进行更新,其中冲突关系图的顶点M代表名称为M的智能合约,有向边M,N代表键值key同时存在于智能合约M的写集中和智能合约N的读集中,冲突关系图使用邻接矩阵存储,如果存在有向边M,N,则矩阵的M行N列赋值为1;
S22、根据冲突关系图对智能合约之间的冲突关系进行检测,对冲突关系图进行遍历,如果顶点M、N之间存在一条有向边M,N,则N与M之间存在冲突。
S23、根据合约间的冲突关系更新智能合约冲突关系映射表,表中第一列每一项代表一个智能合约,第二列表示相应冲突的智能合约。
4.根据权利要求1所述的一种基于有向无环图的智能合约冲突检测方法,其特征在于,所述步骤S3具体包括:
S31、通道上各个对等节点对交易进行验证,若验证结果为有效,则将交易添加到链上,并进入步骤S32;否则返回验证无效;
S32、根据已提交上链的交易中智能合约所对应的读写集对智能合约冲突关系图进行更新,将相关的代表智能合约的顶点和有向边删除。
S33、根据智能合约冲突关系图对冲突映射表进行相应的更新。
5.根据权利要求1所述的一种基于有向无环图的智能合约冲突检测方法,其特征在于:所述步骤S21中根据提取出的读写集对在通道上创建的冲突关系图进行更新,具体操作为:智能合约冲突关系图的顶点M代表名称为M的智能合约,有向边M,N代表键值key同时存在于智能合约M的写集中和智能合约N的读集中,冲突关系图使用邻接矩阵存储,如果存在有向边M,N,则矩阵的M行N列赋值为1。
6.根据权利要求1所述的一种基于有向无环图的智能合约冲突检测方法,其特征在于:所述步骤S22中通过对冲突关系图进行有向无环检测判断冲突关系并将冲突关系更新到冲突关系映射表中,具体操作为:若顶点M、N之间存在一条有向边M,N,则判定N与M之间存在冲突,并将检测结果存入冲突关系映射表中。
7.根据权利要求1所述的一种基于有向无环图的智能合约冲突检测方法,其特征在于:所述步骤S32中根据已提交上链的交易中智能合约所对应的读写集对智能合约冲突关系图进行更新,将相关的代表智能合约的顶点和有向边删除。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学;国网江苏省电力有限公司南京供电分公司,未经北京航空航天大学;国网江苏省电力有限公司南京供电分公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110184446.4/1.html,转载请声明来源钻瓜专利网。