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. Block headers identify individual blocks in a blockchain.
Cryptocurrency mining refers to the process of gathering cryptocurrency as a reward for work that you complete. The nature of this work is to verify the legitimacy of a given cryptocurrency's transactions. In this way, cryptocurrency miners are essentially auditors. When you mine, you can earn cryptocurrency without having to put down money for it.
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. For example, target hashes are used in cryptocurrencies that use a proof-of-work (PoW) system to set the current mining difficulty (including Bitcoin). If a cryptocurrency uses a different system for mining, it may not require a target hash.
- In cryptocurrency mining, a target hash is a numeric value that a hashed block header (which is used to identify individual blocks in a blockchain) must be less than or equal to in order for a new block to be awarded to a miner.
- Target hashes are used in cryptocurrencies that use a proof-of-work (PoW) system to set the current mining difficulty (including Bitcoin); if a cryptocurrency uses a different system for mining, it may not require a target hash.
- 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 that cryptocurrency's 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 (although 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; the information that a user needs to mine is found in the block's header. The cryptocurrency network sets a target value for this hash—called 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.
Target Hash for Bitcoin
Bitcoin uses the SHA-256 hash algorithm. This algorithm generates verifiably random numbers in a way that requires a predictable amount of computer processing power.
Mining a block requires the miner to produce a value (a nonce) that, after being hashed (cryptographically encoded), is less than or equal to the 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.