mining profitability – Why doesn’t the same miner always win?

1 Mins read

Every miner is working a on different block. While they share some of the same data, there are several parts of a block which are completely up to the miner to decide, and those differences make the blocks different. This also means that they have different hashes so every miner is searching a different part of the SHA256d search space.

Although each of the blocks every miner is working on will share the same height and parent block, they will have different transactions, and may have different block version numbers, and timestamps.

But the most obvious thing is going to be the transactions, which are hashed into the merkle root. Just one transaction being different, or just one transaction in a different position, is going to cause the merkle root to change, which causes the block header to change, which thus makes the hash different. And every miner is going to have at least their coinbase transaction be different from everyone else’s. This is because the coinbase transaction contains the output that pays the miner, so obviously every miner is going to make their coinbase transaction pay themselves, not someone else. From this simple fact, the transactions in the blocks that miners are working on are going to be different in at least the coinbase.

So because miners are all working on different blocks, every nonce that they try is going to result in a block hash that no other miner has seen yet. Thus a small miner could be lucky enough that the block they are trying has a nonce that makes the hash meet the PoW requirement before a larger miner finds such a nonce for their block.

Source link

Related posts

The Price of the SNAKE (SNK) Game Token Is Growing as We Approach November 30. Wait for a Dump or Buy Now?

2 Mins read
Less than two weeks are left before the start of one of the most anticipated blockchain games of 2021 — Cryptosnake. Now…

Java: bitcoinj; how to download a full block?

1 Mins read
I would like to download a full block using Java and bitcoinj and then parse it to an array to be able…

Expected property "0" of type ECPair, got p

1 Mins read
When I’m trying to create a wallet in react app using the following code: const seed = bip39.mnemonicToSeed(mnemonic); const master = bitcoin.HDNode.fromSeedBuffer(seed,…

Leave a Reply

Your email address will not be published. Required fields are marked *