public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
* [bitcoin-dev] Selfish Mining Prevention
@ 2018-09-01  0:11 Andrew
  2018-09-13 23:19 ` Andrew
  0 siblings, 1 reply; 14+ messages in thread
From: Andrew @ 2018-09-01  0:11 UTC (permalink / raw)
  To: Bitcoin Dev

As I understand, selfish mining is an attack where miners collude to
mine at a lower hashrate then with all miners working independently.
What are the current strategies used to prevent this and what are the
future plans?

One idea I have is to let the block reward get "modulated" according
to peak hashrate. Say p is the peak hashrate for 365 periods (1 year)
consisting of 144 blocks, h is the hashrate of the last 144 block (1
day) period, and r is the base subsidy (12.5 BTC currently). You can
then make the max block reward 0.5 r (1 + h/p). So 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.

What flaws are there with this? I know it could be controversial due
to easier mining present for early miners, so maybe it would have to
be done in combination with a new more dynamic difficulty adjustment
algorithm. But I don't see how hashrate can continue rising
indefinitely, so a solution should be made for selfish mining.

Also when subsidies stop and a fee market is needed, I guess a portion
of the fees can be withheld for later if hashrate is not at peak.


-- 
PGP: B6AC 822C 451D 6304 6A28  49E9 7DB7 011C D53B 5647


^ permalink raw reply	[flat|nested] 14+ messages in thread
* Re: [bitcoin-dev] Selfish Mining Prevention
@ 2018-09-17 14:09 Zawy
  2018-09-18 20:26 ` Andrew
  0 siblings, 1 reply; 14+ messages in thread
From: Zawy @ 2018-09-17 14:09 UTC (permalink / raw)
  To: Bitcoin Protocol Discussion

The 51% problem is deep. Any discussion of a solution to it should
begin with a link to an article that shows a profound discovery has
been made. Selfish mining prevention and pollution should be on
bitcoin-discussion, but it appears that list is not active.

The problem with Andrew's idea below is that it is a positive feedback
loop that amplifies oscillations. If h goes up or down due to price
changes or random solvetime variation, then the net reward goes in the
same direction, which motivates miners to cause h to go even further
in the same direction, which is a positive feedback loop until some
limit is reached. To make matters worse, miner profit motivation in
choosing which coin to mine is a non-linear function: a 30% drop in
difficulty (or 30% increase in this reward function) in an alt coin
can cause a 300% increase in hashrate.

Average of 144 past blocks to determine h are needed so that it does
not vary too much.  A selfish mine of 72 blocks would result in only a
12.5% loss compared to not using this pro-oscillation function. I've
tried similar reward functions in trying to reduce on-off mining.

There may also be a problem of issuing too many or too few coins,
depending on how fast h rises in the long term.

An alternative is to increase difficulty with this or a similar
function instead of reward. From a miner's perspective, there is not a
difference (they are only interested in the (price+fees)/difficulty
ratio. This would have the same problems.

The problem has been solved to the best of our ability by the Nakamoto
consensus. The math is straightforward, so you can't get around it's
failings unless it's a profound solution or we shift trust to some
place else. Currently we have to choose and trust a small group of
coins (or 1) to be the best choice(s), and to trust that the reward
plus fees we pay for mining (compared to coin value) is enough to
prevent a 51% attack.

> Say p is the peak hashrate for 365 periods (1 year)
> consisting of 144 blocks, h is the hashrate of the last 144 block (1
> day) period, and r is the base subsidy (12.5 BTC currently). You can
> then make the max block reward 0.5 r (1 + h/p). So if hashrate is at
> peak you get the full reward. Otherwise you get less, down to a min of


^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2018-09-18 20:26 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-01  0:11 [bitcoin-dev] Selfish Mining Prevention Andrew
2018-09-13 23:19 ` Andrew
2018-09-14 14:49   ` Moral Agent
2018-09-14 17:30     ` Andrew
2018-09-14 18:00       ` Moral Agent
2018-09-15  5:29   ` Damian Williamson
2018-09-15 16:01     ` Andrew
2018-09-15 22:45       ` Damian Williamson
2018-09-16 23:20         ` Eric Voskuil
2018-09-17 13:18           ` Andrew
2018-09-17 15:40             ` Eric Voskuil
2018-09-17 19:36             ` Eric Voskuil
2018-09-17 14:09 Zawy
2018-09-18 20:26 ` Andrew

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox