Defining smart contract defects on Ethereum
Smart contracts are programs running on a blockchain. They are immutable to change, and hence can not be patched for bugs once deployed. Thus it is critical to ensure they are bug-free and well-designed before deployment. A Contract defect is an error, flaw or fault in a smart contract that causes i...
Saved in:
Main Authors: | , , , , , |
---|---|
Format: | text |
Language: | English |
Published: |
Institutional Knowledge at Singapore Management University
2022
|
Subjects: | |
Online Access: | https://ink.library.smu.edu.sg/sis_research/6929 https://ink.library.smu.edu.sg/context/sis_research/article/7932/viewcontent/SmartContractEthereum_av.pdf |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Singapore Management University |
Language: | English |
id |
sg-smu-ink.sis_research-7932 |
---|---|
record_format |
dspace |
spelling |
sg-smu-ink.sis_research-79322022-10-13T03:21:04Z Defining smart contract defects on Ethereum CHEN, Jiachi XIA, Xin LO, David GRUNDY, John LUO, Xiapu CHEN, Ting Smart contracts are programs running on a blockchain. They are immutable to change, and hence can not be patched for bugs once deployed. Thus it is critical to ensure they are bug-free and well-designed before deployment. A Contract defect is an error, flaw or fault in a smart contract that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The detection of contract defects is a method to avoid potential bugs and improve the design of existing code. Since smart contracts contain numerous distinctive features, such as the gas system. decentralized, it is important to find smart contract specified defects. To fill this gap, we collected smart-contract-related posts from Ethereum StackExchange, as well as real-world smart contracts. We manually analyzed these posts and contracts; using them to define 20 kinds of contract defects. We categorized them into indicating potential security, availability, performance, maintainability and reusability problems. To validate if practitioners consider these contract as harmful, we created an online survey and received 138 responses from 32 different countries. Feedback showed these contract defects are harmful and removing them would improve the quality and robustness of smart contracts. We manually identified our defined contract defects in 587 real world smart contract and publicly released our dataset. Finally, we summarized 5 impacts caused by contract defects. These help developers better understand the symptoms of the defects and removal priority. 2022-01-01T08:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/6929 info:doi/10.1109/TSE.2020.2989002 https://ink.library.smu.edu.sg/context/sis_research/article/7932/viewcontent/SmartContractEthereum_av.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Empirical study Ethereum smart contracts contract defect Contracts Finance and Financial Management Information Security Software Engineering |
institution |
Singapore Management University |
building |
SMU Libraries |
continent |
Asia |
country |
Singapore Singapore |
content_provider |
SMU Libraries |
collection |
InK@SMU |
language |
English |
topic |
Empirical study Ethereum smart contracts contract defect Contracts Finance and Financial Management Information Security Software Engineering |
spellingShingle |
Empirical study Ethereum smart contracts contract defect Contracts Finance and Financial Management Information Security Software Engineering CHEN, Jiachi XIA, Xin LO, David GRUNDY, John LUO, Xiapu CHEN, Ting Defining smart contract defects on Ethereum |
description |
Smart contracts are programs running on a blockchain. They are immutable to change, and hence can not be patched for bugs once deployed. Thus it is critical to ensure they are bug-free and well-designed before deployment. A Contract defect is an error, flaw or fault in a smart contract that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The detection of contract defects is a method to avoid potential bugs and improve the design of existing code. Since smart contracts contain numerous distinctive features, such as the gas system. decentralized, it is important to find smart contract specified defects. To fill this gap, we collected smart-contract-related posts from Ethereum StackExchange, as well as real-world smart contracts. We manually analyzed these posts and contracts; using them to define 20 kinds of contract defects. We categorized them into indicating potential security, availability, performance, maintainability and reusability problems. To validate if practitioners consider these contract as harmful, we created an online survey and received 138 responses from 32 different countries. Feedback showed these contract defects are harmful and removing them would improve the quality and robustness of smart contracts. We manually identified our defined contract defects in 587 real world smart contract and publicly released our dataset. Finally, we summarized 5 impacts caused by contract defects. These help developers better understand the symptoms of the defects and removal priority. |
format |
text |
author |
CHEN, Jiachi XIA, Xin LO, David GRUNDY, John LUO, Xiapu CHEN, Ting |
author_facet |
CHEN, Jiachi XIA, Xin LO, David GRUNDY, John LUO, Xiapu CHEN, Ting |
author_sort |
CHEN, Jiachi |
title |
Defining smart contract defects on Ethereum |
title_short |
Defining smart contract defects on Ethereum |
title_full |
Defining smart contract defects on Ethereum |
title_fullStr |
Defining smart contract defects on Ethereum |
title_full_unstemmed |
Defining smart contract defects on Ethereum |
title_sort |
defining smart contract defects on ethereum |
publisher |
Institutional Knowledge at Singapore Management University |
publishDate |
2022 |
url |
https://ink.library.smu.edu.sg/sis_research/6929 https://ink.library.smu.edu.sg/context/sis_research/article/7932/viewcontent/SmartContractEthereum_av.pdf |
_version_ |
1770576145962500096 |