In the contract wizard (https://wizard.openzeppelin.com/#governor) for governance, the block time default is 13.2 seconds. I have some questions around this, that I would love an answer for:
- Where does this number come from?
- How is this number expected to change over time (ie. after ETH2 phases complete)?
- How is this number expected to change on L2 (ie. Optimistic or ZK rollup chains)?
- In 10+ years, would it still stay consistent with these predictions?
Just trying to get good numbers for different environments, thanks!
The time between blocks is not fixed. It is random, and largely depends on the total mining power, the mining difficulty. EIP2 explains how the difficulty is updated to meet this target. Not that blocks sometimes are separated by as little as 2~3 seconds ... and sometimes over a minute.
The merge, which aims at replacing POW with the beacon chain will change that. After the merge (planned for Q2 2022) blocks should be almost exactly 12 seconds apart. It will me way less "random" then it is today.
On some L2, the time between blocks is unbounded. Could be hours, even days, depending on the usage
10 years ago ETH did not exist ... like not at all ... so you'd have to be a fool to say you know what the blockchain space will be like in 10 years.
If you want to track time over long periods, you should use
block.timestamp and not
@kiko Please don't post duplicate questions. I answered your other post without realizing it had already been answered here.
13.2 was the average block time observed in recent history, and the protocol dynamically adjusts to maintain more or less this block time. You can see a chart of block times on Etherscan. After the Merge block time on Ethereum will reduce to 12 seconds, it will remain stable around that. Currently you see in the chart periods when the block time increases, this is the "difficulty blomb" meant to incentivize migration to PoS Ethereum that just keeps getting delayed, but it will not occur anymore after the Merge.
On L2 block times are different. I don't know right now what block time you should choose, I'm making a note that we should have a guide about how to choose block times. If there is one chain you're interested in, you should research the block times for that particular chain.
In 10+ years things can change, but for chains that target a particular block time it's important to distinguish two different kinds of change: 1) a bug in the protocol could affect block times unexpectedly (possibly in an attack), 2) protocol governance may decide to change how blocks are produced. In the first case, it could be an entirely unexpected thing or it could be predictable for example if an unpopular blockchain becomes even more unpopular in 10 years it is likely to become unstable so it may not be safe to have a Governor instance in it (not only for block times, other kinds of attack may become possible). In the second case, it's something that would happen more slowly and with prior notice, so the Governor instance could unwind or reconfigure itself to adapt.