Çulha, D.Yazici, A.2025-03-052025-03-052024979835035153810.1109/BCCA62388.2024.108444072-s2.0-85218105132https://doi.org/10.1109/BCCA62388.2024.10844407https://hdl.handle.net/20.500.14411/10480Dubai Blockchain Center; Dubai Business Events; Singularity NET; Zayed UniversitySoftware maintenance is crucial as technology rapidly evolves, requiring software to meet new demands and correct errors. Smart contracts, immutable programs on blockchains like Ethereum, face challenges despite their immutability, often needing updates for errors or new features. Smart contracts are upgraded using different patterns, which are not natural because most of them implement upgrades using low-level operations that deviate from their intended use. In other words, these patterns are not natural because upgrades are done by implementing workarounds. Moreover, smart contracts are also susceptible to security vulnerabilities because they may hold large amounts of money. In this paper, upgradability of smart contracts is considered a necessity. For this purpose, a more structured method is proposed by adding high-level features and combining inheritance properties of object-oriented languages. A key component of this method is the gotoContract variable, which allows for the redirection of function calls to upgraded contracts. The proposed method provides a complete upgrade of data and functions in smart contracts. It aims to minimize the effects of upgrades on end users of the smart contracts. Additionally, this natural way of upgrading will help mitigate security risks in the smart contracts by providing a high-level approach to upgrade. © 2024 IEEE.eninfo:eu-repo/semantics/closedAccessBlockchain Smart ContractObject-Oriented InheritanceSmart Contract MaintenanceSmart Contract UpgradabilitySmart Contract Upgradability PatternsUpgradable Smart ContractSmart Contract Upgradability: a Structured and Natural ApproachConference ObjectN/AN/A198203