[Bitcoin-ml] Proposal: DigiShield as difficulty adjustment

Troy Benjegerdes hozer at hozed.org
Tue Aug 29 19:46:39 UTC 2017


Simulations and lots of argument.

https://bitcointalk.org/index.php?topic=441402.410

Data is available from two active blockchains, I would appreciate
patches to https://bitbucket.org/tmagik/catoshi/ for the following:

1) code-style cleanup to match BCH coding standards 
2) reviewed patch to implement BCH according to spec
3) updates to make both Catcoin and Grantcoin work with the latest release

On Mon, Aug 28, 2017 at 09:22:50PM +0200, Amaury Séchet via bitcoin-ml wrote:
> Ok I know everybody has his own proposal and all. I can make 20 a day if I
> want.
> 
> Now there is a proposal out there, that come with rationale for the
> formulas and simulation results. How does it compare ? Where are the
> simulation results ?
>  If there is none, then why discussing this in the ML rather than doing
> this work ? Without data, there is nothing to discuss.
> 
> 
> 2017-08-28 19:25 GMT+02:00 Jan Nightingale via bitcoin-ml <
> bitcoin-ml at lists.linuxfoundation.org>:
> 
> > "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
> >
> >
> >
> >
> >
> > _______________________________________________
> > bitcoin-ml mailing list
> > bitcoin-ml at lists.linuxfoundation.org
> > https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-ml
> >
> >

> _______________________________________________
> bitcoin-ml mailing list
> bitcoin-ml at lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-ml



More information about the bitcoin-ml mailing list