# Bitcoin Proof of Work

In adding to the transaction history of the Bitcoin Blockchain, also known as mining, a **Proof of Work** is the determiner for the individual mining node that is selected to append a block to the Blockchain. The specific proof of work Bitcoin was designed to use is called *hashcash*, which is a proof of work concept that was originally envisioned to limit email spam by imposing a rate limiting cost to send an email.

The Bitcoin hashcash proof is basically a function that takes input data and returns an output signature.

The input data supplied to the hashcash function includes:

- A piece of data to hash against called a nonce
- A pointer back to the previous block in the chain
- The current version
- A timestamp
- A counter
- A signature derived from all of the transactions in the block
- The consensus defined difficulty rating.

The function uses a mathematical hashing formula called SHA256 to create a one-way signature of the input data. The formula is run twice: first on the input data, and then on the signature itself.