data-flow graph应用于以太坊智能合约漏洞检测

related work

1996年T.Ball和J.Larus提出的Efficient Path Profiling方法。该方法首次提出通过在目标软件中插桩探针语句的方式来实现路径的唯一编码,能够以低廉的耗费处理一个软件中所有的非循环路径,但是不能处理循环路径,其中的路径编码和插桩方式为后续的路径剖析研究奠定了基础;

2007年K.Vaswani等人提出的Preferential Path Profiling方法。该方法能够针对用户所指定的目标软件中一部分非循环路径(称为“兴趣路径集合”)进行剖析,不区分或处理兴趣路径集合之外的任何路径,该方法耗费较Efficient Path Profiling更低,依然不能处理循环路径;

2012年B.Li和L.Wang等人提出的Profiling ofAll Paths方法。这一方法能够处理带有循环的软件路径,获得精确的剖析结果,耗费高于前两种方法。

智能合约漏洞检测是一个重要的研究领域,基于图神经网络(GNN)的方法近年来受到了广泛关注。GNN可以有效地对智能合约的代码进行建模,从而揭示潜在的漏洞。 基于GNN的智能合约漏洞检测方法通常包括以下步骤: 1. 构建合约代码的图表示:将合约代码表示为一个图结构,其中合约中的函数和变量作为节点,它们之间的关系作为边。这样可以将合约代码的结构和依赖关系编码到图中。 2. 特征提取:对于每个节点和边,可以提取相的特征,例如节点的类型、边的类型和方向等。这些特征可以通过对合约代码进行静态分析或者使用预训练的嵌入模型获得。 3. 图神经网络模型:使用GNN模型对图进行学习和表示学习。GNN可以通过迭代地聚合节点和边的信息来学习节点和边的表示,从而得到整个图的表示。常用的GNN模型包括Graph Convolutional Networks (GCN)、GraphSAGE和Gated Graph Neural Networks (GGNN)等。 4. 漏洞检测:通过学习得到的图表示,可以使用分类器或者生成器来进行漏洞检测。分类器可以预测每个节点或者边是否存在漏洞,而生成器可以生成新的合约代码,以验证是否存在漏洞。 总的来说,基于GNN的智能合约漏洞检测方法可以充分利用合约代码的结构信息,辅助开发者发现和修复潜在的漏洞。这些方法在实际的智能合约安全分析中具有潜力和用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值