hashcash.org
home
faq
documentation
mailing-list
news
media articles
bitcoin
mail plugins 
blog plugins 
binaries 
source 
benchmarks
biggest stamp
developers
java applet
papers
 
web hashcash.org

hits since nov 03

Hashcash

Hashcash is a proof-of-work algorithm, which has been used as a denial-of-service counter measure technique in a number of systems.

A hashcash stamp constitutes a proof-of-work which takes a parameterizable amount of work to compute for the sender. The recipient (and indeed anyone as it is publicly auditable) can verify received hashcash stamps efficiently. Hashcash was invented by Adam Back in 1997

At this point it is most widely used as the bitcoin mining function.

The email anti-spam tool, like the proof-of-work algorithm, is also called hashcash and is used to create stamps to attach to mail to add a micro-cost to sending mail to deter spamming. The main use of the hashcash stamp is as a white-listing hint to help hashcash users avoid losing email due to content based and blacklist based anti-spam systems.

Hashcash source code includes a library form, and also the algorithm is extremely simple to code from scratch with the availability of a hash library. Verification can be done by a human eye (count leading 0s) even with availability of common preinstalled command line tools such as sha1sum. The algorithm works with a cryptographic hash, such as SHA1, SHA256 or coming SHA3 that exhibits 2nd-preimage resistance. Note that 2nd-preimage resistance is a stronger hash property than the collision resistance property.

If you have questions are interested to port to different systems, integrate into different email clients (MUAs), anti-spam systems, or MTAs email Adam Back adam@cypherspace.org or post on the hashcash-list.
Microsoft released an incompatible hashcash spec email postmark which I believe is implemented in exchange, outlook, hotmail etc microsoft mail related infrastructure as part of their coordinated spam reduction initiative CSRI. They hash the body rather in addition to the recipient, and they also use a modified SHA1 as the hash, and use multiple sub-puzzles to reduce variance.