Cargando…

Smart contracts software metrics: A first study

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 autom...

Descripción completa

Detalles Bibliográficos
Autores principales: Tonelli, Roberto, Pierro, Giuseppe Antonio, Ortu, Marco, Destefanis, Giuseppe
Formato: Online Artículo Texto
Lenguaje:English
Publicado: Public Library of Science 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10096301/
https://www.ncbi.nlm.nih.gov/pubmed/37043512
http://dx.doi.org/10.1371/journal.pone.0281043
_version_ 1785024302641315840
author Tonelli, Roberto
Pierro, Giuseppe Antonio
Ortu, Marco
Destefanis, Giuseppe
author_facet Tonelli, Roberto
Pierro, Giuseppe Antonio
Ortu, Marco
Destefanis, Giuseppe
author_sort Tonelli, Roberto
collection PubMed
description 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.
format Online
Article
Text
id pubmed-10096301
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher Public Library of Science
record_format MEDLINE/PubMed
spelling pubmed-100963012023-04-13 Smart contracts software metrics: A first study Tonelli, Roberto Pierro, Giuseppe Antonio Ortu, Marco Destefanis, Giuseppe PLoS One Research Article 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. Public Library of Science 2023-04-12 /pmc/articles/PMC10096301/ /pubmed/37043512 http://dx.doi.org/10.1371/journal.pone.0281043 Text en © 2023 Tonelli et al https://creativecommons.org/licenses/by/4.0/This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.
spellingShingle Research Article
Tonelli, Roberto
Pierro, Giuseppe Antonio
Ortu, Marco
Destefanis, Giuseppe
Smart contracts software metrics: A first study
title Smart contracts software metrics: A first study
title_full Smart contracts software metrics: A first study
title_fullStr Smart contracts software metrics: A first study
title_full_unstemmed Smart contracts software metrics: A first study
title_short Smart contracts software metrics: A first study
title_sort smart contracts software metrics: a first study
topic Research Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10096301/
https://www.ncbi.nlm.nih.gov/pubmed/37043512
http://dx.doi.org/10.1371/journal.pone.0281043
work_keys_str_mv AT tonelliroberto smartcontractssoftwaremetricsafirststudy
AT pierrogiuseppeantonio smartcontractssoftwaremetricsafirststudy
AT ortumarco smartcontractssoftwaremetricsafirststudy
AT destefanisgiuseppe smartcontractssoftwaremetricsafirststudy