<p>It's possible, and this does happen (refered to as <code>extraNonce</code>), but this is orders of magnitude more resource intensive to do, as you need at least the left hand side of the merkle tree, rather than just 64 bytes of the header. </p>

<p>In Bitcoin the nonce is only 32 bits, which means every 4.2 Billion hashes you need to either update the timestamp, or modify the transaction tree to create fresh work. For a standard block today, this is more than 22 SHA256 hash invocations, versus less than one for modifying the nonce alone. </p>

CC BY-SA 4.0
2018-11-02T04:31:44.850Z
There is also ASICBOOST, one of which modifies the block version bytes
JBaczuk
CC BY-SA 4.0
2018-11-02T06:00:51.293Z
Which is part of the header.
Claris
CC BY-SA 4.0
2018-11-02T03:04:30.717Z
2018-11-02T03:04:30.717Z
Claris
<p>In the process of solving a hash puzzle, isn't it possible to change the transaction data instead of changing a nonce? </p>

<hash>
Can't we change the block data instead of a nonce?
sflow
# Can't we change the block data instead of a nonce?

(Asked by: username_0 on 2018-11-02)

In the process of solving a hash puzzle, isn't it possible to change the transaction data instead of changing a nonce?

**Tags:** hash


---

## 1 answers

### Answer by username_1 on 2018-11-02. Score: 2

It's possible, and this does happen (refered to as `extraNonce`), but this is orders of magnitude more resource intensive to do, as you need at least the left hand side of the merkle tree, rather than just 64 bytes of the header.

In Bitcoin the nonce is only 32 bits, which means every 4.2 Billion hashes you need to either update the timestamp, or modify the transaction tree to create fresh work. For a standard block today, this is more than 22 SHA256 hash invocations, versus less than one for modifying the nonce alone.

> **Comments:**
> **username_2**: There is also ASICBOOST, one of which modifies the block version bytes  
> **username_1**: Which is part of the header.  

---

