关键词:
以太坊
智能合约
庞氏骗局
空气币
摘要:
以太坊是目前最火热的公共区块链平台,它不仅可以完成区块链基础的各项功能,也支持种类丰富的智能合约。智能合约相当于一个运行在区块链上的分布式应用程序。发行者可以利用智能合约在以太坊中实现各种功能。以太坊也提供一种图灵完备的语言EVM供开发者实现各种业务逻辑。随着近几年的发展,智能合约的数量呈爆炸式增长。在智能合约为人们工作和生活带来便利的同时,它的安全问题也开始进入人们视野。除了智能合约存在的安全漏洞和网络攻击,一些智能合约会对它的使用者带来危害。当前大部分的研究集中在智能合约漏洞挖掘或脆弱性分析等方面,对智能合约本身的恶意行为分析较少。然而现实中很多犯罪行为可以以智能合约作为载体,不法分子通过智能合约来实现集资、诈骗等违法犯罪行为。对于普通用户而言,能够获取的智能合约信息较少,真假难辨,也很难在使用前对智能合约的安全性有所预知。因此迫切需要一些方法对这些有违法行为的合约进行检测和识别。目前在以太坊中反诈骗反洗钱的研究不是很多,对智能合约恶意行为的研究也较少。主要的研究是针对以太坊中庞氏骗局的研究和蜜罐合约的方法。目前很多的方法比较依赖智能合约源代码的分析,然而实际中大部分智能合约没有公开源代码。另一方面,以太坊中数据缺少标签,很难进行大规模的训练,部分方法的精确度有待提高。为此,本文主要针对以太坊中可能存在违法行为的恶意智能合约进行研究,主要探讨了庞氏骗局智能合约和空气代币智能合约两类恶意合约的分类检测方法。本文中,一方面在前人基础上提出了基于图神经网络的庞氏骗局智能合约分类方法,提升了分类的精度;另一方面,提出基于图元估算的空气代币分析方法,弥补了在以太坊空气币检测方面的空白。本文主要的研究内容包括以下三个方面:(1)庞氏骗局是一种非常经典的诈骗手段,现今一些不法分子已经将这种骗局和智能合约结合,形成了以太坊中的庞氏骗局智能合约。这类合约所具有的逻辑功能往往与一般的合约有所差异,本文针对这一问题提出了属性控制流图加图神经网络的方法。本文将以太坊中智能合约的字节码进行反汇编处理,然后利用代码段的跳转关系构造程序控制流图。本文将以太坊虚拟机中指令功能分类,并统计每类指令在代码段中出现的次数,作为控制流图中节点的属性。最后使用消息传递框架构造图神经网络,提出了9层的图神经网络完成分类任务。经实验验证,这种模型具有很好的分类效果,并且具有一定的通用性。(2)空气币智能合约是以太坊中一类代币合约,这种代币往往没有实体,发行者打着代币的旗号实现敛财、诈骗。这类代币发行和交易的模式往往和正常代币有所差异。本文分析代币的交易模式,构建了代币-以太币转移图。本文对这类图采用图元分析的方法研究其子图模式分布的差异。本文使用HM采样算法估算每种图元在图中出现的占比,并将此作为图的表示向量完成分类任务。本文使用距离加权的KNN算法实现代币的分类任务。将网站关闭的合约视为空气代币合约,并通过随机森林模型对分类空气币时,不同图元的重要性进行了分析。最终得出在空气币中,其交易模式呈现显著的星型结构,边的方向向中心汇聚。(3)为部署本文研究的分析算法,本文介绍了恶意智能合约检测系统的设计和实现。该系统基于flask框架、Neo4j图数据库和go-Ethereum以太坊客户端实现,它能够实现对以太坊交易记录的图形化建模,能够实现用户对交易网络,合约代码控制流图和交易网络中高频图元的可视化展示。