智能合约源代码的安全审计

来源 :重庆邮电大学 | 被引量 : 0次 | 上传用户:dingchuan646
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近几年,区块链技术越来越受各国政府和研究机构的关注和重视。智能合约作为区块链2.0的代表技术,以一段可编程的代码形式部署到区块链上,且一旦部署成功就无法修改。如果智能合约本身存在安全漏洞,那么就可能造成极大的损失。因此,在智能合约部署上链前,对其进行安全审计是非常重要的。本文根据以太坊智能合约和Fabric智能合约的常见安全漏洞类型与特征,设计与开发了一个可扩展的智能合约安全审计工具,并使用该工具实现了对以太坊智能合约源代码和Fabric智能合约源代码的安全审计。论文的主要研究内容如下:1.针对当前检测智能合约类型单一和检测效率低等问题,设计了一种可扩展的智能合约安全漏洞检测模型,其主要分为预处理模块、漏洞匹配检测模块和规则库。该模型在漏洞匹配检测算法不变的情况下,通过设计不同的ANTLR4文法规则和安全规则,可实现对不同区块链平台上的智能合约的安全审计。2.基于此模型,设计与开发了一个可扩展的智能合约安全审计工具——Contract Detection。该工具实现了对以太坊智能合约源代码和Fabric智能合约源代码的安全审计,其设计与实现主要完成如下工作:首先,根据Solidity语言和Go语言的语法规范,定义不同的ANTLR4文法规则。而这些自定义的文法规则用于解析智能合约源代码,完成预处理过程。其次,研究与分析常见的以太坊智能合约和Fabric智能合约的漏洞类型,并总结其漏洞特征。根据漏洞特征代码的抽象语法树定义XPath检测模式,将这些XPath检测模式组成不同的规则,形成规则库。最后,实现漏洞匹配检测算法,完成漏洞匹配检测。3.使用Contract Detection工具,对已验证的以太坊智能合约和真实项目中Fabric智能合约进行检测,并对其检测结果进行分析与比较。检测结果表明仍有一部分智能合约源代码中存在一些高危漏洞。该工具为智能合约开发者提供了较好的参考价值,提高了智能合约上链前的安全性。
其他文献
家庭是社会组织管理的最小单位,正是千百万个家庭汇聚成整个社会,个体才能够在社会中生存与发展。家庭的稳定与和谐是社会安定团结的重要基础,也是社会稳定发展的基石。家庭的稳定与和谐一方面需要家庭成员之间建立良好的信任关系,另一方面依靠家庭传统与文化观念的培育与熏陶。家庭文化的传承事关每一个家庭成员对自己在家庭内部的身份认同、道德品性的培养、家庭凝聚力的提升。家庭文化的传承不但需要无形的文化氛围的熏陶也需
自底而上视觉注意力是指人类面对繁杂的视觉场景时,能够迅速地找到与周围区域有明显区别的物体或者区域,并且忽略其它不重要区域的一种初级认知能力。它可以应用在感兴趣目标
随着自动驾驶技术的不断发展,自动驾驶汽车开始应用于各行各业中,如道路清洁、短途运输、交通客运中。与此同时,为了应对不同任务所面临的复杂环境,对自动驾驶的安全性也提出
本篇是马库斯·埃里克森著的《垃圾筏——乘风破浪》节选部分的英汉翻译实践报告。该书记录了塑料污染对海洋生物造成的毁灭性伤害以及马库斯与团队对抗塑料污染所做的全部努力。他们为2015年美国联邦无微珠水法案的顺利通过作出了杰出贡献。在经济全球发展的背景下,政策决策者、工业和企业往往只注重经济利益而忽略对环境的保护。自二战以来,塑料制品的数量剧增,海洋生物成了最大的受害者,而接触微塑料同样给人们带来不可逆
银行账号质押是在我国实行改革开放,国内大举进行招商引资的背景下,由跨国公司带入我国的。最初此担保方式只能作为一种辅助保障措施,质押人为取得巨量资金,将质押项目的所有资产出质,账户作为资产的一个组成部分一并质押。可随着经济社会的发展,不仅大额资金需求量增加,小额贷款也得到了迅猛发展,而这种设立快捷,实现方便的担保方式,自然而然的便受到了社会的青睐。主要形式有三种:银行存款自主质押、质押合同组成部分、
新技术的应用与中国经济的快速发展两个趋势使汉语远程教育占据越来越重要的位置。2008年Dave Cormier自创的慕课平台(Massive Open Online Course,MOOC)从2012年开始成为一
随着社会经济的发展,工业化和城镇化建设造成的空气污染日益严重,PM2.5作为空气污染物的重要组成部分,其浓度值的不断增加给人们日常的工作生活带来了极其严重的困扰。相关研
数控机床是制造业的基础,提高工件的加工精度是制造业不懈的追求,而高精度的数控机床是实现该目标的必经途径。数控机床的几何误差是影响工件加工精度的重要因素,尤其对于高
矩阵补全是利用观测到的矩阵元素去估计未知元素,从而恢复整个矩阵。它被广泛应用于协同过滤,推荐系统等机器学习应用中。在这些机器学习应用中,通常用一个矩阵来存储数据。这些数据矩阵通常是低秩的,而且有一些缺失数据,如何通过观测到的数据,应用矩阵低秩的特性,来预测这些缺失数据从而恢复矩阵就是低秩矩阵补全的问题。推荐系统是矩阵补全的一个典型的应用,例如在MovieLens中,存有部分用户对一些电影的打分,矩
口腔白斑是指发生在口腔黏膜上的白色或灰白色的斑块状损害,口腔扁平苔藓是一种常见的慢性口腔黏膜皮肤性疾病,两种疾病均属于非传染性口腔斑纹类疾病。其中,口腔白斑属于癌