I know the answer must be out there in the code already, but I couldn't figure out where exactly. Could someone do the maths for me: With block 200k the difficulty bomb started increasing the difficulty, but when will the difficulty bomb make mining impossible?
2 Answers
According to Vitalik Buterin on r/ethereum, the difficulty bomb was slowed down with homestead a bit.
As it turns out, with the change in the difficulty adjustment algorithm brought about in the last hardfork, the ice age will come very slowly indeed. Originally, the maximum amount by which the difficulty could adjust was 1/2048x, and so given a natural mining difficulty of ~2**45 (where it is now), after around block 3500000, it would go up faster than it goes down, and the protocol would quickly freeze. Now, difficulty can adjust down faster than that if the block time is slow enough, and so even after this point there is an equilibrium. At block 3.5m (1 year from now), we would have an equilibrium block time of 25s for 100k blocks (~1 month); then we would see 35s for 100k more blocks (now ~1.4 months); then ~55s for ~2.2 months, then ~95s for ~3.8 months, and so forth until we get ~655s for ~26 months (ie. slightly worse than bitcoin), and only after that does the protocol break because of the cap of ~99/2048 downward adjustment, and that final doom does not take place until 2021 (though it certainly gets very annoying by the second half of 2017).
TL;DR Blocktime will be annoying in second half of 2017 and the final doom happens somewhere in 2021.
The changes to the code were made in August in this commit, with the meaty parts of the maths being found in core/chain_util.go
.
The constant increase in difficulty is due to an additional exponentiation step in the algorithm.
A quick back-of-the-envelope calculation can be found here, and would suggest that after 22 months (from August 2015) the average blocktime will be approximately 160 hours. (~a week)
-
2So around July 2017 for people like me who are dumb with calculating dates :) but we can consider that block time will be to high long before it reaches 160h! Doubling will already be very long and 15mn would be an eternity as it's for Btc May 10, 2016 at 8:18