中文

SmartEmbed:一种通过结构代码嵌入检测智能合约中克隆与缺陷的工具

软件工程 2020-05-21 v1

摘要

以太坊已成为一个广泛使用的平台,用于实现安全、基于区块链的金融和商业交易。然而,以太坊的一个主要问题是其智能合约的安全性。智能合约中已发现的许多缺陷和漏洞不仅给区块链的维护带来挑战,还导致严重的经济损失。迫切需要更好地辅助开发者检查智能合约并确保其可靠性。在本文中,我们提出一个名为 SmartEmbed 的网络服务工具,可帮助 Solidity 开发者在智能合约中发现重复的合约代码和与克隆相关的缺陷。我们的工具基于代码嵌入和相似性检查技术。通过比较以太坊区块链中现有 Solidity 代码的代码嵌入向量与已知缺陷之间的相似性,我们能够高效地识别用户提供的任何 Solidity 代码中的代码克隆和与克隆相关的缺陷,这有助于提高用户对其代码可靠性的信心。除供个人开发者使用外,SmartEmbed 还可应用于大规模智能合约研究。当应用于从以太坊区块链收集的超过 22K 个 Solidity 合约时,我们发现 Solidity 代码的克隆率接近 90%,远高于传统软件,并且基于我们的小型缺陷数据库,可以高效且准确地识别出 194 个与克隆相关的缺陷,精确率达到 96%。SmartEmbed 可通过 \url{http://www.smartembed.net} 访问。SmartEmbed 的演示视频位于 \url{https://youtu.be/o9ylyOpYFq8}。

关键词

引用

@article{arxiv.1908.08615,
  title  = {SmartEmbed: A Tool for Clone and Bug Detection in Smart Contracts through Structural Code Embedding},
  author = {Zhipeng Gao and Vinoj Jayasundara and Lingxiao Jiang and Xin Xia and David Lo and John Grundy},
  journal= {arXiv preprint arXiv:1908.08615},
  year   = {2020}
}