Simulation and analysis of the selfish-mining attack on Bitcoin

Supervisor(s)Svetlana Abramova, MSc


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.


  • Eyal, I. and Sirer, E.G. Majority Is Not Enough: Bitcoin Mining Is Vulnerable. In N. Christin and R. Safavi-Naini, eds., Financial Cryptography and Data Security. Lecture Notes in Computer Science 8437, Springer, Berlin Heidelberg, 2014, pp. 436–454.
  • Göbel, J., Keeler, P., Krzesinski, A.E., and Taylor, P.G. Bitcoin Blockchain Dynamics: the Selfish-Mine Strategy in the Presence of Propagation Delay. (2015).