Selfish Mining Prevention



Summary:

The proposal to prevent attacks like selfish mining and collusion, as well as more subtle attacks like block withholding, is being discussed on bitcointalk. The proposal aims at driving out the competition in order to increase hashrate fraction. The author of the proposal suggests adding the concept of "reserve fees" that incentivizes miners to not drive out the competition since there will be less of these reserve fees given to miners. The author suggests that this change wouldn't force anything and would be voluntary by each user. The miners have to agree to it with a soft fork.When a user makes a transaction, for each txout script, they can add parameters that specify the fraction of the total fee that is held in "reserve" and the time it is held in "reserve" (can set a limit of 2016 blocks). This "reserve" part of the fee will be paid to miners if the hashrate rises. So, if hashrate is currently h and peak hashrate (from past year) is p, then for each period (1 day), a new hashrate is calculated h1, and if h1 > h, then the fraction (h1-h)/p from the reserve fees created in the past 2016 blocks will be released to miners for that period.This should incentivize miners to not drive out the competition since if they do, there will be less of these reserve fees given to miners. The author suggests that yes in the end the miners will get all the fees, but with rising hashrate they get an unconditional subsidy that does not require transactions, thus more space for transactions with fees. The author believes that resource requirements for validation are quite small. A formal BIP and pull request can be made, but before that, the author needs to know if there is interest in this. Fees don't play such a large part of the block reward, but they will get more important, and this change wouldn't force anything (would be voluntary by each user), just miners have to agree to it with a soft fork.The author also discusses the idea of selfish mining and suggests letting the block reward get "modulated" according to peak hashrate. The author proposes that if hashrate is at peak you get the full reward, otherwise you get less, down to a min of 0.5 r. If miners were to collude to mine at a lower than peak hashrate, then they may be able to do it profitably for 144 blocks, but after that, the reward would get modulated and it wouldn't be so much in their interest to continue mining at the lower hashrate. The author believes that there could be possible flaws with this approach due to easier mining present for early miners, so it may have to be done in combination with a new more dynamic difficulty adjustment algorithm.


Updated on: 2023-06-13T14:37:26.804360+00:00