fc5fz edited this page Nov 24, 2015 · 2 revisions


This is the wiki page for my project on detecting selfish mining in Bitcoin.

What is Selfish Mining?

Selfish mining is an attack on the Bitcoin mining network proposed by Ittay Eyal and Emin Sirer. In their paper, they proposed a method that would allow selfish miners to claim a higher proportion of blocks than the proportion they would receive by mining honestly. The attack works by holding onto blocks the miner has found and attempting to get a two block lead over the network. After a lead is obtained, the selfish miner can then wait until the network is only one block behind and then publish the blocks they have found. Since the selfish miner has a longer chain, the network's blocks will be orphaned.

Importance of Preventing Selfish Mining

By hurting the revenue of other miners, selfish mining has the potential to make Bitcoin mining more centralized which hurts the security of the Bitcoin network.

Methods of Detection

This project will use two methods to detect selfish mining based on data in the blockchain. The first method is counting the number of orphaned blocks. Successful selfish mining will produce more orphaned blocks than normal. The second is the amount of time between blocks. Without selfish mining, the time between blocks should be distributed exponentially. With selfish mining, the number of short intervals between blocks will be increased.

Data Sources

The BlockCypher API will be used to collect data about blocks in the past. The BlockChain.info API will be used to collect live data about new blocks including orphaned blocks.

Team Members


Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.