Understand the fundamentals
Start with input and output
A hash function is a calculation that turns input data into a result of a fixed length, called a hash. Bitcoin mining runs a hash function called SHA-256 twice on a block header. A block header is a short summary of a proposed block. The hash that comes out can be read as a very large number. Change the input even a little and you get a completely different result. There is no useful way to predict that result in advance.
An ASIC (application-specific integrated circuit) is a chip designed for one particular task. Bitcoin mining ASICs are built to repeat these hash calculations very fast. They are not working through transactions one at a time. They are not slowly decoding a hidden answer either.
An actual Bitcoin mining ASIC package

This BM1387B chip package (the chip in its protective case) holds the specialized hashing circuits. Many of these chips work together on a hashboard, the circuit board that carries them. A separate control board runs the miner’s software and coordinates the chips’ work.
See how it works
The target is the condition for success
The target is a number set by Bitcoin’s rules. To count as proof of work, a hash must meet the network target: it must be at or below that number. If a hash is too large, the miner changes an allowed part of the block header and calculates again. One header field, called the nonce, exists to be changed this way. When every nonce value has been tried, the miner makes other allowed changes to create more headers to try. Each calculation is another chance to get a small enough number.
Here is a simple teaching example. Imagine every result is a number from 0 to 999, and you need a result below 10. Most results fail. Getting 700, then 300, then 50 does not mean you are getting closer, or that the next result must succeed. Real Bitcoin uses far larger numbers, but the idea is the same. Each try is a fresh chance, not a step toward a solution.
Visual explanation
Read a trial from input to result
Change permitted header data
For example, vary the nonce: a field in the candidate block header.
Calculate SHA-256 twice
The ASIC produces a new hash, interpreted as a number.
Compare the number
A hash at or below the required target qualifies. Most do not.
Submit or try another candidate
Submit qualifying work; otherwise change the permitted input and calculate again.
Made-up example: with a target of 9, the results 700, 50 and 12 all fail, and 3 qualifies. A failed result that came close, like 12, does not carry over to help the next try.
Connect it to the field
Read hashrate as a rate of work
Hashrate is the number of hash calculations done per second. One terahash per second, written TH/s, is one trillion hashes per second. You will see hashrate on miner and pool dashboards. A machine averaging 100 TH/s does twice as many calculations as one averaging 50 TH/s over the same time. That gives it twice as many chances. It does not guarantee twice as many blocks over a short period.
Difficulty is a number that shows how hard the target is to meet, compared with a fixed reference target. Higher difficulty means a lower target, so fewer results qualify on average. Keep these three ideas separate. Hashrate is how fast calculations are done. The target is the number a hash must be at or below. Difficulty describes how hard that target is to meet.
Terms used in this lesson
- Hash
- The fixed-length result of a calculation on input data; for mining, read it as a number.
- Target
- The number a hash must be at or below to qualify.
- TH/s
- Trillions of hash calculations per second, not transactions per second.
Optional references & further reading
Use current manufacturer instructions for the exact equipment and your site’s approved procedures. Course levels do not grant task authorization.