Democratization of Voting with Blockchain Technology - Karlkvist, Daniel; Axelsson, Marcus (My University, 2023)
Blockchain technology has emerged in the last decade since the release of the Bitcoin white paper. The technology has later been applied to many different areas to solve recurring wicked problems within software engineering such as errorless security and complete transparency. The project was designed to fill a research gap in the software engineering field of how to identify requirements (problem space), how to specify technical implementations (solution space), and how the connection between them interacts for a blockchain-based system. This was fulfilled by conducting a case study on the digitalizing of the Swedish election system because of its strong need for high security and transparency. The study was based on data collected from interviews, literature reviews, and selfexploration by coding. The knowledge gained was used to create a requirements specification representing the problem space, together with an implementation of a smart contract in Solidity and TypeScript functions representing the solution space. The findings revealed that requirements engineering can be used for blockchain development using traditional requirements engineering techniques. However, challenges emerged when identifying non-functional requirements because of quality factors in terms of security, reliability, efficiency, and transparency since these are more difficult to manage in a decentralized network. Moreover, limitations in the current state of blockchain technology led to that the solution for the case did not fully cover the entire problem space. In addition, it was discovered that the need for support from other systems when developing a blockchain application causes traditional software engineering problems to reappear in blockchain projects. Finally, previous research tells us the importance of focusing on problem space rather than solution space. However, it was observed that the problem and solution space for blockchain systems has a deep impact on each other, which in turn creates an issue if the main focus remains on the problem space.
Keywords: software engineering; blockchain; blockchain voting; requirements engineering; problem space; solution space