论文部分内容阅读
区块链自面世以来受到了广泛关注,其防篡改、可溯源、匿名性和开放性等诸多特点引起了越来越多人的兴趣,众多研究者和相关从业人员纷纷踏足这一领域。想要对区块链有更深入的了解,对它进行更详细的分析,就需要对区块链进行数据收集。截至目前,最为知名的两个区块链平台就是比特币和以太坊。本文将基于以太坊,实现一个区块链数据搜集和分析框架。以太坊是最大的支持智能合约的区块链平台,市值排名第二。探索它可以产生许多有用的见解,因为以太坊上具有大量的交易、账户、区块以及作为智能合约而开发的流行应用程序,更不用说针对平台和智能合约发起的众多新型攻击了。不幸的是,系统地探索以太坊并非易事,因为它涉及大量的异构数据,他们都以不同的方式产生和存储在以太坊上。尽管最近的一些研究中报告了有关以太坊的一些有趣的发现,但这些研究都受到其数据获取方法的限制:这些方法无法提供全面而精确的数据。为了弥补这一空白,我们提出了一个利用以太坊内部机制的,系统的、高保真的以太坊数据搜集框架。基于以太坊的同步机制,我们对客户端进行了插桩,最大程度上恢复和捕获了各类数据。这项工作除了支持现有研究中的分析外,还使用户能够探索未知现象并获得深入的了解。为了展示数据搜集功能的实用性和有效性,本文从以太坊实体、智能合约以及代币三个维度,实现了多个应用程序,利用收集的数据从多角度对以太坊进行了深入分析。包括账户余额分析、智能合约字节码统计和调用库分析、DAO重入攻击检测、非部署合约检测、抑价DoS攻击检测、代币不一致行为检测。根据实验结果,我们总结了矿池的行为特点、合约字节码及调用库的特征;发现了未报导的DAO合约攻击面;分析了非部署合约的用途;发现了未报导的DoS攻击交易及途径;并找到了多个不符合标准的代币及其不一致原因。本文首先描述我们如何解决数据搜集模块中的挑战性问题,然后详细介绍了数据分析模块的应用程序及实验分析,其中代币行为检测及分析是一个复杂的应用,本文将单独用一个章节进行讲解。文章最后对本次工作进行了总结并对后续内容进行了展望。