关键词:
智能合约
脆弱性识别
脆弱性定位
图神经网络
自注意力机制
摘要:
区块链技术独有的去中心化、公开透明、集体维护、不可伪造、不可篡改等特性为构建价值互联平台提供了可能,区块链技术的研究与应用也逐渐被很多学者和科研人员重视,并呈现出爆发式增长态势,其中智能合约的产生是区块链历史上的一个里程碑式的事件。智能合约是部署在区块链网络上的代码,并以透明和去中心化的方式自动执行事务,一旦部署,智能合约不可更改,在合同执行过程中几乎没有任何补救措施可以用来处理代码错误。为了提高智能合约的安全性,减少恶意攻击给智能合约所带来的损失,本文基于深度学习技术,研究区块链智能合约脆弱性的识别和定位问题。主要研究内容如下:(1)针对基于智能合约字节码的脆弱性检测问题,提出了一个双重注意力图卷积网络(Dual Attention Graph Convolutional Network,DA-GCN)。首先通过字节码生成智能合约的属性,包括控制流图和操作码序列,其次采用图卷积模块和双重注意力模块分别对控制流图和操作码序列进行特征提取,最后通过由多层感知机构成的分类模块对智能合约的脆弱性漏洞进行识别。在真实的以太坊智能合约数据集上进行实验,结果表明本文所提出的模型DA-GCN可以有效地提高智能合约脆弱性漏洞识别的准确率、精确度、召回率和调和平均数性能。(2)针对基于智能合约源代码的脆弱函数定位问题,提出了一种更能反映智能合约代码控制流和数据流的图结构——多关系嵌套合约图(Multi-Relational Nested Contract Graph)和一种能处理该图的多关系嵌套图卷积神经网络模型(MultiRelational Nested Graph Convolutional Network,MRN-GCN)。所提出的嵌套合约图中的节点和边分别代表智能合约中的函数以及函数间的调用关系,每个节点包含一张对应的多关系函数图,每个多关系函数图使用不同类型的边来对函数内两相邻语义节点的控制关系和数据流进行表征,从而有助于神经网络更好地理解智能合约代码。所提出的多关系嵌套图卷积神经网络MRN-GCN方法首先对合约中每个函数对应的多关系函数图使用边增强的图卷积网络和自注意力机制进行特征提取和聚合,以获得各函数的特征向量,并将此特征向量赋给合约图中各节点,从而得到一个新的特征合约图。其次使用图卷积网络对特征合约图进行处理,进一步提取整个合约的特征。最后通过前馈神经网络和Sigmoid函数实现脆弱函数的定位。在真实的以太坊智能合约数据集上进行实验,结果表明模型MRN-GCN能有效提高智能合约脆弱函数定位的准确率、精确度、召回率和调和平均数性能。