[3] The idea "...to require a user to compute a moderately hard, but not intractable function..." was proposed by Cynthia Dwork and Moni Naor in their 1992 paper "Pricing via Processing or Combatting Junk Mail".
[4] Hashcash is a cryptographic hash-based proof-of-work algorithm that requires a selectable amount of work to compute, but the proof can be verified efficiently.
In other words, as the sender has taken a certain amount of time to generate the stamp and send the email, it is unlikely that they are a spammer.
A normal user on a desktop PC would not be significantly inconvenienced by the processing time required to generate the Hashcash string.
The Hashcash system has the advantage over micropayment proposals applying to legitimate e-mail that no real money is involved.
This can mean sacrificing accessibility from low-end embedded systems or else running the risk of hostile hosts not being challenged enough to provide an effective filter from spam.
However, developing countries can be expected to use older hardware, which means that they will find it increasingly difficult to participate in the e-mail system.
Although most cryptocurrencies use the SHA-256 hash function, the same ASIC technology could be used to create hashcash solvers that are three orders of magnitude faster than a consumer CPU, reducing the computational hurdle for spammers.
In contrast to hashcash in mail applications that relies on recipients to set manually an amount of work intended to deter malicious senders, the Bitcoin cryptocurrency network employs a different hash-based proof-of-work challenge to enable competitive Bitcoin mining.
Thus, as in hashcash, miners must discover by brute force the "nonce" that, when included in the block, results in an acceptable hash.
Unlike hashcash, Bitcoin's difficulty target does not specify a minimum number of leading zeros in the hash.
This is necessary because the Bitcoin network must periodically adjust its difficulty level to maintain an average time of 10 minutes between successive blocks.
If only leading zeros were considered, then the difficulty could only be doubled or halved, causing the adjustment to greatly overshoot or undershoot in response to small changes in the average block time.
Hashcash was used as a potential solution for false positives with automated spam filtering systems, as legitimate users will rarely be inconvenienced by the extra time it takes to mine a stamp.
[9] The Penny Post software project[10] on SourceForge implements Hashcash in the Mozilla Thunderbird email client.
Some blog owners have used hashcash scripts written in the JavaScript language to slow down comment spammers.