The thesis addresses the inner workings of the key parts of blockchain technology. Blockchain is only one of the possibilities for storing and transferring wealth, used by cryptocurrencies. This thesis provides a general overview of where and how blockchain can be used. It also explains the general principles of cryptography, which are prerequisites for understanding how blockchain technology works.
For the purpose of this thesis, a cryptocurrency based on the blockchain technology has been developed. The developed cryptocurrency, named mihicoin, is written in Node.js programming language. It contains only the vital parts for normal operation because it is meant for educational purposes of novice readers. With the presented knowledge, it is possible to write your very own blockchain in any desired programming language.
The main part of the thesis describes different challenges and hurdles that one faces when trying to deploy a blockchain on the internet. The internet presents an unreliable telecommunications network with random outages and unpredictable latencies. The thesis proposes the inclusion of a custom algorithm to improve upon Bitcoin's algorithm for adaptive mining difficulty. For the purpose of the thesis, a set of measurements of different parameters of the developed blockchain has been conducted. The following parameters have been investigated in detail: mining power, difficulty adjustments, and the flow of communication.