Lecture 6: Bitcoin Miner interactions and Game Theory

Game Theory: P x S -> R x P
P: Players
S: Strategies
R: Rewards


  1. For the prisoner’s dilemma, tit-for-tat with some positive randomization is the best strategy.
  2. Trench soldiers in World War 2 decided to start aiming artillery at random “safe” locations instead of killing the enemy. This all happened without any communication.

Mechanism design: Design the rules of the game with the outcome you want.

If we thinking of Bitcoin mining as a game then miners are players and the different strategies they have to decide which transactions to choose (default: everything), which to relay (default: everything), which to extend(default: most accumulated work), etc.


  1. Temporary block withholding – selfish mining
  2. Fee sniping attack
  3. Goldfinger attack
  4. Bribery attack
  5. Feather forking

Selfish mining

Miner generates a block but does not publish it. It keeps mining on top of that block. If someone else mines a block in the meanwhile then you don’t broadcast theirs but broadcast yours. It can be proven that if a miner has >= 33% mining power than withholding is a better strategy.

Fee Sniping

If an already mined block has a really high transaction fee then a miner might decide to re-mine that block to claim the transaction gee. Note that, Coinbase transactions mature after 100 blocks and cannot be spent till then.

Goldfinger attack

A 51% attack or something similar which destroys the value of Bitcoin completely. The attacker’s interest is that Bitcoin should go down in value

Bribery attack

A->B transaction has been added to the block and A might have received some physical goods as well in return. A bribes miners to mine on A->A’ transaction making A->B moot. There are multiple ways to bribe, apart from physical cash delivery, A can create a negative fee mining pool or pay-to-anybody transactions build on A->A’ to incentivize miners to mine on it.

Feather Forking

To censor a certain transaction. The attacker announces a credible threat that they will fork if a certain transaction makes into the blockchain. Miners will avoid including that certain transaction and the attacker pay no cost for this. For example, if the attacker has 20% mining power and is going to try up to 2 blocks to re-mine then the likelihood of success is 4%  but a miner does not want to take 4% chance of losing the mining fee.