<blockquote>
  <p>Since I expect mining pool members to all agree what transactions to include and which timestamp to use, it can be possible that for the given block no solution exists.</p>
</blockquote>

<p>That is usually not the case. With the stratum protocol which is most widely used, miners have no say as to what goes into a block except for the nonce and extranonce (extranonce is part of the coinbase transaction). So if a given block and all of its nonces result in no solution, the mining pool just constructs a new block with either new transactions, a different transaction ordering, or just a different timestamp and tells the miners to work on that.</p>

<p>As for the timestamp, it does not need to match real time at all. The timestamp just needs to be greater than the previous block's Median Time Past (median timestamp of the last 11 blocks), so the timestamp can be off of real time.</p>

<blockquote>
  <p>What if all 'big' miners choose blocks which do not have any solution? Could the network stall?</p>
</blockquote>

<p>A miner is not locked into only working on the block that they chose. They can construct another block and work on that. The network does not know nor does it care if a miner had to construct a different block to mine.</p>

CC BY-SA 3.0
2017-10-22T21:05:31.523Z
The vast majority of blocks have no solution whatsoever. The normal condition of the network is to stall for, on average, ten minutes until someone happens to be lucky enough to make a block that has a solution and then finds that solution.
David Schwartz
CC BY-SA 4.0
2020-06-25T04:30:03.670Z
Hi @DavidSchwartz I didn't understand the concept that **the vast majority of blocks have no solution whatsoever**. Aren't there multiple solutions to one block? The criteria of solving a block is to get a nonce which happens to create a hash value lower than the given target. Shouldn't there be multiple solutions among 2^32-1 choices we have.
shubham kumar
CC BY-SA 4.0
2020-06-25T05:05:25.677Z
@shubhamkumar No. Right this second, the difficulty is so high that only one in 15 trillion blocks has any nonce that produces a low enough hash. You just have to keep trying all 2^32 nonces on billions of blocks until someone finds a block (and nonce) with a low enough hash.
David Schwartz
CC BY-SA 4.0
2020-06-25T05:10:20.577Z
@shubhamkumar 2^32 is incredibly small compared to the network hashrate. The network currently does ~2^66 hashes per second. Those 2^32 nonces for a single block are completed in a tiny fraction of a second.
Ava Chow
CC BY-SA 4.0
2020-06-25T06:22:13.073Z
@AndrewChow Fair point, Agreed! But if a miner is trying to find the solution, why would any time he/she construct another block? He/she has no idea if he/she is close to the solution due to the arbitrariness of SHA-256. How will anyone conclude if there exists a solution or not inside 10 minutes? If the miner tries solving a new block won't it have less probability to get the solution?
shubham kumar
CC BY-SA 4.0
2020-06-25T15:26:19.347Z
@shubhamkumar The miner solves the 2^32-1 nonces and then moves on to a new block. Each block header is an independent trial and has the same probability of having a valid block hash as any other block header, regardless of whether the block contents are the same. The probability is always the same.
Ava Chow
CC BY-SA 3.0
2017-10-22T18:11:28.807Z
2017-10-22T18:11:28.807Z
Ava Chow
<p>Please let me know if I understand something wrong.</p>

<p>Let's say I want to create a new block and verify previous transactions. To do this, I need to:</p>

<ul>
<li>Choose which transactions I want to include in my block</li>
<li>Calculate the Merkle Root of these transactions</li>
<li>I choose (?) a timestamp where I expect to 'create' this block (Is this a general concensus?)</li>
<li>I start to calculate hashes by concatenating above values and starting at nonce 0, increasing up to 2^32-1</li>
<li>When I find a hash with enough zeros, I announce my proof to the network and collect my fee</li>
</ul>

<p>There's one problem here: there is no way to guarantee a solution exists. Since I expect mining pool members to all agree what transactions to include and which timestamp to use, it can be possible that for the given block no solution exists.</p>

<p>Of course, other miners also experience this problem. What if all 'big' miners choose blocks which do not have any solution? Could the network stall?</p>

<mining-pools><hash><transaction-verification><nonce>
What if is there is no solution to a block?
JBrouwer
# What if is there is no solution to a block?

(Asked by: username_0 on 2017-10-22)

Please let me know if I understand something wrong.

Let's say I want to create a new block and verify previous transactions. To do this, I need to:

* Choose which transactions I want to include in my block
* Calculate the Merkle Root of these transactions
* I choose (?) a timestamp where I expect to 'create' this block (Is this a general concensus?)
* I start to calculate hashes by concatenating above values and starting at nonce 0, increasing up to 2^32-1
* When I find a hash with enough zeros, I announce my proof to the network and collect my fee

There's one problem here: there is no way to guarantee a solution exists. Since I expect mining pool members to all agree what transactions to include and which timestamp to use, it can be possible that for the given block no solution exists.

Of course, other miners also experience this problem. What if all 'big' miners choose blocks which do not have any solution? Could the network stall?

**Tags:** mining-pools, hash, transaction-verification, nonce


---

## 1 answers

### Answer by username_1 on 2017-10-22. Score: 3 | Accepted answer

> Since I expect mining pool members to all agree what transactions to include and which timestamp to use, it can be possible that for the given block no solution exists.

That is usually not the case. With the stratum protocol which is most widely used, miners have no say as to what goes into a block except for the nonce and extranonce (extranonce is part of the coinbase transaction). So if a given block and all of its nonces result in no solution, the mining pool just constructs a new block with either new transactions, a different transaction ordering, or just a different timestamp and tells the miners to work on that.

As for the timestamp, it does not need to match real time at all. The timestamp just needs to be greater than the previous block's Median Time Past (median timestamp of the last 11 blocks), so the timestamp can be off of real time.

> What if all 'big' miners choose blocks which do not have any solution? Could the network stall?

A miner is not locked into only working on the block that they chose. They can construct another block and work on that. The network does not know nor does it care if a miner had to construct a different block to mine.

> **Comments:**
> **username_2**: The vast majority of blocks have no solution whatsoever. The normal condition of the network is to stall for, on average, ten minutes until someone happens to be lucky enough to make a block that has a solution and then finds that solution.  
> **username_3**: Hi @username_2 I didn't understand the concept that **the vast majority of blocks have no solution whatsoever**. Aren't there multiple solutions to one block? The criteria of solving a block is to get a nonce which happens to create a hash value lower than the given target. Shouldn't there be multiple solutions among 2^32-1 choices we have.  
> **username_2**: @username_3 No. Right this second, the difficulty is so high that only one in 15 trillion blocks has any nonce that produces a low enough hash. You just have to keep trying all 2^32 nonces on billions of blocks until someone finds a block (and nonce) with a low enough hash.  
> **username_1**: @username_3 2^32 is incredibly small compared to the network hashrate. The network currently does ~2^66 hashes per second. Those 2^32 nonces for a single block are completed in a tiny fraction of a second.  
> **username_3**: @AndrewChow Fair point, Agreed! But if a miner is trying to find the solution, why would any time he/she construct another block? He/she has no idea if he/she is close to the solution due to the arbitrariness of SHA-256. How will anyone conclude if there exists a solution or not inside 10 minutes? If the miner tries solving a new block won't it have less probability to get the solution?  
> **username_1**: @username_3 The miner solves the 2^32-1 nonces and then moves on to a new block. Each block header is an independent trial and has the same probability of having a valid block hash as any other block header, regardless of whether the block contents are the same. The probability is always the same.  

---

