CN112115472B 一种面向数据管控的智能合约代码检查方法和系统 (北京智融云河科技有限公司).docxVIP

  • 0
  • 0
  • 约2.63万字
  • 约 39页
  • 2026-01-22 发布于重庆
  • 举报

CN112115472B 一种面向数据管控的智能合约代码检查方法和系统 (北京智融云河科技有限公司).docx

(19)国家知识产权局

(12)发明专利

(10)授权公告号CN112115472B(45)授权公告日2025.01.10

(21)申请号202010809496.2

(22)申请日2020.08.12

(65)同一申请的已公布的文献号申请公布号CN112115472A

G06Q40/04(2012.01)

(56)对比文件

CN109933988A,2019.06.25审查员冉凡坤

(43)申请公布日2020.12.22

(73)专利权人北京智融云河科技有限公司

地址100871北京市海淀区中关村北大街

151号燕园大厦811室

(72)发明人蔡华谦黄家梅朱晓旻张舒汇郭京申舒俊宜

(74)专利代理机构北京润泽恒知识产权代理有限公司11319

专利代理师莎日娜

(51)Int.CI.

GO6F21/56(2013.01)权利要求书2页说明书15页附图7页

(54)发明名称

一种面向数据管控的智能合约代码检查方法和系统

(57)摘要

CN112115472B本发明实施例提供了一种面向数据管控的智能合约代码检查方法和系统,所述方法和系统预先定义数据依赖类型及其相关计算,设计基于污点分析的多源多汇的静态分析算法;针对目标合约文件中的目标合约函数,确定污点源;基于所述算法,将所述污点源添加到控制流图的起始块执行前的分析结果中,通过遍历程序控制流图,选择相应的数据使用约束,进行数据值传递依赖分析和/或数据控制依赖分析,持续地更新执行后的分析结果,返回最终分析结果;生成并返回分析报告。本发明实施例提供的方法和系统,基于特定数据管控策略来定义数据约束并进行静态分析,以完成智能合约的自动化审计,保

CN112115472B

预先定义数据依赖类型和所述数据依赖类型的相关计算,设计基于污点分析的

预先定义数据依赖类型和所述数据依赖类型的相关计算,设计基于污点分析的多源多汇的静态分析算法,以用于基于特定的数据管控策略来定义数据使用约束并进行静态分析

针对目标合约文件中的目标合约函数,确定污点源,所述污点源包括:程序榆入参数和合约调用指令

基于所述静态分析算法,将所述污点源添加到控制流图的起始块执行前的分析结果中,以初始化所述分析结果,通过遍历程序控制流图,选择相应的数据使用约束,进行数据值传递依赖分析和/或数据控制依赖分析,持续地更新执行后的分析结果,最后返回最终分析结果

根据所述最终分析结果,生成并返回分析报告

S101

S102

S103

S104

CN112115472B权利要求书1/2页

2

1.一种面向数据管控的智能合约代码检查方法,其特征在于,所述方法包括:

预先定义数据依赖类型和所述数据依赖类型的相关计算,设计基于污点分析的多源多汇的静态分析算法,以用于基于特定的数据管控策略来定义数据使用约束并进行静态分析;

针对目标合约文件中的目标合约函数,确定污点源,所述污点源包括:程序输入参数和合约调用指令;

基于所述静态分析算法,将所述污点源添加到控制流图的起始块执行前的分析结果中,以初始化所述分析结果,通过遍历程序控制流图,选择相应的数据使用约束,进行数据值传递依赖分析和数据控制依赖分析,持续地更新执行后的分析结果,最后返回最终分析结果;

根据所述最终分析结果,生成并返回分析报告;

所述数据控制依赖分析,包括:

遍历所述控制流图中所有基本块,找出所述控制流图中所有可跳转的基本块,即,分支块;判断所述控制流图中的各个基本块是否依赖于各个分支块;

判断所述控制流图中的各个基本块是否依赖于各个分支块,包括:

通过三重遍历循环,遍历所述控制流图中所有分支块,并获取每个分支块的所有后续块;

遍历所述控制流图中所有基本块,并遍历每个基本块所有的后续块,基于深度优先遍历算法DFS,判断所有的后续块是否可达所述控制流图中的某一基本块,若不可达,则所述某一基本块依赖于当前分支块。

2.根据权利要求1所述的方法,其特征在于,预先定义数据依赖类型和所述数据依赖类型的相关计算,设计基于污点分析的多源多汇的静态分析算法,以用于基于特定的数据管控策略来定义数据使用约束并进行静态分析,包括:

面向数据使用的管控需求,通过对智能合约编译之后的字节码指令进行分析,定义变量之间的数据依赖

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档