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.