Copyright: Lo, Sin Kuang
Copyright: Lo, Sin Kuang
Blockchain-based systems must be reliable and have high integrity because they are used for recording economically-critical and safety-critical data. Incorrect data recorded on a blockchain, from either faulty external components or inaccurate input data, can undermine the integrity or reliability of the systems. The importance of reliability and integrity for blockchains is known, but approaches to assessing them in blockchain-based systems have not been previously investigated. In a blockchain-based system, the data recorded in the system must be accurate because it will be used to verify the correctness of external states. So, systems that rely on data are also impacted by its data quality. Nonetheless, the general relationship between system quality and data quality has not previously been conceptualised systematically in the software architecture literature. This thesis aims to improve our understanding of the design of blockchain-based systems, considering both system quality and data quality. We first report studies we have conducted on using architecture-level modelling based approaches to analyse the reliability of blockchain oracles. Our analysis shows that decentralised oracles have higher reliability than centralised oracles, and that data sources can affect system reliability. Our study demonstrates the feasibility of using architecture modelling and established techniques to model and analyse the reliability of off-chain components. We have also proposed and evaluated a series of schemes to model and analyse data integrity in blockchain-based systems. Blockchains using Nakamoto Consensus cause transactions to have a probability of being reversed or reordered. This leads to difficulties in modelling and analysing how blockchains affect the integrity of data in blockchain-based systems. We report on a study conducted using the design of a real-world system, and evaluate our proposed approach. The findings show how different types of integrity threats and their designed mitigations can be identified and analysed. Finally, motivated by the work on reliability and integrity, we propose a theoretical model of the general relationship between system quality and data quality in software systems. We link this to established views about the relationship between software architecture and system quality. The general nature of the relationship between system quality and data quality has not previously been examined. We use examples from the literature to establish the face validity of our model, and discuss its possible implications for research and practice.