软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2022年第5期:基于软件度量的Solidity智能合约缺陷预测方法

发布日期:

作者:杨慧文,崔展齐,陈翔,贾明华,郑丽伟,刘建宾

单位:杨慧文,北京信息科技大学 计算机学院, 北京 10010111,崔展齐,北京信息科技大学 计算机学院, 北京 100101;网络文化与数字传播北京市重点实验室(北京信息科技大学), 北京 10010102,陈翔,南通大学 计算机科学与技术学院, 江苏 南通 22601903,贾明华,中央财经大学 信息学院, 北京 10010104,郑丽伟,北京信息科技大学 计算机学院, 北京 10010105,刘建宾,北京信息科技大学 计算机学院, 北京 10010106

关键词:软件缺陷预测;缺陷数量预测;缺陷倾向性预测;智能合约;Solidity

基金:江苏省前沿引领技术基础研究专项(BK202002001); 国家自然科学基金(61702041); 北京信息科技大学“勤信人才”培育计划(QXTCP C201906)

随着区块链技术的兴起, 智能合约安全问题被越来越多的研究者和企业重视, 目前已有一些针对智能合约缺陷检测技术的研究. 软件缺陷预测技术是软件缺陷检测技术的有效补充, 能够优化测试资源分配, 提高软件测试效率. 然而, 目前还没有针对智能合约的软件缺陷预测研究. 针对这一问题, 提出了面向Solidity智能合约的缺陷预测方法. 首先, 设计了一组针对Solidity智能合约特有的变量、函数、结构和Solidity语言特性的度量元集(smart contract-Solidity, SC-Sol度量元集), 并将其与重点考虑面向对象特征的度量元集(code complexity and features of object-oriented program, COOP度量元集)组合为COOP-SC-Sol度量元集. 然后, 从Solidity智能合约代码中提取相关度量元信息, 并结合缺陷检测结果, 构建Solidity智能合约缺陷数据集. 在此基础上, 应用了7种回归模型和6种分类模型进行Solidity智能合约的缺陷预测, 以验证不同度量元集和不同模型在缺陷数量和倾向性预测上的性能差异. 实验结果表明, 相对于COOP度量元集, COOP-SC-Sol能够让缺陷预测模型的F1-score指标提升8%. 此外, 进一步研究了智能合约缺陷预测中的类不平衡问题, 实验结果表明, 通过采样技术对数据集进行预处理能够提升缺陷预测模型的性能, 其中随机欠采样技术能够使模型的F1-score指标提升9%. 在特定缺陷倾向性预测问题上, 模型的预测性能受到数据集类不平衡的影响, 在缺陷模块百分比大于10%的数据集中能取得较好的预测性能.

来源:2022年第5期

《软件学报》期刊编辑部

查看软件学报杂志2022年第5期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员