The Bitcoin cryptographic currency records its transactions in the public blockchain, which is maintained by a community of participants known as miners. Whenever a miner solves a computationally difficult cryptographic puzzle and publishes it in the network, a new block composing of the set of transactions and the puzzle solution is added to the blockchain. In order to get a larger expected reward, miners might form a group of so-called “selfish” miners, which keeps its discovered blocks private and reveals them depending on the relative length of the private versus public branch of the blockchain.
In this thesis, a simulation model for the selfish-mining attack should be built in R (with C or C++, if needed). The simulation environment should allow to analyse how different model parameters (e.g., miner’s costs or transaction fees) affect the choice of a miner between selfish and honest mining.