The question is if you’re hash meets our criteria. What you hash is actually a couple of things we’ll come back to this that lined up together make a string that is a string of a specific length. You then hash that entire string.

Think of bitcoin resulting hash as a number. What we want is that resulting number to be less than a target number. Mining it’s like rolling a billion sided die, and coming up with a number under the target number. Bitcoin target number is considered “difficulty”. As more people are rolling the die, we lower what that target number is to reduce the likelihood any one die-roll will hit. So importantly, some of those things that we line up in the string that we hash are things that we’re allowed to adjust.

Hashing isn’t exactly like rolling the die because if we has the same thing over and over we get the same result over and over. However even a minor adjustment in what we hash can have a major impact on what the resulting hash is. The primary item that we can manipulate is called the “nonce”.

The purpose of mining

Basically we pick a nonce to use in the string, hash the whole string, and see what we get. If the hash isn’t a hit, we modify the nonce and try again. The nonce itself isn’t very large so there’s a limited number of variations of the nonce that you can try. The next item we can change is a timestamp. We’re allowed to wiggle the timestamp too.

Navigation menu

Every wiggle mining the timestamp allows us bitcoin the entire set of possible nonce values all over again. We repeat this process of exhausting the nonce possibilities, then wiggling the timestamp over and over until the resulting hash is lower than mining difficulty target number. When that happens, we then proclaim bitcoin the algorithms that this timestamp plus this nonce works to solve the block. Others validate it to be true and it’s added to the block chain.

A block is considered “Validated” once it’s a certain number of algorithms “deep” in the block chain, meaning it’s a historical block compared to the current block.