[hashcash] A summary of the state of play
- From: Jonathan Morton <chromi@xxxxxxxxxxxxxxxxxxxxx>
- To: hashcash@xxxxxxxxxxxxx
- Date: Wed, 25 Aug 2004 01:45:45 +0100
To me, this seems like a pretty good case for *large* hashcash stamps
combined with a strongish signature/whitelist system. I've already
described, in outline, how such a system could be designed, though
some
of the details could stand to be tweaked given recent data.
I'd be very interested in seeing that. A summary of where things are
now
(since the goalposts seem to move a little bit every day!). Some points
which have been raised include;
- Minimum stamp postage values (we've had everything from 20-bits to
30-bits proposed!)
- Spammers running powerful minting machines (the stack of Xserves
scenario)
Due to recent advances in CPU technology, combined with my
optimisations, it's now clear that 20 bits is too low - though it was a
reasonable default beforehand. (It's still the default in the shipping
hashcash implementation, but it is no longer reasonable.) 24 bits is
probably the bare minimum, and would probably be appropriate if a "bare
hashcash" scheme were widely adopted. Larger values would be
preferable, but are only practical if there's a way of bypassing the
mechanism for regular correspondents - which there is (see below).
- The 'economic gap' between the Xserve spammer and the poor 486 :)
To some extent, it's reasonable to assume the 486 (or 68030) user is
accustomed and resigned to things taking longer on his hardware than on
others'. As such, he might be perfectly willing to write a mail, then
go away and have dinner while the stamp is minted, and send the mail
afterwards.
This assumption makes sense up to about 26 bits, based on current
performance estimates. Up to 30 bits may also be acceptable, if the
user is willing to wait overnight. But waiting overnight is something
even low-end users would only want to do occasionally.
- Opportunistic signatures (mentioned by eric in his last mail)
- Signature / whitelist system
- Hybrid systems, and where hashcash fits in (e.g. the MS SenderID
proposals, which appear to be gathering pace)
It's becoming increasingly clear that a single technology isn't going
to solve the problem. An intelligent combination of technologies would
be much more effective. There are a quartet of complementary
technologies to consider:
- Proof of work
- Signatures with whitelist
- Domain certificates
- Content filters
Domain certificates are good as a first line of defence for reducing
forgery. This is a highly recommended goal in any case. They can be
implemented at the SMTP level, separately from the remainder of the
filters, which must operate at the message level.
Signatures, and whitelists based on them, can be considered part of the
next line of defence. The most efficient form of signatures I know of
is also very simple to implement - I'll describe it separately. It's
all based on establishing a unique full-duplex conversation.
Note that signatures for whitelisting are far easier to specify and
implement than signatures for message body verification (a la PGP) or
certificates for blacklisting. There is no need for a "web of trust",
which is burdensome to maintain - in fact, it is possible (and ideal)
to make it completely transparent to the user. In this way, they are
also applicable to mailing lists.
Proof of work can be used as either a substitute or a foundation for
signatures. Obviously, it's cheaper for a sender to add a signature
than a PoW token, but if a signature relationship hasn't yet been set
up, the PoW token is the way to go. Hashcash is a good candidate for
PoW.
Content filters are the last line of defence. They should only come
into play if a message passes the domain certificate stage but gets an
inconclusive result from the signature and PoW filters (perhaps because
neither are present). This is the last chance for a message to "go
legit" before it is dropped. CAMRAM implements this technique.
The point of the content filter is to allow the status quo to be
gradually phased out, rather than instantaneously becoming obsolete.
It also allows senders to be partially ignorant of the quantitative
requirements of the sender (ie. PoW value), without necessarily
requiring a message feedback mechanism to avoid excessive false
positives.
- Stamps versus pipe size (again, eric mentioned he had a spreadsheet
with
some volume calcs. I'd really like to see that)
I'll leave Eric to provide this. But, as a ballpark, consider that a
T1 (1.5Mbit/sec) can be had for perhaps $400/month, and a typical
e-mail might be less than 10KB. A typical zombie can be considered to
have 250Kbit/sec upstream bandwidth.
- RPOW (I'd like some background info on this, any links?)
A brief, and perhaps oversimplified, description of RPOW is that it
allows hashcash tokens (which can only be used once) to be exchanged
for "bit gold", which can be sequentially Reused. Whenever "bit gold"
in the form of an RPOW token gets passed from one hand to another, it
is atomically verified and exchanged for an identical-value token, by
contacting a network of RPOW servers.
This means that when someone receives a message with an RPOW token
attached, they can send an RPOW token of equal value out without
spending more CPU time. If they need more RPOW value, they can
generate hashcash and exchange it at the RPOW server. RPOW tokens can
also be split and combined by the server, provided the total value
remains conserved. However, verification of the token requires contact
with the RPOW server, unlike plain hashcash.
At present, there is physically only one RPOW server. The RPOW server
must be implemented within a special IBM "secure cryptographic
coprocessor card", which costs upwards of $3000 - more than an Xserve.
Each card is only capable of about 8 transactions per second.
Evidently, RPOW does not scale to general use of global proportions,
but it may still be useful to help low-end machines "save up" CPU
effort for future messages.
Further information is available from: http://rpow.net/
--------------------------------------------------------------
from: Jonathan "Chromatix" Morton
mail: chromi@xxxxxxxxxxxxxxxxxxxxx
website: http://www.chromatix.uklinux.net/
tagline: The key to knowledge is not to rely on people to teach you it.
Other related posts: