What Is a Target Hash?
In cryptocurrency mining, a target hash is a numeric value that a hashed block header must be less than or equal to in order for a new block to be awarded to a miner. The target hash is used in determining the difficulty of the input and can be adjusted in order to ensure that blocks are processed efficiently.
- The target hash is a 256-bit number that cryptocurrency miners compete to randomly "win" the block reward for their mining work.
- The hash of a cryptocurrency block header must be equal to or lower than the target for the network to accept the proof of the proof-of-work's validity.
- The bitcoin network adjusts the difficulty of mining by raising or lowering the target hash in order to preserve an average 10-minute interval between new blocks.
How a Target Hash Works
Cryptocurrencies rely on the use of blockchains that contain the history of all transactions. These transactions are “hashed” or cryptographically encoded into a series of alphanumeric characters. Hashing involves taking a string of data of any length and running it through an algorithm to produce an output with a fixed length. The output will always be the same length, regardless of how big or small the input is, though the number of permutations of a hash is astronomically large. Each block will contain the hash of the previous block header.
Validating and encoding the blockchain is referred to as mining. Mining involves the use of computers to run hashing algorithms to process the most recent block, with the information needed in mining found in the block's header. The cryptocurrency network sets a target value for this hash—the target hash—and miners try to determine what this value is by testing out all possible values.
The block header contains the block version number, a timestamp, the hash used in the previous block, the hash of the Merkle Root, the nonce, and the target hash. The block is generated by taking the hash of the block contents, adding a random string of numbers (the nonce), and hashing the block again.
If the hash meets the requirement of the target, then the block is added to the blockchain. Cycling through solutions in order to guess the nonce is referred to as proof of work (PoW), and the miner who is able to find the value is awarded the block and paid in cryptocurrency.
The target hash for bitcoin is a 256-bit number and can be found in the block’s header. Mining a block requires the miner to produce a value (a nonce) that, after being hashed, is less than or equal to one used in the most recent block accepted by the bitcoin network. This number is between 0- (the smallest option) and 256-bits (the largest option) but is unlikely to ever be the maximum number.
Because the target hash could be a huge number, the miner may have to test a large number of values before being successful. An unsuccessful miner has to wait for the next block, which is why miners that find a hash solution are likened to winners of a race or the lottery.
The target hash is adjusted periodically. The hash functions used to generate the new target have specific properties designed to make the blockchain (and its cryptocurrency) secure. This process is deterministic, meaning that it will produce the same result each time the same input is used. It is fast enough so as to not take too long to return a hash for the input. It also makes determining the input very difficult, especially for large numbers, and makes small changes to the input result in a very different hash output.