# Proof-of-work

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Proof of work (hereinafter PoW) — is a piece of information that is complex (time-consuming, expensive) to produce to satisfy particular conditions. Verification of that information however should be as easy as possible. The purpose of PoW is to check if calculations were indeed conducted during creation of a new block.

## Purpose

Solving PoW represents itself as a stochastic process with low probability of success during which happens a large amount of errors. Bitcoin uses the so-called "Hashcash" function as evidence of work carried out.

One possible EZ Flash IV implication of this idea is using Hashcash as a method to prevent e-mail spam by requesting PoW content for every letter. Common e-mail users will be able to easily solve their PoW (due to the fact that this doesn't require a lot of resources), but users who try to send out spam will face the problem of having to submit PoW for millions of their letters.

## Principle of operation

Hashcash function is used in Bitcoin to create blocks. A solved PoW attached to the block's content is necessary for network to accept that block. Difficulty of this task is varied to control the frequency of new blocks discovery. System is programmed in such a way that 1 new block is found every 10 minutes on average.

Due to process of finding a new block being quite resource-intensive and random it's impossible to predict with certainty which Bitcoin-worker (miner) exactly will solve the problem and find a new block. For system to accept the block as genuine its hash value has to be lower than currently set target. That way every block demonstrates that some work has been conducted to find it.

Every block contains hash of the previous block thus forming a chain. Changing a block is impossible, it's only feasible to create a new block at the same height that will contain hash value of the previous block within itself. Execution of such a process requires doing the work of finding all the previous blocks. High difficulty of that task is what's protecting the block chain from unsanctioned access and double-spending attacks.