[Dev] Hard fork to change retarget, averages and block time
-
So if before it was 2.5 mins @ 200FTC now its every 1 min @ 80 FTC. Theoretically that still = 160FTC every 2.5 mins but could be more / less depending on block solving luck.
So from what I am understanding, this will reduce the length of peck attacks because difficulty will increase that much quicker, but allow for it to recover quickly when they go to other coins.
Some questions I have:
1. Will there still be a 9% +/- max difficulty?
2. What will deter them from exploiting this and as soon as difficulty drops they jump back in until difficulty resets?
3. Since Target time is set to every 1 min, will the initial difficulty be set higher to compensate for this?
Typically for Multi-pools they continue mining a coin until the next block is found then it switches… So it is not profitable for them to switch prior to finding a block and moving towards the next coin…
-
No every 1 min @ 80 FTC means that still = 200FTC every 2.5 mins
1 min @ 80FTC = 80 FTC
Plus 1 min @ 80FTC = 160 FTC
Plus 0.5 min @ 80FTC = 200FTC -
So if before it was 2.5 mins @ 200FTC now its every 1 min @ 80 FTC. Theoretically that still = 160FTC every 2.5 mins but could be more / less depending on block solving luck.
So from what I am understanding, this will reduce the length of peck attacks because difficulty will increase that much quicker, but allow for it to recover quickly when they go to other coins.
Some questions I have:
1. Will there still be a 9% +/- max difficulty?
2. What will deter them from exploiting this and as soon as difficulty drops they jump back in until difficulty resets?
3. [background=#ffffff]Since Target time is set to every 1 min, will the initial difficulty be set higher to compensate for this? [/background]Typically for Multi-pools they continue mining a coin until the next block is found then it switches… So it is not profitable for them to switch prior to finding a block and moving towards the next coin…
80 FTC * 2.5 minutes = 200 Feathercoins :)
1. Wrapper says that reducing this makes us more manipulable by the multipools. They try to mine without moving our difficulty by as much as it should. Lowering the difficulty give them more room to do this. My concern is what if we our difficulty push up as part of an attack, well, we are probably going to face this with Scrypt ASICs in the wild who may have a similiar effect to the attack, keeping the difficulty at 9% but every 15 blocks does let us recover quicker.
2. Multipools will still mine us, these settings reduce the amount they get away with. Right now there is no profit mining Feathercoin, we look to correct that. Shorter difficulty adjust means we can respond to multipools much quicker.
3. Difficulty will remain the same, the blocks will not get easier with a shorter retarget. Overall the difficulty should come down.
We are a small step forward. :) I look forward to greater change.
DigiShield, This is a good choice for our next step.On Dogecoin, looks like they are going to move from 400% every 4 hours to 10% every minute which is even more wild. From what I can find this is the Digishield code. It has a grand name, that’s marketing for you :)
if(fNewDifficultyProtocol) //DigiShield implementation - thanks to RealSolid & WDC for this code { // amplitude filter - thanks to daft27 for this code nActualTimespan = retargetTimespan + (nActualTimespan - retargetTimespan)/8; printf("DIGISHIELD RETARGET\n"); if (nActualTimespan < (retargetTimespan - (retargetTimespan/4)) ) nActualTimespan = (retargetTimespan - (retargetTimespan/4)); if (nActualTimespan > (retargetTimespan + (retargetTimespan/2)) ) nActualTimespan = (retargetTimespan + (retargetTimespan/2)); }
-
Bush is right, I wouldn’t say there is no profit in Feathercoin, but currently the Multipools do better than the loyal miner, which is not very fair. We have done exhaustive simulations to make sure the changes will balance that situation, without opening us up to potential other attacks (e.g. Terracoin difficulty drive up).
By changing to the new difficulty calculation it will also make destructive, evil, attacks even more expensive, and therefore much less likely to be pulled off.
Also, it does not really matter too much what the difficulty starts at when we change over, the difficulty will be ReTargetted every block, so will quickly align to the correct value.
-
I applaud this move, I personally refer to those who jump in out like this as claim jumpers.
-
Multipools couldn’t be defeated because they are switching around looking for the most profitable coins to mine and convert them to BTC. It is no problem at all to switch between X coins on every 5-10 minutes because they are looking to get max, but proposed changes with difficulty re-targeting will solve at least this attacks for artificial increasing the difficulty of the network.
Changing the PoW algorithm will refresh the coin for the while, but I think it’s matter of time when multipools will launch their own miner software that will be able to load PoW algorithm library from their servers…
-
This is great! sooo… the million FTC question is…
How soon does this get rolled out into production?? ::)
-
We have spent a lot of time checking for the right difficulty solution for Feathercoin and Bushstar has now created and tested a version of the changes.
As you can imagine, it has been difficult not to just give away our solution, particularly as we are trying to run an “open coin” where there is no “dictator” just saying this is what solution we are going for. Bush (and I) has required a high standard of proof it would work.
I know Peter is working to a plan to change to the algorythm , but I’m sure that can be accelerated based on the good response we are seeing from members.
The best idea would be to continue the discussion under Technical Development of Feathercoin 0.8.6.1 . I think we need some testing and code review. The actual change over blocks will be defined in the code, we have discussed this somewhat, it will need 2 or 3 weeks pre-warning for pools to update. We can use the cAlert system to get members to update their wallets.
-
Some questions I have:
1. Will there still be a 9% +/- max difficulty?
2. What will deter them from exploiting this and as soon as difficulty drops they jump back in until difficulty resets?
3. [background=#ffffff]Since Target time is set to every 1 min, will the initial difficulty be set higher to compensate for this? [/background]Typically for Multi-pools they continue mining a coin until the next block is found then it switches… So it is not profitable for them to switch prior to finding a block and moving towards the next coin…
Regarding your questions:
1. There will be a max diffculty change, as this is beneficial to keep the difficulty stable. It will not be 9% and we are working on the best value to use here.
2. Yes this can and will happen,but with the new difficulty calculation the difficulty will drop faster to the correct value, when the pools hop to the next coin and remaining miners won’t suffer as long as they do today.
3. No it will be lower, as then the difficulty can adjust to the correct value faster.
-
-
Just a couple of points.
The difficulty algorithm change should not be confused with changing the hashing algorithm. That would be much harder and involve updated mining software.
In developing our solution, we are not against coin hopping per say, in fact there is an obvious trend to large pools. The new algorithm just makes it more difficult and expensive to exploit by large “agents”. It is not limited to Feathercoin, so one advantage of our own solution is that we are not open to a common flaw, with other solutions being exploited instantly across all alt-coins.
We will probably need a name. That has not been our priority but something like “Advanced Difficulty Averaging” ADA
or ABC - Advanced block calculation. or FAB Feathercoin Advanced Block (Calc)
The other thing is to thank Wellenreiter, who has put up with me and made a fantastic contribution to the development…
-
maximum change on difficulty must be fixed ?
-
I’m in full support if the idea.
or ABC - Advanced block calculation.
I like the sound of dubbing it “ABC”
I think it would appeal to many who have yet to try out ftc. It makes the idea sound both simple and logical.
-
maximum change on difficulty must be fixed ?
Yes and no, this is where it becomes a double edged sword and may cause unintended consequences…
Just like what Newton said “for every action, there is an equal and opposite reaction”. Even though this applies to physics specifically, it can apply to other factors in life.
If you adjust it too quickly / great amount (say 30%), you may be suspect to an attack where a block may be solved too quickly, then difficulty goes way up up, the group leaves and then the next block may take a long period of time to be solved because there is not enough hashrate to solve it quick enough.
Think of this as a difficulty attack.
Just a thought… I dont think you can adjust difficulty mid block??
-
As for the name we need to be careful as ACP has Advanced in the title and the two things are completely unrelated.
Maybe something like
Quondam Difficulty Adjustment
-
FOMP - Stands for, Please Go Away Multipools.
-
Just a thought… I dont think you can adjust difficulty mid block??
The difficulty is set so that the “current hash rate” will produce an answer (Transaction Block) at the correct time. There is no mid block. That is why driveing up the difficulty leaves longer times for loyal miners and less blocks being produced.
You are completely correct though about the difficulties of changing the algorithm, we spent most time making sure we did not open ourselves to other forms of “more evil” attacks, such as those against Terracoin…
-
:)
if(fNewDifficultyProtocol) //DigiShield implementation - thanks to RealSolid & WDC for this code { // amplitude filter - thanks to daft27 for this code nActualTimespan = retargetTimespan + (nActualTimespan - retargetTimespan)/8; printf("DIGISHIELD RETARGET\n"); if (nActualTimespan < (retargetTimespan - (retargetTimespan/4)) ) nActualTimespan = (retargetTimespan - (retargetTimespan/4)); if (nActualTimespan > (retargetTimespan + (retargetTimespan/2)) ) nActualTimespan = (retargetTimespan + (retargetTimespan/2)); }
This looks very simple, and we already have a comparable piece of code in feathercoin, if I read our source right ;)
Different values, but the same principle.
I doubt, that it will be sufficient for them in the long run
-
Re: DigiShield implementation
I can also see another problem we tried to avoid in using the nActualTimespan. The solution without reference to measuring actual time has fewer drawbacks.
-
Just a couple of points.
We will probably need a name. That has not been our priority but something like “Advanced Difficulty Averaging” ADA
or ABC - Advanced block calculation. or FAB Feathercoin Advanced Block (Calc)
FMP