[发明专利]一种基于图神经网络的智能合约代码补全方法及装置在审
申请号: | 202111668909.0 | 申请日: | 2021-12-30 |
公开(公告)号: | CN114296787A | 公开(公告)日: | 2022-04-08 |
发明(设计)人: | 郑子彬;唐秀雯;蒋子规 | 申请(专利权)人: | 中山大学 |
主分类号: | G06F8/71 | 分类号: | G06F8/71;G06F8/41;G06F40/253;G06F40/30;G06N3/04;G06N3/08 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 彭祯奇 |
地址: | 510275 *** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 神经网络 智能 合约 代码 方法 装置 | ||
本发明公开了一种基于图神经网络的智能合约代码补全方法及装置,其中方法包括以下步骤:根据智能合约源代码的版本号构建多个智能合约源代码数据集;根据各数据集中的智能合约源代码的语义信息和业界安全实践构建对应的代码表示图;构建基于门控图神经网络的代码补全模型,利用所述代码表示图训练所述代码补全模型得到训练好的所述代码补全模型;将待补全智能合约对应的代码表示图嵌入到训练好的所述代码补全模型中,进行代码补全预测得到补词列表。本发明构建代码表示图时考虑了智能合约源代码的语义信息,能快速准确地预测出用于补全智能合约的代码词,并结合业界安全实践模式,提高了智能合约预测代码词的安全性。
技术领域
本发明涉及区块链技术领域,尤其是涉及一种基于图神经网络的智能合约代码补全方法及装置。
背景技术
近年来,区块链技术以其去中心化、不可篡改、公开透明、安全性等特点,成为实现价值互联网的基石。部署在区块链上的智能合约也具有去中心化、不可篡改的特点,智能合约已经得到广泛的关注,并被应用到许多领域,覆盖金融产品,在线游戏,房地产,运输和后勤等领域。
由于所有部署在区块链上的智能合约都可以通过公共方法自由访问,智能合约内部任何功能缺陷或漏洞都可能导致灾难性的损失。然而,现有的智能合约集成开发环境IDE大多是在传统IDE工具上新增拓展插件的方式构成,代码补全功能只支持基于模糊匹配的自动补全,无法处理上下文相关性和数据依赖性,更无法获得深层次语义关联以提供更有针对性的内容。
除了无法提供更具有针对性的内容外,现有的智能合约IDE在提供代码补全功能时,缺乏代码安全性的考虑,隐藏在智能合约源代码中的漏洞可能会被利用,并造成巨大损失。
发明内容
本发明的目的是提供一种基于图神经网络的智能合约代码补全方法及装置,以解决现有技术中无法有针对性地、安全地补全智能合约代码的技术问题。
本发明的目的,可以通过如下技术方案实现:
一种基于图神经网络的智能合约代码补全方法,包括以下步骤:
根据智能合约源代码的版本号构建多个智能合约源代码数据集;
根据各数据集中的智能合约源代码的语义信息和业界安全实践构建对应的代码表示图;
构建基于门控图神经网络的代码补全模型,利用所述代码表示图训练所述代码补全模型得到训练好的所述代码补全模型;
将待补全智能合约对应的代码表示图嵌入到训练好的所述代码补全模型中,进行代码补全预测得到补词列表。
可选地,根据智能合约源代码的版本号构建多个智能合约源代码数据集包括:
获取区块链公链上的智能合约源代码,通过安全分析工具对所述智能合约源代码进行检测得到安全的智能合约,根据所述智能合约源代码的版本号将所述智能合约分为多个智能合约源代码数据集。
可选地,根据各数据集中的智能合约源代码的语义信息和业界安全实践构建对应的代码表示图包括:
将各数据集中的各智能合约源代码解析成对应的抽象语法树;
将所述抽象语法树中的节点作为代码表示图的节点,根据智能合约源代码的语义信息在代码表示图中添加多种类型的语义边;
从所述抽象语法树中筛选出符合业界安全实践的代码片段,在所述代码表示图中为代码片段中的节点间添加特征边。
可选地,所述语义边至少包括:
控制流边和数据流边,所述控制流边表示智能合约源代码中的控制流信息,所述数据流边表示智能合约源代码中的数据流信息。
可选地,所述控制流边至少包括以下控制流类型:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111668909.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种三相分离保压装置及其使用方法
- 下一篇:一种人眼安全的激光打标方法