[發明專利]一種基于圖神經網絡的智能合約代碼補全方法及裝置在審
| 申請號: | 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.szxzyx.cn/pat/books/202111668909.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種三相分離保壓裝置及其使用方法
- 下一篇:一種人眼安全的激光打標方法





