How does Proof of Stake attempt a consistent block time?

With proof of work blocks, the difficulty is increased as long as the network is putting out proof of work blocks too fast, which works to set the average time between proof of work blocks.

Proof of stake is a more deterministic process, so I don’t see that working the same way. “Difficulty” could be a maximum stake that’s required, but if many people meet it then it doesn’t stop them from all claiming it at once the moment after they receive the previous block, and if no one meets it then the network fails to get any blocks/confirmations for a while.

The difficulty could ramp down with time after the last block, but I’m not sure how closely you can enforce time; would blocks that were timestamped an hour in the future for the lower difficulty be accepted? Maybe if the nodes all had a rule to ignore blocks (more than X minutes) in the future, but that still seems to give you a bit of wiggle-room which bothers me.

The network does not seem to have a consistent block time. I am saying this on the basis of

Check out the times of successive blocks. It seems to jump around.

Any veteran peercoiners care to answer this question? Thanks


The time between blocks isn’t a constant, it can be 30s, 10min, 30min, or whatever because block minting is based on the result of a hashing function (which is kind of random).

But the network adjusts the POS difficulty so that the average time between blocks keeps almost constant (if I remember correctly, the POS difficulty adjustment uses the average time between the last 2016 blocks).

I made a little program giving stats on the block time.

Here are the results for blocks 118080 to 120080 (taking only POS blocks into consideration):

Block time:
Average: 595.905s
Variance: 400312.400
Deviation: 632.702

We can see that the average block time is very close to 10min (600s).