[发明专利]一种面向以太坊Solidity智能合约的安全翻译与解析方法有效
申请号: | 201910904195.5 | 申请日: | 2019-09-24 |
公开(公告)号: | CN110688151B | 公开(公告)日: | 2022-03-29 |
发明(设计)人: | 翁健;陈新凯;李明;袁浩宸;张斌;卢贺贤 | 申请(专利权)人: | 暨南大学 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 蒋剑明 |
地址: | 510632 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 以太 solidity 智能 合约 安全 翻译 解析 方法 | ||
1.一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的安全翻译与解析方法包括以下步骤:
S1、对要进行安全翻译与解析的Solidity智能合约进行转换,将Solidity智能合约代码转化为XML文本;
S2、在所述的XML文本中将Solidity智能合约的片段令牌化,将令牌分割为已知的英语单词,并对各个单词标注上词性和单词原型;其中,所述的步骤S2过程如下:
S21、将Solidity智能合约对应的XML文本进行遍历,提取合约中所有的合约名、函数名、变量名和变量类型并保存,将以上字符串称为令牌;
S22、将令牌分割为已知的英语单词,并通过自然语言处理对各个单词标注上词性和单词原型;
S3、在所述的XML文本中将Solidity智能合约转化语法功能一致的Java代码,并保留原合约的特有语法特征,再根据转换的Java代码生成Solidity智能合约的控制流程图;其中,所述的步骤S3过程如下:
S31、将Solidity智能合约对应的XML文本进行遍历,提取合约中所有的函数体,所述的函数体包括函数签名和函数内部代码;
S32、在Solidity智能合约中,针对语法与Java编程语言不同的部分转化成语法功能一致的Java代码,生成符合Java语法的Solidity智能合约;
S33、通过Java控制流程图生成器,将符合Java语法的Solidity智能合约作为输入,生成Solidity智能合约的控制流程图;
S4、在所述的Solidity智能合约的每个函数体的控制流程图中,依据PageRank算法在控制流程图中对各个节点赋予相同权重,然后进行计算修改权重,进而根据权重的大小分析出函数执行的核心操作或重要语句;
S5、通过步骤S3获取的控制流程图以及步骤S4获取的核心操作或重要语句,在控制流程图中高亮显示核心操作或重要语句所在的节点,完成对Solidity智能合约的解析;
S6、将步骤S2中分割出来的英语单词,按动词和名词组织成一个利于理解的序列,并通过将形容词、介词添加到序列的适当位置,形成可读的英语短语;
S7、将步骤S6中所有Solidity智能合约生成的英语短语,通过去除相同主语和添加连词,生成完整的Solidity智能合约翻译文档。
2.根据权利要求1所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的步骤S1过程如下:
S11、将Solidity智能合约作为输入;
S12、Solidity智能合约通过语法解析器生成Solidity抽象语法树;
S13、将Solidity抽象语法树以XML格式保存,输出XML文本。
3.根据权利要求2所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的语法解析器,通过输入编程语言源码,经过词法分析,输出抽象语法树。
4.根据权利要求1或2所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的XML文本中每个节点都代表为Solidity智能合约抽象语法树的语法元素,并提供关于Solidity智能合约的数量、函数的数量以及函数的内容细节。
5.根据权利要求1所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的步骤S4过程如下:
S41、将Solidity智能合约的每个函数体的控制流程图中作为输入;
S42、对控制流程图中的各个节点,即各代码行赋予相同权重,通过PageRank算法进行计算并修改权重;
S43、将权重最大的节点作为函数执行的核心操作或重要语句。
6.根据权利要求5所述的一种面向以太坊Solidity智能合约的安全翻译与解析方法,其特征在于,所述的PageRank算法由搜索引擎根据网页之间相互的超链接计算,通过节点之间的相互连接情况,进行迭代计算生成各个节点在图中的权重。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于暨南大学,未经暨南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910904195.5/1.html,转载请声明来源钻瓜专利网。