-
m-relay<leonarth_:matrix.org> Selfish mining / block withholding
-
m-relay<leonarth_:matrix.org> My understanding of how this attack vector works:
-
m-relay<leonarth_:matrix.org> - PoolX mines block 3000: doesn't broadcast it to the network
-
m-relay<leonarth_:matrix.org> - PoolX starts mining block 3001 while other pools are still doing useless work on block 3000
-
m-relay<leonarth_:matrix.org> - PoolY mines block 3000 and broadcasts it
-
m-relay<leonarth_:matrix.org> - PoolX mines block 3001 and immediately broadcasts both 3000,3001 blocks to the network creating a longer chain
-
m-relay<leonarth_:matrix.org> - PoolY block becomes orphaned as PoolX is ahead
-
m-relay<leonarth_:matrix.org> - PoolX gets reward from 2 blocks
-
m-relay<leonarth_:matrix.org> Countermeasures: we could design pattern recognition for this type of behavior and discard PoolX broadcast, e.g.: if the block broadcast time of block 3000 and block 3001 are too close then PoolX is mining too fast.
-
m-relay<leonarth_:matrix.org> Meaning PoolX is either:
-
m-relay<leonarth_:matrix.org> - mining too fast: achieved over 51% of network hashrate
6 hours ago