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.