Can selfish mining work with a leaky pool?
I'm trying to work through an attack scenario (say 20 years in the future when block rewards and fees may be more comparable). A miner with say 10% of the hashrate would like invite others to help him selfish mine. Opening up to a pool presents a problem: If the pool is open to anyone, it becomes nearly impossible to mine blocks in secret, so you wouldn't be able to "build a lead" in secret.
However, my understanding is that you could design a pool protocol so that you are sending many templates to many miners, in a way that only the miner who found the block knows which transactions are contained in it (This miner is quieted with a small bribe.) Then the subsequent template which you send out contains only the hash of the block. The other miners in the pool can see a new block is found, they are free to broadcast the hash of the block to honest miners. Now non-selfish miners are have a set of options:
-
Mine empty blocks including the hash of the secret block,
-
Try to guess what transactions have been included in the hidden blocks
-
Ignore the information entirely and try to build a block at the same height
-
Stop mining until clarity is present.
Note that 3) defaults to classic selfish mining. In the presence a significant fees 1) can be a very stiff penalty. (Note the miner could use his 10% "trusted" hashrate to try to stuff blocks with high value transactions, building these on an actually secret chain)
I'm thinking of working on the Markov computations with some parameters, but before I thought I would ask if there is a known analysis of this style of attack and if my technical understanding is correct.
from Recent Questions - Bitcoin Stack Exchange https://ift.tt/9Sdqc1i
via IFTTT