当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
An exploratory study of smart contracts in the Ethereum blockchain platform
Empirical Software Engineering ( IF 4.1 ) Pub Date : 2020-03-12 , DOI: 10.1007/s10664-019-09796-5
Gustavo A. Oliva , Ahmed E. Hassan , Zhen Ming Jiang

Ethereum is a blockchain platform that supports smart contracts. Smart contracts are pieces of code that perform general-purpose computations. For instance, smart contracts have been used to implement crowdfunding initiatives that raised a total of US$6.2 billion from January to June of 2018. In this paper, we conduct an exploratory study of smart contracts. Differently from prior studies that focused on particular aspects of a subset of smart contracts, our goal is to have a broader understanding of all contracts that are currently deployed in Ethereum. In particular, we elucidate how frequently used the contracts are (activity level), what they do (category), and how complex they are (source code complexity). To conduct this study, we mined and cross-linked data from four sources: Ethereum dataset on the Google BigQuery platform, Etherscan, State of the DApps, and CoinMarketCap. Our study period runs from July 2015 (inception of Ethereum) until September 2018. With regards to activity level, we notice that it is concentrated on a very small subset of the contracts. More specifically, only 0.05% of the smart contracts are the target of 80% of the transactions that are sent to contracts. New solutions to cope with Ethereum’s limited scalability should take such an activity imbalance into consideration. With regards to categories, we highlight that the new and widely advertised rich programming model of smart contracts is currently being used to develop very simple applications that tend to be token-centric (e.g., ICOs, Crowdsales, etc). Finally, with regards to code complexity, we observe that the source code of high-activity verified contracts is small, with at most 211 instructions in 80% of the cases. These contracts also commonly include at least two subcontracts and libraries in their source code. The comment ratio of these contracts is also significantly higher than that of GitHub top-starred projects written in Java, C ++ , and C # . Hence, the source code of high-activity verified smart contracts exhibit particular complexity characteristics compared to other popular programming languages. Further studies are necessary to uncover the actual reasons behind such differences. Finally, based on our findings, we propose an open research agenda to drive and foster future studies in the area.

中文翻译:

以太坊区块链平台中智能合约的探索性研究

以太坊是一个支持智能合约的区块链平台。智能合约是执行通用计算的代码片段。例如,智能合约已被用于实施众筹计划,从 2018 年 1 月到 6 月共筹集了 62 亿美元。在本文中,我们对智能合约进行了探索性研究。与之前专注于智能合约子集特定方面的研究不同,我们的目标是对当前部署在以太坊中的所有合约有更广泛的了解。特别地,我们阐明了合约的使用频率(活动级别)、它们的作用(类别)以及它们的复杂程度(源代码复杂性)。为了进行这项研究,我们从四个来源挖掘和交叉链接数据:Google BigQuery 平台上的以太坊数据集、Etherscan、DApp 和 CoinMarketCap 的状态。我们的研究期从 2015 年 7 月(以太坊开始)到 2018 年 9 月。关于活动水平,我们注意到它集中在合约的一个很小的子集上。更具体地说,只有 0.05% 的智能合约是发送到合约的 80% 交易的目标。应对以太坊有限的可扩展性的新解决方案应该考虑到这种活动不平衡。关于类别,我们强调,新的和广泛宣传的智能合约丰富的编程模型目前被用于开发非常简单的应用程序,这些应用程序往往以代币为中心(例如 ICO、Crowdsales 等)。最后,关于代码复杂度,我们观察到高活跃验证合约的源代码很少,在 80% 的情况下最多有 211 条指令。这些合同的源代码中通常还包括至少两个分包合同和库。这些合约的评论率也明显高于用 Java、C++、C# 编写的 GitHub 顶级项目。因此,与其他流行的编程语言相比,高活跃度验证智能合约的源代码表现出特殊的复杂性特征。需要进一步的研究来揭示这种差异背后的实际原因。最后,根据我们的发现,我们提出了一个开放的研究议程,以推动和促进该领域的未来研究。这些合约的评论率也明显高于用 Java、C++、C# 编写的 GitHub 顶级项目。因此,与其他流行的编程语言相比,高活跃度验证智能合约的源代码表现出特殊的复杂性特征。需要进一步的研究来揭示这种差异背后的实际原因。最后,根据我们的发现,我们提出了一个开放的研究议程,以推动和促进该领域的未来研究。这些合约的评论率也明显高于用 Java、C++、C# 编写的 GitHub 顶级项目。因此,与其他流行的编程语言相比,高活跃度验证智能合约的源代码表现出特殊的复杂性特征。需要进一步的研究来揭示这种差异背后的实际原因。最后,根据我们的发现,我们提出了一个开放的研究议程,以推动和促进该领域的未来研究。
更新日期:2020-03-12
down
wechat
bug