基于人工智能的智能合约意图检测方法技术

技术编号:38646723 阅读:33 留言:0更新日期:2023-09-02 22:37
本发明专利技术公开了一种基于人工智能的智能合约意图检测方法,特点是:对区块链上收集的能够通过编译且可运行的智能合约进行预处理、代码清洗,并标记出智能合约中存在的风险性代码和意图标签;通过将智能合约上下文转化为向量和矩阵表征,输入到建立的基于K

【技术实现步骤摘要】
基于人工智能的智能合约意图检测方法


[0001]本专利技术涉及计算机安全、区块链、智能合约及人工智能
,尤其是一种基于人工智能的智能合约意图检测方法。

技术介绍

[0002]智能合约是一种基于计算机程序语言,区块链等技术的,自动执行合约条款的数字交易协议,使用智能合约开发的软件程序通常运行于区块链网络中,发布后是位于区块链上一个特定地址的一系列代码和数据。随着区块链技术的迅速发展,越来越多的智能合约被部署到不同的区块链上,用户通过智能合约处理其加密资产的需求也与日俱增。
[0003]然而,区块链上的大部分用户不是计算机或区块链相关技术人员,在对智能合约代码不熟悉的情况下使用或投资智能合约可能会因为其中存在恶意功能代码而面临财产损失的风险。目前针对智能合约的自动化检测方法主要是面向智能合约漏洞的检测,而智能合约中来自开发者的危险意图代码同样值得关注,这些意图缺少检测的方法。所以,有必要提出一种智能合约意图检测方法,用以自动化地检测出智能合约中包含的来自开发者的危险意图。

技术实现思路

[0004]本专利技术的目的就是本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.基于人工智能的智能合约意图检测方法,其特征在于,包括以下步骤:步骤S1:将区块链上验证的智能合约代码收集整合,并检验收集到的智能合约是否能够通过编译且可运行;步骤S2:对通过编译且可运行的智能合约代码进行预处理后,清洗代码;步骤S3:将智能合约中存在的风险性代码和意图标记出来;步骤S4:将智能合约上下文转化为向量和矩阵表征;步骤S5:建立基于K

means的机器学习模型,无监督训练智能合约代码的分类并高亮出具有强烈意图的代码表征;步骤S6:建立基于双向循环神经网络的深度学习模型,有监督训练分类并检测出智能合约中存在的风险意图的类型;步骤S7:上述步骤S1~S6整套方法的综合评估与验证。2.根据权利要求1所述的基于人工智能的智能合约意图检测方法,在所述步骤S1中,其特征在于包括以下步骤:步骤S11:在现有的区块链公链网络浏览器中寻找开源和已验证的智能合约;步骤S12:使用通用编程语言,通过网站提供的API或区块链浏览器页面将智能合约代码下载到本地数据库,同时在本地建立数据库;步骤S13:为数据库中的智能合约数据建立存储表,按照存储表的数据结构存储智能合约的信息。3.根据权利要求1所述的基于人工智能的智能合约意图检测方法,在所述步骤S2中,其特征在于所述清洗代码的过程包括以下步骤:步骤S21:对包含若干文件的智能合约代码进行上下文合并,形成单个代码文本;步骤S22:智能合约中的代码注释和编译器版本声明对实际的业务逻辑没有作用,使用正则表达式移除代码中的注释部分和编译版本声明部分;步骤S23:通过步骤S21将所有引入的外部文件已合并在同一智能合约的代码文本中,无需保存智能合约头部的import声明,使用正则表达式移除代码中的引入声明;步骤S24:使用正则表达式拆分出代码中的合约级和方法级代码段并转成JSON对象,以树状结构存储智能合约的代码结构和上下文。4.根据权利要求1所述的基于人工智能的智能合约意图检测方法,在所述步骤S3中,其特征在于包括以下步骤:步骤S31:使用手动或自动化的方法为智能合约标记出具有风险性意图的代码段,为每一种危险意图的类目给出对应的数字编号,编号从0开始。5.根据权利要求1所述的基于人工智能的智能合约意图检测方法,在所述步骤S4中,其特征在于包括以下步骤:步骤S41:使用通用自然语言编码器将步骤S2得到的智能合约代码树中叶子节点的方法级代码段转化为深度学习模型可读的文本表征向量,使用如下公式:公式中Φ表示自然语言的通用编码器,表示智能合约中方法的上下文,向量是编码后合约中单个方法级代码段的数学表征,通用文本编码器指已经通过对大批量自然语言文本学习后的预训练模型。
6.根据权利要求1所述的基于人工智能的智能合约意图检测方法,在所述步骤S5中,其特征在于包括以下步骤:步骤S51:从数据库中抽取m份智能合约样本,...

【专利技术属性】
技术研发人员:黄有为赵晓芳
申请(专利权)人:苏州中科乐联信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1