[发明专利]基于类型检测的智能合约信息流完整性验证方法及系统在审

专利信息
申请号: 202110293711.2 申请日: 2021-03-19
公开(公告)号: CN113051624A 公开(公告)日: 2021-06-29
发明(设计)人: 胡镡文;庄毅;林尚威;章甫源;阚双龙;曹子宁 申请(专利权)人: 南京航空航天大学
主分类号: G06F21/64 分类号: G06F21/64
代理公司: 南京理工大学专利中心 32203 代理人: 朱炳斐
地址: 210016 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 类型 检测 智能 合约 信息 完整性 验证 方法 系统
【权利要求书】:

1.一种基于类型检测的智能合约信息流完整性验证方法,其特征在于,所述方法包括以下步骤:

步骤1,为智能合约编程语言构建形式化语法、语义;

步骤2,构建智能合约的安全类型系统STC,用于检测智能合约信息流完整性;

步骤3,构建基于智能合约类型系统STC的类型验证器STV,自动为智能合约的状态变量寻找最优安全类型分配,即状态变量中被分配为可信的数量最多,使得智能合约满足信息流完整性。

2.根据权利要求1所述的基于类型检测的智能合约信息流完整性验证方法,其特征在于,步骤1中所述构建形式化语法,具体包括:

(1)将智能合约编程语言抽象为短语,这些短语为表达式或语句;

智能合约的表达式包括8种类型:值v、全局变量g、状态变量id、表达式组智能合约实例表达式NewExp、操作表达式OperatorExp、智能合约数组或映射表达式IndexAccess,和自定义类型的数据字段访问表达式MemberAccess;智能合约表达式的语法定义如下:

NewExp::=new idc()

OperatorExp::=opu exp|exp1 opb exp2

IndexAccess::=exp[]|exp1[exp2]

MemberAccess::=exp.id|exp.IndexAccess

其中,new为实例化合约的标识符,opu为一元操作符,opb为二元操作符,idc为合约名称变量;

智能合约的语句包括3种类型:简单语句SimpleStmt、语句块BlockStmt和语句序列;其中,SimpleStmt表示单个基本语句,包括函数调用FunctionCall、普通赋值语句exp1 op=exp2和接收函数调用返回值的赋值语句exp op=FunctionCall;BlockStmt表示一个语句块,包括分支结构语句if(exp)then stmt1 else stmt2、重复语句while(exp)stmt、变量定义语句letvar id op=exp in stmt、需求语句require(exp)in stmt和一个花括号语句块{stmt};函数调用FunctionCall包括三种类型:内部函数调用外部函数调用和底层函数调用底层函数调用包括三类:call底层函数调用delegatecall底层函数调用和callcode底层函数调用智能合约语句的语法定义如下:

(Statements)stmt::=SimpleStmt;|BlockStmt|stmt1 stmt2

SimpleStmt::=FunctionCall|exp1op=exp2|exp op=FunctionCall

LowLevelCall::=call|delegatecall|callcode

BlockStmt::=if(exp)then stmt1 else stmt2|while(exp)stmt|letvar id op=expin stmt|require(exp)in stmt|{stmt}

其中,idf为函数名称变量,op=为赋值操作符;

(2)在编写的智能合约中,函数类型分为普通函数normal function、构造函数constructor和回退函数fallback function;一个智能合约有且只有一个未命名的fallback function,其不能有输入或输出参数,并且必须有external可见性;其中,普通函数normal function的语法定义如下:

式中,idc表示智能合约的名称,idf表示函数的名称,表示函数的输入参数,表示函数的输出参数,Q表示函数的可见性;

构造函数constructor与普通函数normal function的区别在于:idf被关键字constructor替换;

回退函数fallback function的语法定义如下:

funf::=idc.function()external{stmt}

(3)智能合约包括状态变量声明和函数声明,其语法的定义如下:

(Contracts)ctr::=contract id{ctrPart}

ctrPart::=letvar id op=exp|fun|ctrPart ctrPart

步骤1中所述构建形式化语义具体包括:

(1)智能合约的表达式的操作语义形式为声明表达式exp在求值环境μ中计算为值v;同时使用dom(μ)和ran(μ)分别表示μ的定义域和值域;并假设按合约名索引的表CA存储NewExp的地址,以模拟随机合约地址;

(2)智能合约的语句的操作语义形式为其中μ,μ′分别为执行语句stmt之前和之后的求值环境,S表示stmt所属的调用方智能合约;同时假设函数定义存储在按函数名索引的表FD中。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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