Author

Topic: Recovering from a drop in hashing power (Read 831 times)

legendary
Activity: 1232
Merit: 1094
April 17, 2013, 09:01:12 AM
#4
So if I have a reasonable proportion of hashing power, I can stop mining blocks and trigger this mechanism. Then the network will happily accept lower difficulty blocks which I can mine very fast, possibly putting my effective hashing power over 51% if other miners still try to produce blocks at the full difficulty.

Alternatively, when the hashing power drops and this is triggered, some nodes will be pumping out blocks with minimum difficulty and others at some other higher difficulty. Do we stick to the largest proof-of-work chain or simply switch to longest chain as the main chain?

Largest proof of work still.  2 half difficulty blocks would have the same weight as one full difficulty.  The rule could even be that reduced POW blocks would have sub-linear reward.  Two half difficulty might give 95% of the minting reward of a full block.

Quote
This effectively prevents users from making transactions until the chaos has subsided because they can't be sure they won't be undone. Thus the result is largely the same as if the rules hadn't been changed - you have to wait much longer for your transactions to get into a block, and because of the reduced frequency of blocks, there is more competition for the space and higher uncertainty of your transaction not making the cut.

What this system allows is for the chain to be stamped at a sub-block rate.  It would actually increase block space, assuming the reduced POW blocks are allowed the full MB.
full member
Activity: 154
Merit: 100
April 17, 2013, 08:00:17 AM
#3
So if I have a reasonable proportion of hashing power, I can stop mining blocks and trigger this mechanism. Then the network will happily accept lower difficulty blocks which I can mine very fast, possibly putting my effective hashing power over 51% if other miners still try to produce blocks at the full difficulty.

Alternatively, when the hashing power drops and this is triggered, some nodes will be pumping out blocks with minimum difficulty and others at some other higher difficulty. Do we stick to the largest proof-of-work chain or simply switch to longest chain as the main chain? All you end up with is a bunch of competing chains and many reorgs. This effectively prevents users from making transactions until the chaos has subsided because they can't be sure they won't be undone. Thus the result is largely the same as if the rules hadn't been changed - you have to wait much longer for your transactions to get into a block, and because of the reduced frequency of blocks, there is more competition for the space and higher uncertainty of your transaction not making the cut.
staff
Activity: 4284
Merit: 8808
April 17, 2013, 07:38:52 AM
#2
Rolling difficulty roughly halves the computational cost compared to quantized difficulty to mine a fork down to diff 1 in order to keep an isolated node tricked with a fake chain.

Generally these schemes are vulnerable to subtle design and implementation errors. Personally, I don't think it's worth worrying about: If you lose more than 3/4 of your hashrate you have much bigger problems— and you can recover with a manual update that just resets the difficulty to be wherever you want it.
legendary
Activity: 1232
Merit: 1094
April 17, 2013, 06:28:38 AM
#1
If hashing power drops suddenly, then the block generation rate also falls off, which pushes out the time until the next difficulty adjustment.

What about adding a reduced block.  This block would get reduced minting fees, but would be allowed to include tx fees.

There would be a rolling difficulty target on a block by block basis. 

Reject/Queue blocks that reduce difficulty, if the previous block was seen less than (reduction * 20) mins previously
Queue blocks that don't increase difficulty by at least 1 (unless already at the standard value), if if the previous block was seen less than 5 mins previously

The difficulty is assumed to count in powers of 2 and the standard difficulty target is the maximum difficulty.  It would update as each new block is added to the chain.  The system should force blocks to occur at roughly 10 mins.

A full difficulty block would always be accepted.

Blocks which are near the threshold could be queued until the time is reached rather than rejected, but blocks which have very low difficulty would just be rejected.

Reduced blocks get a minting fee that is scaled by the difficulty.  If the block is 50% as hard to mine, then you only get 50% of the minting fees.

The rescaling target would not scale, so you still need the same total POW to get to the next difficulty adjustment, but at least the chain can still accept transactions.
Jump to: