概要介绍
数据挖掘(Data Mining)是从大量的、不完全的、有噪声的、模糊的、随机的数据中提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。随着比特币,以太坊等区块链技术的流行,各类平台可以提供海量的元数据作为我们数据分析的原料;同时,新技术带来的新挑战也驱动我们探索这些新问题的解决办法。在大数据时代,为了系统化地研究区块链技术,研究者们致力于用数据挖掘等人工智能技术应用于区块链系统,创造一个更加稳定可控的去中心化系统。
相关工作
三篇文章采用不同的分析方法,从不同的角度对以太坊中的数据进行了挖掘,获得了一些关于区块链系统中账户或者智能合约的规律:
- 在 Detecting Ponzi Schemes on Ethereum Towards Healthier Blockchain Technology 一文中,作者从两个角度做了特征提取,并提出了一种利用机器学习方法——XG Boost模型——来检测庞氏骗局;
- 在 Understanding Ethereum via graph analysis 中,作者通过在货币交易、合同创建和调用过程中利用图谱分析,特征化了以太坊的用户和智能合约,并用图谱分析的方法挖掘以太坊中的潜在信息;
- 在 Market Manipulation of Bitcoin: Evidence from Mining the Mt. Gox Transaction Network 中,作者利用图谱分析和矩阵处理,识别出许多与价格波动密切相关的基本网络,用来侦查以太坊中的市场操控行为。
此文就是分别介绍了这三篇 papers。
系统模型
模型一
在 Detecting Ponzi Schemes on Ethereum Towards Healthier Blockchain Technology 中,分类的模型如下图:
首先需要从 Etherscan.io 中提取数据:事务(JSON)文件和源代码。源代码非必要的,只需要二进制码(从每一个合约都可以获得),同时还要留意数据在合同中的使用频率。为了训练我们的模型,我们需要关注受众账户和合约代码的特征。
受众账户主要有七个关键特征:合同与已知账户的互动频率
;合同零钱
;投资数
;支付数
;合同所有参与人的支付与投资的差额
;被支付的比率
;最大支付
。
合约的源代码和二进制码都被转化成了可操作码,对可操作码的命令种类分析可以得到合约的特征。(个人认为合约代码特征的分类,依据不足,因此在之后论文实操时采用的往往是两者的hybrid)。
模型二
在 Understanding Ethereum via graph analysis 中,分析的流程如下图:
这个方法中,对数据的特征分析转为了对图的特征分析。通过构建三个分析图——money flow graph (MFG)、smart contract creation graph (CCG)、smart contract invocation graph (CIG),对图中的节点出入度
、聚集度
、相关性
、关键性
、同配性
和SCC/WCC
做了分析,获得的特征规律可以用来进行攻击取证和异常检测。
模型三
在 Market Manipulation of Bitcoin: Evidence from Mining the Mt. Gox Transaction Network 中,作者采用的模型如下图:
在删除了很多不合理的记录之后,对用户进行分类。用户被分成了三类:极端高账户(EHA)、极端低账户(ELA)和正常账户(NMA),构建图结构分别对每一类用户进行关于节点
和边缘分类
、测量图簇
、度分布
等方面的图特征分析。通过分析,发现异常账户中存在许多奇怪的交易模式(如自循环、双向、三角等),是交易中市场操纵的重要证据。
研究方法
XG Boost
XGBoost是“极限梯度增强”的缩写,是梯度树增强的改进版。与GBM不同,XGBoost引入了两个重要的改进:正则化和树修剪。从根本上说,XGBoost在目标函数中提供了一个正则化,用于避免在基于树的模型中过度拟合。同时,将树修剪方法由负损失时停止改为后修剪。
因为关于XG Boost的具体研究方法属于机器学习的范畴,并非笔者研究(区块链系统)的重点,在此不再赘述。可以参考:
- XG Boost 的原理和应用
- XGBoost——机器学习(理论+图解+安装方法+python代码)
- introduction to xgboost
- XG Boost Explanation
- xgboost的原理没你想像的那么难
图谱分析
用来特征化交易活动而构建图:money flow graph (MFG)、smart contract creation graph (CCG)、smart contract invocation graph (CIG)。同时用统计学方法:全局聚类系数(衡量节点们的聚集程度);Pearson系数(衡量入度和出度的关系); PageRank算法(计算节点重要性),分析构建出的图。
构建好图之后,采用奇异值分解(SVD)法进行矩阵重构。SVD是线性代数中的一个基本概念,是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。在此不再详细展开,资料参考。
实验结果
结论一
利用XG Boost,发现了54个隐藏的巧妙的庞氏骗局。基于代码特征对模型的54个隐藏合约进行了预测。结果显示,83%合同是巧妙的庞氏骗局。文章在最后下载了280704份合同,然后提取了这些智能协议的所有操作码特征,并分析,发现以太坊上的庞氏骗局问题比想象得要严重。
结论二
上图为用图谱分析得到的节点图,通过对MFG、CCG、CIG的分析,可以挖掘出以太坊的很多规律:
- 用户并不青睐于通过智能合约转账,他们还不熟悉这个新的平台技术;
- 智能合约并没有被广泛应用,因为大多数人没有像我们一样上过区块链技术的课程 😄;
- 用户们不是很沉迷于以太坊,很多人都是 just for fun;
- 很多人创建了一样的contract,不同的合约其实寥寥;
- 以太坊上一大堆经济应用,因为它们对交易、合约创建和调用十分重要,看来大多数人还是把以太坊当成比特币用的。
将这种方法应用到攻击取证,结果如图:
图中的BD37是恶意节点,连接到红色的节点也会被标红,这样就能检测恶意攻击的范围。
文章还提出了一个异常检测的算法:
结论三
如图是文章分别对三个用户类构建的图:
通过图谱分析,文章发现:
- 非正常账户在一些交易中以很高或很低的交易价格进行交易;
- 正常的交易也有可能在异常账户之间发生;
- 异常帐户的图具有非常大的聚类系数。因为有它们被一个组织控制,那么交易不再是随机的。
- EHG和ELG所选择的基础网络的日波动与比特币交易价格有很强的相关性;NMG基本网络的日波动与比特币交易价格没有相关性;异常账户的交易行为影响着比特币交易的波动。
- 通过选择EHG和ELG的基础网络,可以掌握比特币交易价格的走势。价格的走势可以被非正常账户之间的交易来控制。
- 异常账户之间存在许多不寻常的交易模式,如下图。这些账户由同一集团控制,是价格操纵的有力证据。
结语
区块链作为新型技术,仍有很多未知的机遇和挑战。人工智能和机器学习技术的成熟推动着我们将数据分析方法应用到这个全新的系统。在这个趋势下,很多新型的平台将会被建立起来,去中心化系统的体系也终会被完善。