智能合约软件度量:一项初步研究
软件工程
2018-02-08 v2
摘要
智能合约(SC)是驻留并运行于区块链之上的软件代码。这些代码可用不同语言编写,其共同目的是在宿主区块链上实现各类交易。它们受区块链基础设施规则约束,并致力于满足传统合约的典型条件。软件代码必须满足强上下文相关的约束,这些约束与传统软件代码大不相同。特别地,由于字节码被上传至宿主区块链,尺寸、计算资源、软件不同部分之间的交互均受到限制,即便具体软件语言实现了与传统语言或多或少相同的构造,也不具备常规软件开发中的同等自由度。SC 软件有望在这些约束上反映于 SC 软件度量中,其度量值应展现该领域的特征并不同于更传统的软件度量。我们在超过一万二千个用 Solidity 编写并上传至以太坊区块链的 SC 代码上检验了这一假设。我们从公共仓库下载了这些 SC 并计算了一组与 SC 相关的软件度量统计值,将其与更传统软件项目提取的度量进行比较。我们的结果表明,一般而言智能合约度量的值域比传统软件系统中相应度量更受限。某些典型事实(如某些度量分布尾部的幂律)仅为近似,但代码行数遵循对数正态分布,这与传统软件系统中已发现的行为一致。
引用
@article{arxiv.1802.01517,
title = {Smart Contracts Software Metrics: a First Study},
author = {Roberto Tonelli and Giuseppe Destefanis and Michele Marchesi and Marco Ortu},
journal= {arXiv preprint arXiv:1802.01517},
year = {2018}
}