Abstract:
The emergence of blockchains as a way to organize and protect user data across the internet has come with some concerns, mainly how to deal with the issue of scalability while still maintaining the security standards as well as the decentralized nature inherent to blockchains. Many different implementations, which will be elicited in this thesis, resort to the concept of sharding, which consists of partitioning a blockchain into smaller clusters which would, with proper load-balancing, drastically improve the performance of the overall chain. We will first explore the existing literature on the subject as well as related algorithms. We will then provide a detailed explanation of the functioning of the existing algorithms, both centralized and decentralized, as well as the one proposed by this thesis. We will then elicit the settings and conditions of the simulation environment, both in terms of data collection and preparation. Finally, we will provide the results obtained as well as a comparative analysis of the tested algorithms and give an overview of possible future endeavors in the advancement of load-balancing algorithms in respect to sharded Blockchains.