UCL Discovery
UCL home » Library Services » Electronic resources » UCL Discovery

Broken Agreement: The Evolution of Solidity Error Handling

Mitropoulos, Charalambos; Kechagia, Maria; Maschas, Chrysostomos; Ioannidis, Sotirios; Sarro, Federica; Mitropoulos, Dimitrios; (2024) Broken Agreement: The Evolution of Solidity Error Handling. In: ESEM '24: Proceedings of the 18th ACM/IEEE International Symposium on Empirical Software Engineering and Measuremen. (pp. pp. 257-268). ACM/IEEE Green open access

[thumbnail of 3674805.3686686.pdf]
Preview
PDF
3674805.3686686.pdf - Published Version

Download (2MB) | Preview

Abstract

Background. A smart contract is a computer program enclosing the terms of a legal agreement between two or more parties which is automatically verified and executed via a computer network called blockchain. Once a smart contract transaction is completed the blockchain is updated and the transaction cannot be changed anymore. This implies that any error codified in the smart contract program cannot be rectified. Therefore, it is of vital importance that developers of smart contracts properly exploit error handling to prevent issues during and after the contract execution. Existing programming languages for smart contracts, support developers in this task by providing a set of Error Handling (EH) features. However, it is unclear the extent to which developers effectively use EH in practice. Aims. Our work aims to fill this gap by empirically investigating the state of practice on the adoption of EH features of one of the most popular programming languages for smart contracts, namely Solidity. Method. We empirically analyse the usage of EH features in 283K unique open-source Solidity smart contracts for the Ethereum blockchain. Results. Our analysis of the documentation of the different versions of Solidity coupled with the empirical evaluation of the EH uses and misuses found in real-word smart contracts, indicate that, among other things, Solidity EH features have been changing frequently across versions, and that the adoption of most of the Solidity EH features has been limited in practice. However, we observe an upward trend in the usage of the require EH feature, which is specifically designed for smart contract development. Conclusions. The insights from our study could help developers improve their EH practice as well as designers of smart contract programming languages to equip their language with appropriate EH features.

Type: Proceedings paper
Title: Broken Agreement: The Evolution of Solidity Error Handling
Event: International Symposium on Empirical Software Engineering and Measureme
Location: Barcelona, Spain
Dates: 24 Oct 2024 - 25 Oct 2024
Open access status: An open access version is available from UCL Discovery
DOI: 10.1145/3674805.368668
Publisher version: https://doi.org/10.1145/3674805.3686686
Language: English
Additional information: This work is licensed under a Creative Commons License. The images or other third-party material in this article are included in the Creative Commons license, unless indicated otherwise in the credit line; if the material is not included under the Creative Commons license, users will need to obtain permission from the license holder to reproduce the material. To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0/
Keywords: Solidity, smart contracts, error handling, software evolution
UCL classification: UCL
UCL > Provost and Vice Provost Offices > UCL BEAMS
UCL > Provost and Vice Provost Offices > UCL BEAMS > Faculty of Engineering Science > Dept of Computer Science
URI: https://discovery.ucl.ac.uk/id/eprint/10205027
Downloads since deposit
Loading...
4Downloads
Download activity - last month
Loading...
Download activity - last 12 months
Loading...
Downloads by country - last 12 months
Loading...

Archive Staff Only

View Item View Item