Assessing GitHub Copilot in Solidity Development: Capabilities, Testing, and Bug Fixing

In the rapidly evolving landscape of blockchain technology, the development of reliable and secure smart contracts represents one of several crucial challenges. GitHub Copilot, an AI-powered code assistant, aims to enhance developer productivity by generating code snippets, facilitating testing, and...

Full description

Saved in:
Bibliographic Details
Main Authors: Gavina Baralla, Giacomo Ibba, Roberto Tonelli
Format: Article
Language:English
Published: IEEE 2024-01-01
Series:IEEE Access
Subjects:
Online Access:https://ieeexplore.ieee.org/document/10735191/
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1846163847162888192
author Gavina Baralla
Giacomo Ibba
Roberto Tonelli
author_facet Gavina Baralla
Giacomo Ibba
Roberto Tonelli
author_sort Gavina Baralla
collection DOAJ
description In the rapidly evolving landscape of blockchain technology, the development of reliable and secure smart contracts represents one of several crucial challenges. GitHub Copilot, an AI-powered code assistant, aims to enhance developer productivity by generating code snippets, facilitating testing, and assisting in program repair. This research examines Copilot’s proficiency in generating functional and secure smart contracts, including token creation adhering to standards such as ERC20, ERC721, and ERC1155 with various optional features. Additionally, the study assesses its effectiveness in common development tasks, including the implementation of widely employed libraries such as SafeMath. Through controlled experiments, the accuracy, efficiency, and security of the code generated by Copilot are evaluated. This evaluation identifies both its strengths in expediting the development process and its limitations in managing complex blockchain-specific logic and security considerations. The findings contribute to an expanded understanding of the role of AI-assisted programming in blockchain development, offering insights into how developers can best leverage such tools in creating and testing smart contracts. This research aims to guide both practitioners and researchers in the blockchain domain, advancing the discussion on integrating AI into software development workflows in the context of Solidity and smart contract development, underscoring the need for further research to address the challenges and opportunities presented by AI in blockchain technology.
format Article
id doaj-art-7d39cee4d5de4365957af85acf6c386a
institution Kabale University
issn 2169-3536
language English
publishDate 2024-01-01
publisher IEEE
record_format Article
series IEEE Access
spelling doaj-art-7d39cee4d5de4365957af85acf6c386a2024-11-19T00:02:30ZengIEEEIEEE Access2169-35362024-01-011216438916441110.1109/ACCESS.2024.348636510735191Assessing GitHub Copilot in Solidity Development: Capabilities, Testing, and Bug FixingGavina Baralla0https://orcid.org/0000-0002-3119-9388Giacomo Ibba1Roberto Tonelli2https://orcid.org/0000-0002-9090-7698Department of Mathematics and Computer Science, University of Cagliari, Cagliari, ItalyDepartment of Mathematics and Computer Science, University of Cagliari, Cagliari, ItalyDepartment of Mathematics and Computer Science, University of Cagliari, Cagliari, ItalyIn the rapidly evolving landscape of blockchain technology, the development of reliable and secure smart contracts represents one of several crucial challenges. GitHub Copilot, an AI-powered code assistant, aims to enhance developer productivity by generating code snippets, facilitating testing, and assisting in program repair. This research examines Copilot’s proficiency in generating functional and secure smart contracts, including token creation adhering to standards such as ERC20, ERC721, and ERC1155 with various optional features. Additionally, the study assesses its effectiveness in common development tasks, including the implementation of widely employed libraries such as SafeMath. Through controlled experiments, the accuracy, efficiency, and security of the code generated by Copilot are evaluated. This evaluation identifies both its strengths in expediting the development process and its limitations in managing complex blockchain-specific logic and security considerations. The findings contribute to an expanded understanding of the role of AI-assisted programming in blockchain development, offering insights into how developers can best leverage such tools in creating and testing smart contracts. This research aims to guide both practitioners and researchers in the blockchain domain, advancing the discussion on integrating AI into software development workflows in the context of Solidity and smart contract development, underscoring the need for further research to address the challenges and opportunities presented by AI in blockchain technology.https://ieeexplore.ieee.org/document/10735191/GitHub copilotsoliditysmart contractAIbug fixingvulnerability
spellingShingle Gavina Baralla
Giacomo Ibba
Roberto Tonelli
Assessing GitHub Copilot in Solidity Development: Capabilities, Testing, and Bug Fixing
IEEE Access
GitHub copilot
solidity
smart contract
AI
bug fixing
vulnerability
title Assessing GitHub Copilot in Solidity Development: Capabilities, Testing, and Bug Fixing
title_full Assessing GitHub Copilot in Solidity Development: Capabilities, Testing, and Bug Fixing
title_fullStr Assessing GitHub Copilot in Solidity Development: Capabilities, Testing, and Bug Fixing
title_full_unstemmed Assessing GitHub Copilot in Solidity Development: Capabilities, Testing, and Bug Fixing
title_short Assessing GitHub Copilot in Solidity Development: Capabilities, Testing, and Bug Fixing
title_sort assessing github copilot in solidity development capabilities testing and bug fixing
topic GitHub copilot
solidity
smart contract
AI
bug fixing
vulnerability
url https://ieeexplore.ieee.org/document/10735191/
work_keys_str_mv AT gavinabaralla assessinggithubcopilotinsoliditydevelopmentcapabilitiestestingandbugfixing
AT giacomoibba assessinggithubcopilotinsoliditydevelopmentcapabilitiestestingandbugfixing
AT robertotonelli assessinggithubcopilotinsoliditydevelopmentcapabilitiestestingandbugfixing