Abstract
Smart contracts (SC) are software programs that reside and run over a blockchain. The code can be written in different languages with the common purpose of implementing various kinds of transactions onto the hosting blockchain. They are ruled by the blockchain infrastructure with the intent to automatically implement the typical conditions of traditional contracts. Programs must satisfy context-dependent constraints which are quite different from traditional software code. In particular, since the bytecode is uploaded in the hosting blockchain, the size, computational resources, interaction between different parts of the program are all limited. This is true even if the specific programming languages implement more or less the same constructs as that of traditional languages: there is not the same freedom as in normal software development. The working hypothesis used in this article is that Smart Contract specific constraints should be captured by specific software metrics (that may differ from traditional software metrics). We tested this hypothesis on 85K Smart Contracts written in Solidity and uploaded on the Ethereum blockchain. We analyzed Smart Contracts from two repositories “Etherscan” and “Smart Corpus” and we computed the statistics of a set of software metrics related to Smart Contracts and compared them to the metrics extracted from more traditional software projects. Our results show that generally, Smart Contract metrics have more restricted ranges than the corresponding metrics in traditional software systems. Some of the stylized facts, like power law in the tail of the distribution of some metrics, are only approximate but the lines of code follow a log-normal distribution which reminds us of the same behaviour already found in traditional software systems.
Funder
Italian Ministry of University and Research
Fondazione di Sardegna
Publisher
Public Library of Science (PLoS)
Reference75 articles.
1. Smartinspect: solidity smart contract inspector;S. Bragagnolo;2018 International Workshop on Blockchain Oriented Software Engineering (IWBOSE),2018
2. Formalizing and securing relationships on public networks;N. Szabo;First monday,1997
3. Smart contracts vulnerabilities: a call for blockchain software engineering?
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Leveraging Large Language Models for Automatic Smart Contract Generation;2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC);2024-07-02
2. Gas Fees and Unconfirmed Transactions in Ethereum: A Proof-of-Stake (PoS) Focus;2024 IEEE International Conference on Software Analysis, Evolution and Reengineering - Companion (SANER-C);2024-03-12
3. Complex Systems Oriented Approach for dApps Analysis;2024 IEEE International Conference on Pervasive Computing and Communications Workshops and other Affiliated Events (PerCom Workshops);2024-03-11
4. Smart Contracts’ Upgradability for Flexible Business Processes;Lecture Notes in Business Information Processing;2024
5. Parallelising semantic checking in an IDE: A way toward improving profits and sustainability, while maintaining high-quality software development;Acta Universitatis Sapientiae, Informatica;2023-12-01