以太坊智能合约的自动化漏洞检测方法研究

来源 :北京交通大学 | 被引量 : 2次 | 上传用户:liuchy2008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近年来,区块链作为一种新兴技术,引起了国内外学者的广泛关注和研究热情。区块链通过集成加密算法、分布式数据存储和共识机制等多种技术,在无需可信第三方条件下,即可实现远距离点对点的价值传输。区块链技术通过智能合约的运行,大大延伸了该技术适用的业务场景,业务场景从最初的金融领域扩展到物联网、医疗、能源及智能制造等实体领域。由于智能合约语言尚未成熟,开发人员素质参差不齐,智能合约不可避免地会存在漏洞。最近频频爆发的智能合约安全事件,不仅造成了巨大的社会经济损失,还严重降低了人们对区块链智能合约的信任程度。目前智能合约漏洞检测的主要方法有形式化验证、符号执行或符号分析、模糊测试等。然而,形式化验证有不能完全自动化的缺点;符号执行或符号分析往往需要探索合约中所有的可执行路径或符号化地分析合约中的依赖关系图,因此时间开销大,执行效率低,不适合大批量合约漏洞检测;模糊测试方法生成的测试样例具有较强的随机性,易导致代码覆盖率低,往往无法有效检测出智能合约代码中的所有漏洞,且同样具有检测周期长的缺点。面对与日俱增的智能合约数量,现有方法不堪重负。为了保证合约漏洞检测的准确率并提高检测的效率,本文提出了一种基于机器学习算法的自动化合约漏洞检测方法,通过提取智能合约的有效特征及训练多标签分类模型,实现了对整数上溢、整数下溢、交易顺序依赖、未检查返回值、时间戳依赖和代码重入6种智能合约漏洞准确且高效的自动化检测。经过大量实验证明,本文方法更适用于大批量合约漏洞检测的应用场景。为了获得足够的智能合约数据以开展研究,本文设计并实现了一个自动化大批量爬取智能合约数据的网络爬虫工具,并对该工具进行了多线程优化,大大提高了数据采集的速率。经过一段时间爬取,采集到大量以太坊智能合约数据,包括合约的Solidity源码、Solidity版本、代币名称、合约地址等有用信息,构建了一个全面且时新的智能合约数据集。本论文通过研究合约源码Solidity语言、以太坊虚拟机字节码和操作码之间的关联性,并深入分析操作码与智能合约漏洞的内在联系,提出了操作码抽象规则。本论文通过n-gram算法从操作码数据流中提取bigram特征,并通过定义的特征计算公式计算bigram特征对应的特征值,构建特征矩阵。本文使用XGBoost、Ada Boost、随机森林、支持向量机和k近邻等分类算法,结合SMOTE或SMOTETomek数据平衡方法,在数据集上做了大量的实验。实验证明,基于SMOTETomek平衡训练集学习的XGBoost多标签分类模型对智能合约漏洞的检测效果最好,评价指标micro-F1和macro-F1值分别高达98.48%和96.41%。同时本方法大大提升了检测的效率,平均约4秒检测一个合约。基于上述实验结果,本文设计并实现了一个B/S架构的智能合约漏洞检测系统,允许用户上传智能合约源码或者字节码,系统在线进行数据处理。本系统通过训练好的机器学习模型对智能合约进行检测,并显示检测结果。
其他文献
河北省兴隆县辖 2 0个乡镇、2 97个行政村 ,3 2万人 ,农业人口占 80 % ,是一个以林果为主的农业山区县。为农村工作和农民服务 ,自然成了县档案行政管理部门的主体任务之一。
<正> 1990年7月中旬,我所应英国国家生物标准化和检定所(NIBSC)的邀请,委派笔者前往英国参加了关于治疗用生长激素(GH)测定方法的国际研讨会。NIBSC也是WHO的生物标准化实验
在信息化时代,传统媒体与新媒体正在深入融合,大传媒环境已经形成。如何培养高素质的综合性编辑人才是摆在期刊出版单位面前的急需解决的问题。本文分析了大传媒环境中编辑人
环丙沙星不良反应(文摘)1过敏性休克林丽娇报道,一男性患者因慢性淋病静滴环丙沙星200mg/100ml,当静滴至5min后,出现口唇先白后紫绀,呼吸困难,心慌,大汗淋漓,血压过低,脉搏微弱。立即停药,静滴地塞米松,快
皮肤软组织扩张术是将皮肤软组织扩张器植入正常皮肤软组织下,通过定期向扩张器内注射液体使细胞增殖和弹性扩张,用扩张产生的额外皮肤软组织转移覆盖创面的新的整复技术[1]。
对1990 ~1998 年间在我院进行妇女病普查检出有妇科疾病的老年妇女362 例进行病种调查,统计病种412 例。资料显示:老年妇科疾病的发病数以生殖道肿瘤最多( 占39 .32 % ) ,其次是生殖道陈旧性创伤性疾病(
随着我国经济与社会环境的高速发展,当前的中国社会进入了前所未有的新时代。新时代赋予了中职生新的使命和新的特点。根据中职生的心理特点,采用情境体验式教学能够使学生置
为评价血脂康治疗老年性高脂血症的临床效果,我们用随机,对照的方法给62例老年性原发性高脂血症服用血脂康。疗程2个月,结果显示,服用血脂康组2个月后降低血清单胆固醇23.1%,甘油三脂36.1%,高密度
1981年,我省开展了有史以来的第一次地名普查,所查地名,包括省、地(省辖市)、县、公社(乡)、村行政区划名称以及山、河、湖、海、台、站、港、场等自然名称和经济名称。经过普查,对全省165194条
采用不平衡巢式设计方法(♂:♀=1:3),建立了10个父系半同胞(A、B、C……J)和30个母系全同胞(A1、A2、A3,B1、B2、B3,C1、C2、C3……J1、J2、J3)白蛤家系。比较了各家系3、6、9、30