6 ms·
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
by jcbrand 4y ago
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.
- jstanley 4y agoThis isn't right. Your parent comment was right. 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.
- jcbrand 4y agoMining 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.
- jstanley 4y agoNo, I still think you don't get it. 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.
- jcbrand 4y agoThe 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.
- jstanley 4y ago
- geertj 4y ago> 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?
- jstanley 4y agoThe contentious claim was: > 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.
- geertj 4y agoThanks 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.
- jcbrand 4y agoThe 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.
- eterm 4y ago> Others dropping out increases your total income because you get to mine at low difficulty for longer But not if they only drop out when the difficulty swings high and rejoin when it swings low.
- phil21 4y ago> It's not some sort of race to find a block 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.
- jstanley 4y agoIf 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.
- jcbrand 4y agoyou'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.