CCIHunter:通过两阶段预训练提升智能合约代码注释不一致性的检测能力
《ACM Transactions on Software Engineering and Methodology》:CCIHunter: Enhancing Smart Contract Code-Comment Inconsistencies Detection via Two-Stage Pre-training
【字体:
大
中
小
】
时间:2025年11月08日
来源:ACM Transactions on Software Engineering and Methodology
编辑推荐:
智能合约代码与注释不一致性检测工具研究。针对现有方法依赖标注数据且适应性差的问题,提出基于异构图建模和双阶段预训练的CCIHunter工具。通过模板增强注释语义,构建函数调用异构图模型,结合CodeBERT和UniMp生成多维度嵌入,创新性地融合代码结构、注释内容和相似度评分进行一致性判断。实验表明,工具在保持0.95高精确度的同时,召回率达0.90,F1值0.93,显著优于现有方案。
摘要
智能合约是区块链上的自执行计算机程序。随着区块链技术的发展,智能合约的数量迅速增加,人们对它们安全性的关注也随之提高。遗憾的是,一些智能合约中经常存在代码实现逻辑与注释中描述意图之间的不一致现象,这种现象被称为“代码-注释不一致性”(Code-Comment Inconsistencies,简称CCI)。这些不一致性可能会误导读者理解合约代码,在严重情况下甚至可能导致安全漏洞和经济损失。现有的基于学习的方法并不适用于智能合约语言,它们忽视了由于注释引用和嵌套意图导致的上下文信息不足的问题,并且依赖于大规模标记数据;而基于规则的方法难以适应开发者表达意图的灵活性,常常会产生误报。为了解决上下文信息不足和标记数据稀缺所带来的挑战,我们推出了CCIHunter这一工具,用于检测智能合约中的CCI现象。CCIHunter在数据建模过程中解决了上下文信息不足的问题,并采用了一个不依赖标记数据的两阶段预训练流程来提升检测能力。具体而言,CCIHunter根据模板对注释进行优化,并将代码视为基于函数调用的异构图进行建模。它利用CodeBERT和UniMp分别为注释和代码生成嵌入向量,然后计算这两个嵌入向量之间的相似度。通过结合代码嵌入向量、注释嵌入向量以及相似度得分来判断一致性。值得注意的是,CCIHunter经历了包含对比学习和变异分析的两阶段预训练过程,旨在提高其在代码与注释之间建立联系的能力,并能够关注不同粒度的代码元素。实验结果表明,CCIHunter的精确度达到了0.95,召回率为0.90,F1分数为0.93,优于现有的同类工具。
生物通微信公众号
生物通新浪微博
今日动态 |
人才市场 |
新技术专栏 |
中国科学人 |
云展台 |
BioHot |
云讲堂直播 |
会展中心 |
特价专栏 |
技术快讯 |
免费试用
版权所有 生物通
Copyright© eBiotrade.com, All Rights Reserved
联系信箱:
粤ICP备09063491号