IEEE Access (Jan 2025)
Emphasizing the Early Phases of the Software Development Process Before Deploying Smart Contracts
Abstract
Immutability is one of the main characteristics of Blockchain. However, most software development is not static. This dilemma, among others, has caused a new branch of blockchain-oriented software engineering. This paper emphasizes the importance of the early phases of software development before deploying blockchain-based software. It follows case-based research to illustrate the implications of smart contracts designed in the early phases without including all requirements. The paper presents a digital identity case designed within a microservice architecture. We show two stages: an initial design and an upgrading requirement, which causes considerable changes in the architecture. The case is analyzed from three different perspectives: 1) Economic, finding that re-deploying smart contracts does not implicate considerable cost; 2) Computational perspective, finding that it generates various implications: smart contract purpose duplication, storage wastage, failure to recognize the original smart contract, cascade dependency repercussion, and migration problems; and 3) Interconnected effect, a simple change, required for upgrading smart contracts, generates broad collateral repercussions in both on-chain (within the blockchain) and off-chain.
Keywords