1/ I do not understand why bitcoin mining is random when hashing is deterministic. reference : https://en.bitcoin.it/wiki/Nonce Can the mining pool with the most mining power always win? What value should nonce be when mining bitcoin ?

Read the above links and learnt that it is easier to increment a nonce than starts with a random one!

2/ And in the following scenario the node which has the most computational power should be able to solve the proof of work fastest. Of course, I am assuming that mining is deterministic.

Suppose every node in the network starts from zero and increment it. The hash of the nonce and the transaction would be executed by each node and the one computing the hash fastest would arrive at the correct nonce the fastest because hashing is deterministic? What's wrong in my argument?



1 Answer 1


You are assuming that each mining pool is hashing the same block. This is not the case. Each pool has its own block, with its own set of transactions, put into its own order. Mining isn't about finding the only block that is able to be the next block, just a block that follows the protocol rules.

Furthermore, mining pools are constantly updating the block headers that their nodes are hashing, to include more transactions that they just heard about. Because all pools, and even all nodes, are trying to find a nonce for different block headers, it's not always the most powerful pool that wins. It becomes random.

  • "Each pool has its own block, with its own set of transactions, put into its own order" From: coindesk.com/information/how-bitcoin-mining-works A constantly updated copy of the block is given to everyone who participates. Also, from bitcoin.org/bitcoin.pdf : 1) New transactions are broadcast to all nodes. 2) Each node collects new transactions into a block. From the above, if the nodes are receiving "all" the transactions in order they would work on the same general ledger. Aug 12, 2016 at 9:21
  • Mining nodes get their headers from the pool they belong to, and don't participate as full nodes on the network. Only the pool operator does that. But yes, the pools generally have about the same transaction sets in their blocks, with slight differences and a completely different order. This is part of the consensus mechanism.
    – Jestin
    Aug 12, 2016 at 12:06

Not the answer you're looking for? Browse other questions tagged or ask your own question.