# Proof-of-work system

A proof-of-work (POW) system is a system where finding a solution to a given problem is difficult and/or expensive, but verifying the solution to the given problem is simple and/or cheap.

## Example

Find the positive integer whose sha256 hash value is:

```c75cb66ae28d8ebc6eded002c28a8ba0d06d3a78c6b5cbf9b2ade051f0775ac4
```

To find this integer, you must compute the sha256 value for every integer starting with zero until you find the right value. While each individual computation is trivial and cheap, cumulatively the work adds up and becomes time consuming and expensive. To successfully reproduce the given hash value, you must do some work.

Find some data whose sha256 hash value begins with at least 8 leading zeros:

```000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f
```

In the first example, the problem required the original value as proof that work had been done. In this example, it does not matter what the data is, only that it produces a hash value with the given constraints. Finding this data is difficult, but once found, it is trivial to verify by running it through sha256.