Credit where credit is due.
+1 WOsMerit
Guys. Your petty feuds are super-boring.
Our feuds are anything but petty..
A much more elegant explanation than I gave. Thanks.
+1 WOsMerit
Bitcoin tries to maintain its block time to be around 10 minutes with its difficulty algorithm. Why it is 10 minutes? Why not 2 or 20 minutes? The very first reference of having 10 minutes as the bitcoin block time comes from the original research paper, which introduced bitcoin in 2008, by Satoshi Nakamoto. It has only one reference, and 10 minutes is not a concrete suggestion, but takes as an example.
A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore’s Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.
Let’s say block time is 2 minutes — and the average network latency to reach that block to other miners in the bitcoin network is 1 minute (this is just an example, in practice it’s quite less than this). This value of latency is independent of the block time. All the miners in the network mine simultaneously and independently. Let’s say everyone is mining the 3500th block (assume all start mining at time t0) — and the miner tom solves the puzzle first and broadcasts the block to the rest of the miners at time t0 + t, where t is the time taken by tom to mine the 3500th block. Now peter, another average miner finds tom’s block at (t0 + t)+ 1, due to the network latency of 1 minute. Peter and every other miner, who complete mining the same block with (delta_t)i times lagging, where ; (t0 + t)< (t0 +t) + (delta_t)i < (t0 + t) + 1 or can be reduced to 0< (delta_t)i< 1, succeed in solving the puzzle, but waste all their energy — and all those blocks will be orphan blocks with no mining rewards. The total wastage of hashes in the complete network due to the orphan blocks would be:
sum of { (t+ (delta_t)i ) * (hr)i } for every i where (delta_t)i is the additional time from t, the miner ith took before noticing the block mined by tom — and (hr)i is the number of hashes per minute the ith miner generates.
If we increase, the difficulty by p%, then both t and (delta_t)i will increase in, let’s say the same p1%. Since this makes (delta_t)i increases, the number of miners who complete mining where (t0 +t) + (delta_t)i < (t0 + t) + 1 will go down. So, in the above function of wastage, the number of is will go down — so the wastage. Let’s go through few examples with concrete values.
If the value of t is 2 minutes, and then every miner who completes mining a block before 3 minutes time period (with 1 minute network latency) will only contribute to the waste (except the miner who finishes very first and gets the reward). Here you can see, there is a 50% of time gap where a miner can fall into this time period. [ 50% = (3–2)/2 * 100]
If the value of t is 4 minutes, and then every miner who completes mining a block before 5 minutes time period (with 1 minute network latency) will only contribute to the waste. Here you can see, there is a 25% of time gap where a miner can fall into this time period. [ 25% = (5–4)/4 * 100]
If the value of t is 8 minutes, and then every miner who completes mining a block before 9 minutes time period (with 1 minute network latency) will only contribute to the waste. Here you can see, there is a 12.5% of time gap where a miner can fall into this time period. [ 12.5% = (9–8)/8 * 100]
If the value of t is 10 minutes, and then every miner who completes mining a block before 11 minutes time period (with 1 minute network latency) will only contribute to the waste. Here you can see, there is a 10% of time gap where a miner can fall into this time period. [ 10% = (11–10)/10 * 100]
Now you can see, as the block time increases, the percentage of wastage goes down. Considering all the other factors, Satoshi Nakamoto thinks the wastage at the 10minutes block time is acceptable. Along with the wastage, if multiple nodes start generating the same block simultaneously or within a short period of time, this will lead into multiple and more frequent bitcoin forks. Frequent folks, will make the bitcoin network less healthy, and the transaction confirmation time will increase, as everyone has to wait till the bitcoin network becomes eventually consistent.
Note: In the above calculation 1 minute of network latency was taken just as an example to make the math easier. A 2013 paper by Decker and Wattenhofer in Zurich measures bitcoin network latency, and determines that 12.6 seconds is the time it takes for a new block to propagate to 95% of nodes.
Deeper rabbit hole about propagation.
https://www.tik.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf