Page MenuHomePhabricator

Inhibit selfish mining
Open, HighPublic

Description

In a nut shell, we need to break ties between incoming blocks based on most accurate timestamp. Amaury's description of this from my discussion with him:

deadalnix [4:37 PM]
nope, it comes out of a discussion I had with emin during the whole DAA event about how to reduce the impact of selfish mining
selfish mining goes as follow
selfish miner mines normally, finds a block but do not broadcast it. If selfish miner find a second one and so on he continue mining its own chain and can publish it when it looks like the other miner are catching up, effectively ensuring other miner lose a lot of hash power.
So eventually you get a race between the selfish miner and the rest of the network.
It is not possible to know right now what block is the one from the selfish miner and which is from an honest miner. But selfish miner cannot know when the honest miner is going to find a block, so if you pick the one with the most accurate timestamp, you are very likely picking the block from the honest miner.
therefore selfish miner lose the race almost every time.