What matters is whether the system is convergent. The best thing that
could happen (for POW digital currencies in general) is that it
stabilises, around the current value long term. Then we know an upper
bound on the energy cost and speculation will evaporate leaving BTC as
a utility. The worst thing that can happen is it stays oscillatory with
increasing amplitude as various interests try to push it one way then
the other. After that most systems go chronically and irreversibly
chaotic, and that will be the end of that experiment.
I don't think you need any nefarious interests to push it into instability, just the basic economic assumption of greed suggests that people would only want to mine the "easy weeks" and not mine the "hard weeks".
Note that bitcoin mining is independent of anyone else mining. At difficulty X you are expected the same number of blocks regardless of how many others are mining, so others' dropping out doesn't increase your bitcoin income per hour.
To me that's the fundamental missing part that could deliver stability. As others drop out, you aren't incentivised by the economy to mine. You might think you're getting a bigger share of the pie, but you're still getting the same number of blocks per hour no matter how many or few others are mining.
There are two main factors for why this scenario can be avoided:
1. The difficulty can't go beyond what the Potential Total Hashrate can bring to the table. In other words, even if the difficulty were to suddenly drop to 2010 levels and the block-week solved essentially instantly, the new difficulty after that block-week has been mined would still be what that hash-rate is capable of.
2. There are limits to how much the difficulty can drop, so it can't actually fully drop that far in one go. To get to full "easy week / hard week" pattern would be a slow oscilation that could be corrected with new algorithms including a bit of damping / smoothing via a soft fork.
But it's still an interesting scenario for a real "death" of bitcoin and how it could play out.
Note that bitcoin mining is independent of anyone else mining.
I don't think this is correct, because not everyone has the same hashing power.
Yes the amount of blocks you would statistically generate per hour is dependent on your hash rate and the current difficulty.
However, other miners with higher hash power will mine blocks quicker than you, and therefore take the rewards for those blocks ahead of you.
The amount of rewards you get is dependent on your share of the total hashing power, which includes other miners, and not just your own hashing power relative to the difficulty level.
An artificially low difficulty level simply means that blocks are mined more quickly, so yes in a way miners are making more money per unit of time, but the rewards are distributed according to your percentage of the total hashing power.
This is even more explicit in mining pools, where you might never mine a block, but still get rewards simply by virtue of providing hashing power to the pool itself.
Mining a block is just brute-forcing until you find a SHA hash that is small enough. Your chances of successfully finding a small-enough hash are completely independent of everyone else. It's not some sort of race to find a block, and as soon as someone finds a block everyone has to start again. (Other than that they can't reuse the same transactions, and need to update the parent block pointer).
If I give you £100 every time you find a random number that satisfies some property, the amount of £100s you get is independent of how many other people are making money with the same scheme.
The only reason competition matters at all is because of the difficulty adjustment.
Mining a block is just brute-forcing until you find a SHA hash that is small enough.
Or until someone else mines a block, in which case you have to start again from scratch.
It's not some sort of race to find a block, and as soon as someone finds a block everyone has to start again.
If miner A and miner B are both mining, and miner A mines a block, then miner B has to start from scratch with a new block because in all likelihood miner B was including transactions in his un-mined block that are now already mined by miner A.
So yes, as soon as someone finds a block, everyone has to start again and that's why mining is in fact a race to find a block.
If I give you £100 every time you find a random number that satisfies some property, the amount of £100s you get is independent of how many other people are making money with the same scheme.
This is not how Bitcoin mining works. The "random number that satisfies some property" is dependent on the transactions included in your block, and if other miners include those transactions that are mined in blocks before yours, then you have to start from scratch.
You seem to think that mining a block is something that takes a long time, and that work is wasted if someone else managed to mine a block first. Mining a block takes an incredibly short amount of time, but pays off with incredibly low probability. You have to do lots of attempts to find a block. You don't spend 10 minutes trying to compute one hash, and then throw up your hands in disappointment if it wasn't low enough.
> Or until someone else mines a block, in which case you have to start again from scratch.
You always start again from scratch after every single hash. Billions of times per second. You're no more likely to find a block on your millionth hash than on your first. The work doesn't add up. Each hash you try is either low enough or it's not, and either way you try again.
> The "random number that satisfies some property" is dependent on the transactions included in your block, and if other miners include those transactions that are mined in blocks before yours, then you have to start from scratch.
That's correct, but you only wasted a small amount of time during the overlap between the other miner finding a new block and you hearing about it.
The random number that you're trying to find by means of (yes, repeatedly) hashing, is dependent on the transactions in your block (which are hashed together in a Merkle tree).
Not only that, but the number you're trying to hash is also dependent on the previous block (hence it being called a blockchain).
So as soon as another miner mines a block, the block you're mining immediately becomes invalid. For two reasons, the block height of your block is now too low (it has the wrong parent) and it (most likely) includes already mined transactions.
So even if you happened to still mine your current block, it will be rejected by the nodes in the network for having the wrong block height and for including already mined transactions.
So, you have to assemble a new block, which uses the latest mined block as parent and you have to include new transactions from the mempool.
There's a cost to doing this, it takes time away from the actual hashing, which is what I meant with "starting from scratch".
For the reasons outlined above, you're not mining blocks independently from everyone else.
This is precisely what it is, every pool operator I've worked with put considerable engineering expense into ensuring that they could broadcast their solved blocks as quickly as possible to the network.
This is the definition of a race. It's somewhat common for a pool to mine a block a second or two before another pool.
Mining is zero sum. If you have more guesses per second than your neighbor, you will win. Only in a pedantic sense could this not be considered a race. If my neighbor then doubles his hashrate, I will lose comparably to his increase. We just each make less overall money as the difficulty increases since we're engaged in an arms race with each other.
If the rest of the network doubles its hashrate relative to yours, then (up until the next difficulty adjustment) you'll still find blocks at the same rate as you were doing before. The rest of the network will find blocks faster, but you will not find blocks any slower, apart from a very small percentage of the time where you find blocks at roughly the same time as someone else, which will now happen more frequently.
Yes, broadcasting solved blocks quickly matters, but the principal deciding factor in how quickly you find blocks, for any given difficulty target, is how quickly you compute hashes, independent of how quickly everyone else is computing hashes.
Yes, you will mine blocks at the same rate you were before the network hash doubling, until the difficulty reset.
However, this is still zero sum and the network just beat you. You will mine less blocks now that the network increased even prior to the difficulty reset.
The reason why is the difficulty algorithm is block-based not time-based. After N number of blocks are mined, difficulty will then reset itself. You only get that number of blocks to mine at a given difficulty, not a set window of time. Once those blocks are solved, it's on to the next difficulty window regardless of if it took a day or 10. Someone doubling the hashrate the moment difficulty resets will cut your expected return in half for that round as "people other than you" are now solving blocks at double the previous rate.
you'll still find blocks at the same rate as you were doing before
Yes, but the difficulty adjustment will now also happen more quickly because the confirmation times will decrease due to the higher hashing power, and then after that you'll be finding blocks at a much slower rate.
The idea of an "easy cycle" and "hard cycle" is interesting, but I'm not convinced it's an issue, because if many miners decide to only mine during the easy cycle and not at all during the hard cycle, the difficulty adjustment will mean that the hard cycle will take much longer (due to increased difficulty AND decreasing hashing power) than the easy cycle, in a way that evens out and removes the arbitrage of only mining during the "easy" cycle.
apart from a very small percentage of the time where you find blocks at roughly the same time as someone else
Not only that, every time a block is mined you have to spend time to construct a new block, which takes time.
> The only reason competition matters at all is because of the difficulty adjustment.
Which seems relevant here (I think you’re both right?) because with more competition the next adjustment will be very quick, and will adjust your expected returns to your hash rate fraction of the competition?
> At difficulty X you are expected the same number of blocks regardless of how many others are mining, so others' dropping out doesn't increase your bitcoin income per hour.
So, yeah, you're right. Others dropping out increases your total income because you get to mine at low difficulty for longer. But the claim was about income per hour.
Thanks for digging up the original quote and clarifying what I was replying to. Agreed, income per hour indeed doesn’t depend on competition until the next adjustment.
The grandparent was talking about blocks mined per hour, and I was thinking of blocks mined per difficulty period (I guess because I didn't properly read the grandparent's post).
Given that the difficulty period is variable, and becomes shorter when more hashing power comes online, the amount of blocks you'll mine for the current difficulty period does decrease, even if the amount of blocks you mine per hour stays the same.
What matters is whether the system is convergent. The best thing that could happen (for POW digital currencies in general) is that it stabilises, around the current value long term. Then we know an upper bound on the energy cost and speculation will evaporate leaving BTC as a utility. The worst thing that can happen is it stays oscillatory with increasing amplitude as various interests try to push it one way then the other. After that most systems go chronically and irreversibly chaotic, and that will be the end of that experiment.