Lecture 6: Bitcoin Miner interactions and Game Theory
Game Theory: P x S -> R x P P: Players S: Strategies R: Rewards
Examples
- For the prisoner’s dilemma, tit-for-tat with some positive randomization is the best strategy.
- 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.
Attacks
- Temporary block withholding - selfish mining
- Fee sniping attack
- Goldfinger attack
- Bribery attack
- 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.