Target Hash

DEFINITION of 'Target Hash'

A target hash is a number that a hashed block header must be less than or equal to in order for a new block to be awarded. 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. 

BREAKING DOWN 'Target Hash'

Cryptocurrencies rely on the use of blockchains which contain the transaction histories, and are “hashed” or encoded into a series of numbers and letters. 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. The use of hashing means that anyone dealing with a blockchain has to remember the hash rather than the input itself. Each block will contain the hash of the previous block header.

Decoding 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, 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 leads to miners likening the finding of a hash solution to winning 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 cryptocurrency) secure. It 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.