[Bitcoin-ml] Proposal: DigiShield as difficulty adjustment

Jan Nightingale turifex at protonmail.ch
Mon Aug 28 17:25:57 UTC 2017


"A more accurate simulation would toggle when the difficulty gets below a certain level, ie. only mining when economic to do so, but that requires further extensions to simbit."

In other words, the simulation explicitly assumes miners aren't efficient

"The multipool miners make up 35% of the hashpower."

and that the proportion of loyal miners stays the same, while their share is inevitably going to shrink, as they are less efficient by definition

So as I wrote before, this algorithm is assuming miners are inefficient.

> -------- Original Message --------
> Subject: Re: [Bitcoin-ml] Proposal: DigiShield as difficulty adjustment
> Local Time: August 28, 2017 7:05 PM
> UTC Time: August 28, 2017 5:05 PM
> From: bitcoin-ml at lists.linuxfoundation.org
> To: bitcoin-ml at lists.linuxfoundation.org <bitcoin-ml at lists.linuxfoundation.org>
>
> There's a simulation where 35% of the network stops and mines, stops and mines again...
> https://github.com/zcash/zcash/issues/147#issuecomment-221534222
>
> The miners are efficient, they choose the most efficient one of many.
> https://www.multipool.us
>
> Sorry if this mail goes to wrong location, my first time trying to reply to mailing list.
>
>> -------- Original Message --------
>> Subject: Re: [Bitcoin-ml] Proposal: DigiShield as difficulty adjustment
>> Local Time: August 28, 2017 7:44 PM
>> UTC Time: August 28, 2017 4:44 PM
>> From: turifex at protonmail.ch
>> To: Nagai <nagai at protonmail.ch>
>> bitcoin-ml at lists.linuxfoundation.org <bitcoin-ml at lists.linuxfoundation.org>
>>
>> It's easily exploitable, consider efficient profit-maximizing miners that mine whatever is most profitable at the moment, being able to jump in seconds - possibly several times between chains even if no blocks arrive!
>>
>> Every block that has the most profitable difficulty (of all chains) would be mined by every efficient miner. Once the difficulty rises (or price drops) all efficient miners leave, leaving loyal miners to mine with reduced profits or even at a loss.
>>
>> If it's a pool it's going to have markedly lower payouts than the profit-maximizing ones, which means miners are going to leave. Eventually increased competition is likely to force non-optimizing miners/pools out of business - that's how the market works.
>>
>> So eventually and inevitably we end up with a copy of the current situation, only on the shorter time scale. A flurry of blocks followed by nothing until some miner trudges though.
>> It also creates a free rider problem due to the maturity of block rewards.
>>
>> Does that happen on the particular coins that use DigiShield? I don't know, but if it doesn't, it only means that miners are inefficient - probably because of too low market cap, or not enough competition.
>> Assuming that miners aren't going to be efficient is not a good assumption to make.
>>
>>> -------- Original Message --------
>>> Subject: [Bitcoin-ml] Proposal: DigiShield as difficulty adjustment
>>> Local Time: August 28, 2017 6:19 PM
>>> UTC Time: August 28, 2017 4:19 PM
>>> From: bitcoin-ml at lists.linuxfoundation.org
>>> To: bitcoin-ml at lists.linuxfoundation.org <bitcoin-ml at lists.linuxfoundation.org>
>>>
>>> ## Abstract
>>>
>>> One of Bitcoin Cash's short term/medium term goals should be a new difficulty adjustment
>>> system. The current difficulty system can be tricked by miners to earn more money.
>>>
>>> We can use DogeCoin and DigiByte's difficulty system "DigiShield". Multipool is one of the
>>> pools that automatically mine the most profitable coin, and it caused Scrypt/X11/SHA256 currencies to use more
>>> stable difficulty systems. DogeCoin is one of that currencies that use "DigiShield" to minimize the effect of the pool jumpers.
>>> It can also handle big hashrate drops. [Source: https://github.com/zcash/zcash/issues/147#issuecomment-221534222]
>>> It's tested enough on Dogecoin to be used.
>>>
>>> The difficulty is adjusted on every block, it uses last 10 blocks on DogeCoin to calculate new difficulty
>>> - 25 minutes, maybe we should change it to 5 blocks [Source:
>>> https://github.com/zcash/zcash/issues/147#issuecomment-202829008]
>>>
>>> The difficulty can drop at most 16% and increase at most 8%. It may be effective, but it may allow time warp attacks.
>>> [Source: https://github.com/zcash/zcash/issues/147#issuecomment-200331246]
>>> We should fix it to 12%, I believe.
>>>
>>> ## Technical
>>>
>>> -
>>>
>>> The algorithm looks at a fixed number of previous blocks, and calculates the actual time they took (using medians to prevent timewarp attacks):
>>>
>>> nActualTimespan = pindexLast->GetMedianTimePast() - pindexFirst->GetMedianTimePast();
>>>
>>> -
>>>
>>> An asymmetric floor and ceiling is applied:
>>>
>>> nAveragingTargetTimespan = nAveragingInterval * multiAlgoTargetSpacing;
>>>
>>> nMaxAdjustDownV3 = 16; // 16% adjustment down
>>> nMaxAdjustUpV3 = 8; // 8% adjustment up
>>> nMinActualTimespanV3 = nAveragingTargetTimespan * (100 - nMaxAdjustUpV3) / 100;
>>> nMaxActualTimespanV3 = nAveragingTargetTimespan * (100 + nMaxAdjustDownV3) / 100;
>>>
>>> if (nActualTimespan < nMinActualTimespanV3)
>>>     nActualTimespan = nMinActualTimespanV3;
>>> if (nActualTimespan > nMaxActualTimespanV3)
>>>     nActualTimespan = nMaxActualTimespanV3;
>>>
>>> -
>>>
>>> The new difficulty is set to difficulty of the previous block (that had a matching mining algorithm) scaled by nActualTimespan/nAveragingTargetTimespan.
>>>
>>> Quoted from: https://github.com/zcash/zcash/issues/147#issuecomment-202741851
>>>
>>> ## Discussions
>>>
>>> Bitcoin ABC discussion about DigiShield starts here: https://github.com/Bitcoin-ABC/bitcoin-abc/issues/75#issuecomment-324618217
>>>
>>> ZCash discussion - full of important information: https://github.com/zcash/zcash/issues/147
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-ml/attachments/20170828/702e6a86/attachment-0001.html>


More information about the bitcoin-ml mailing list