Pages:
Author

Topic: Solving Selfish/Colluding Mining - page 2. (Read 662 times)

hero member
Activity: 1220
Merit: 612
OGRaccoon
September 03, 2018, 06:02:56 PM
#8
This is a very interesting topic, over the past few week I have notice many blocks with timestamps "Ahead" of time.
Seems to be only 3 pools that are broadcasting there block finds with timestamps "ahead" of time!

I captured a few screen shots and created a post asking about this  (it was swiftly removed!)

Now for the strange part..

I know that the code allows for time issues but what is this is a new type of attack that is being pushed at the network?
Seems only a few pools are doing this then they suddenly switch back to the correct time.

1. why would they change the timestamps for X-amount blocks then change back to the correct time.

So for a 2nd time..

Here are the screen shots.

https://imgur.com/a/bQgCyDE


Deleted post...

https://imgur.com/a/gIxtYY0
member
Activity: 100
Merit: 16
September 03, 2018, 04:23:40 PM
#7
I believe there are various attacks (not exactly the same) that result in a miner / miners causing the hashrate to drop, and since they get the same reward as with everyone mining at full hashrate, they are incentivized to do it.

Ya the typical idea of selfish miner, is you have "one" miner who has like 30-40% of the hashrate of the network and thus can mine a few blocks ahead of others and cause the others to give up mining because they keep getting orphaned. This lowers the total hashrate and gives these selfish miners more reward per block. If they keep mining at this low rate, and this gets detected and rewards get modulated downward, then there would be less of an incentive to do that. Maybe better actually if reward was exactly proportional to hashrate. So 40% hashrate means 40% reward. Also, it doesn't have to be one miner, it can be multiple miners colluding to do this attack.

Another possibility all miners (like 95%) agreeing to mine at a lower hashrate since that way they get the same reward per block at a lower energy cost. Isn't this the classical game theory strategy where the best long term solution is to work together to make things easier? It can also be non-voluntary and due to pressure such as governments increasing the cost of electricity, as is happening in Washington State right now. If all governments double electricity costs, wouldn't that in principle cause the potential hashrate to halve, and then suddenly the centralized governments use their extra capacity to carry out a quick 51% attack? With lower rewards for less than peak hashrate, there is incentive to keep pushing for the peak hashrate to make sure there is no "spare" hashrate just waiting to be deployed for a 51% attack.

Also, in the reddit post about this (https://www.reddit.com/r/Bitcoin/comments/7e04ov/why_has_there_been_no_selfish_mining_attack_on/) gmaxwell/nullc said an interesting thing:
Quote
Selfish mining costs you income now in exchange for lower difficulty in the future, if your relative share of the total network hashrate is falling it's easy to be in a situation where it would lose you money.
So if network hashrate keeps rising (share of selfish miner's hashrate is falling) then it is not profitable, but once we start seeing falling hashrate, it may become more realistic, so we should watch out.
Also Peter Todd said there are attacks more effective than selfish mining, but I am not sure what he's talking about.

@ranochigo says
Quote
The network cannot know what the hashrate is at any point of time. The network approximates this based on the last 2016 blocks for the difficulty adjustment. It would be incredibly inaccurate if the sample size decreases as blocks could be found within seconds of each other.
For every 144 blocks, you take the time of block 144 minus the time of block 0 (can use medianTimePast to protect against inaccurate timestamps). Add up the work for those blocks. Take the work divided by time. Then for the next 144 block period use that as the "current hashrate"

Actually, to be more conservative, I would recommend modulating only the miner fees and not the subsidies, and then slowly the reward will be dominated by fees, so there will be a slow transition with this effect. I need to think still of a way this could be done as a softfork, as that would be easier than a hard fork. For example you can set a rule that miners can only take fees * h / p from the fees (easy soft fork), with some standard rule for determining where to put the difference of fees and fees * h / p.
full member
Activity: 434
Merit: 246
September 03, 2018, 07:16:31 AM
#6
With 50% of the hashrate you're not Selfish Mining anymore; you're effectively able to take over the network since you now can outrun the other miners indefinitely.
I totally agree and that's why this kind of attack is not really a viable threat, because if you need 50% hashrate you can do whatever you like.

I found this realistic model of selfish mining (as opposed to hypothetical theoretical models):


Source: https://medium.com/@ProfFaustus/the-caner-that-is-the-selfish-mining-fallacy-ed65c20a6ce7

where we can see that the selfish miner revenue (orange line) surpasses the honest miner (blue line) revenue very close to 50 percent hashrate.

If that's so, no point even discussing this kind of attack.

legendary
Activity: 3122
Merit: 2178
Playgram - The Telegram Casino
September 03, 2018, 06:57:01 AM
#5
[...]

How big? Probably at least 50% of hashrate, which is why it was never observed in practice and possibly never will. BTW selfish mining can be easily detected by the increased number of orphaned blocks.

With 50% of the hashrate you're not Selfish Mining anymore; you're effectively able to take over the network since you now can outrun the other miners indefinitely.

Selfish Mining only requires you to outrun your competitors, say, 2-3 blocks at a time. For that you don't need quite as much hashing power. By itself it's not really much of a threat though (apart from causing low-confirmation-count transactions to be unreliable); it's when used as part of a larger plot to either bankrupt your competitors or force them to collusion that Selfish Mining becomes dangerous.
full member
Activity: 434
Merit: 246
September 03, 2018, 05:18:42 AM
#4
The only thing where hashrate enters the story of selfish mining is when you ask yourself:

"What is the necessary hashrate that the selfish miner has to have in order to be successful?"


As already explained, selfish mining is temporary withholding of newly mined blocks.

When you selfish mine, you deviate from the default strategy to announce the new block immediately. All this in hope that you will find your second block faster than the rest of the network can find their first block. If you can do that, you have a huge advantage, because when the rest of the network finally finds their first block, you can announce your 2 blocks, effectively winning the race.

So you can imagine that you need huge hashrate on your side to be able to do that.

How big? Probably at least 50% of hashrate, which is why it was never observed in practice and possibly never will. BTW selfish mining can be easily detected by the increased number of orphaned blocks.
legendary
Activity: 3122
Merit: 2178
Playgram - The Telegram Casino
September 03, 2018, 04:09:33 AM
#3
As already described by ranochigo, selfish mining is about wasting other miner's resources by working on the longest chain in secret, causing competing miner's blocks to be orphaned upon broadcasting said blocks.

What would be the point of colluding to merely mine at a lower hashrate?
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
September 02, 2018, 08:38:38 PM
#2
Selfish mining basically describes a miner withholding the blocks and delay the broadcast of the blocks. Its an attack that harms the other miners as they tend to waste time on block that would never be on the longest chain. The concept itself assumes specific conditions which might not hold in the real world and that attack is not the biggest problem. It seems to be different from what you are describing.

The network cannot know what the hashrate is at any point of time. The network approximates this based on the last 2016 blocks for the difficulty adjustment. It would be incredibly inaccurate if the sample size decreases as blocks could be found within seconds of each other. I doubt miners would collude to hash at a slower rate too; they are all after their individual profits and having a smaller difficulty means that it would be more profitable for someone else to mine. I can't see how they would coordinate in such a way that everyone benefits and those who are not participating won't interfere.
member
Activity: 100
Merit: 16
September 02, 2018, 03:09:33 PM
#1
As I understand, selfish mining is an attack where miners collude to
mine at a lower hashrate than 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.

Edit: There are 3 classes of attacks I'm worried about and my proposal currently is just to modulate the fees on a voluntary user basis
Pages:
Jump to: