Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: monsterer on September 03, 2015, 04:33:57 PM



Title: Towards more consistent block times
Post by: monsterer on September 03, 2015, 04:33:57 PM
What if blocks contained a set of N hashes which must be found where the difficulty of finding each one is the full difficulty / N?

That way, the law of averages should come into play leading to more consistent block times overall.


Title: Re: Towards more consistent block times
Post by: gmaxwell on September 04, 2015, 12:30:18 AM
Yes, low variance hashcash is a well known thing.  But this is undesirable for Bitcoin (also a pereneial proposal).

Blocktime variance is a desirable and necessary element of the system!

Imagine a system where miners always produced blocks in X minutes, zero variance.  Then one day a conneivity burp happens and two blocks are formed. Then each is extended precisely in X minutes.  The network will be forever split and never rejoin!

So Bitcoin uses the variance to achieve convergence with increasing probablity over time.  If the variance is too low relative to the network topology the system will expirence longer and longer reorgs and eventually fail to reach consensus at all.

If some variance N fold reduced would be acceptable for converenge, one could just use blocks closer togeather to get the same variance... but then also have lower latency at the same time.


Seperately, the obvious way to construct what you're describing result in a system which isn't progress free, which would mean that larger miners would have an unfair advantage, which is also undesirable as it would be an additional centeralization pressure.


Title: Re: Towards more consistent block times
Post by: monsterer on September 04, 2015, 09:29:11 AM
Yes, low variance hashcash is a well known thing.  But this is undesirable for Bitcoin (also a pereneial proposal).

Blocktime variance is a desirable and necessary element of the system!

Imagine a system where miners always produced blocks in X minutes, zero variance.  Then one day a conneivity burp happens and two blocks are formed. Then each is extended precisely in X minutes.  The network will be forever split and never rejoin!

So Bitcoin uses the variance to achieve convergence with increasing probablity over time.  If the variance is too low relative to the network topology the system will expirence longer and longer reorgs and eventually fail to reach consensus at all.

If some variance N fold reduced would be acceptable for converenge, one could just use blocks closer togeather to get the same variance... but then also have lower latency at the same time.


Seperately, the obvious way to construct what you're describing result in a system which isn't progress free, which would mean that larger miners would have an unfair advantage, which is also undesirable as it would be an additional centeralization pressure.

Interesting, I had never considered that. So, what is the obvious way to achieve the same result? Tying difficulty and block reward together and having miners chose it?


Title: Re: Towards more consistent block times
Post by: bimasena25 on September 04, 2015, 09:37:32 AM
now, difficulty to get bitcoin increase, but dont know why rates not increase significantly again


Title: Re: Towards more consistent block times
Post by: TuchiBaba on September 05, 2015, 03:22:45 PM
What if blocks contained a set of N hashes which must be found where the difficulty of finding each one is the full difficulty / N?

That way, the law of averages should come into play leading to more consistent block times overall.
It should but it's not.


Title: Re: Towards more consistent block times
Post by: monsterer on September 06, 2015, 06:04:44 PM
Yes, low variance hashcash is a well known thing.  But this is undesirable for Bitcoin (also a pereneial proposal).

Blocktime variance is a desirable and necessary element of the system!

Imagine a system where miners always produced blocks in X minutes, zero variance.  Then one day a conneivity burp happens and two blocks are formed. Then each is extended precisely in X minutes.  The network will be forever split and never rejoin!

Actually, I just ran a simulation to see how the network would behave with more deterministic block times, and ended up with a surprising result: there is no actual difference in the variance of block times overall, despite each individual miner generating blocks at regular intervals.

The reason is hashing power. Each miner has a different hashing power, which means that although in isolation they submit regularly spaced blocks, all taken together the interval between blocks has pretty much exactly the same variance as when each miner produced blocks in a non deterministic fashion.