Abstract:
In the recent years cryptocurrencies have become more and more pervasive in everyday life. Bitcoin is the most famous and the most used one.
This technology is based on the Blockchain, a continuously growing public list of blocks. Blocks are made up of transactions that describe exchange of coins between entities that own a Bitcoin wallet.
Since the creation of the currency in 2008, this structure has recorded all the information about transactions and blocks.
The security of the system is based on a widespread network that prevents modification at data registered in the blockchain and the use of cryptography that secures the transactions between two parties.
Bitcoins are created through mining, a process that requires the miners (users who want to participate actively in the creation of Bitcoins) to solve the proof of work, a problem of finding a known hash starting from part of the input.
When the correct hash is found, a new block with the coinbase, or the starting, transaction is created and added to the blockchain. As a prize a certain amount of Bitcoin is given to the miners who solved the hash.
In this dissertation we will provide an analysis of some interesting aspects of the blockchain.
The information about blocks and transactions are retrieved by parsing, interpretation by converting raw data into readable data, a section of the blockchain. In particular we considered the time-span between 1st January 2013 to 11th October 2018.
The most intriguing aspect developed in this thesis is related to the so called empty blocks, that are characterized by not containing any transaction except the coinbase, or the starting, one.
We analyzed how empty blocks are mined and when is profitable to not add any transaction in a mined block.
Moreover we studied the correlation of empty blocks generation with the propagation delay of blocks and transactions in the bitcoin network.
We will finally propose a model that aims to predict the behaviour of the Bitcoin system in the setting of an infinite pending transaction queue and test the goodness of the prediction by comparing the results with the real world data.