June 03, 2003, 12:00 AM — Every now and then there is a real e-mail message in the midst of my
spam. It used to be that every now and then there would be a spam
message in the midst of my real e-mail. Spam is a really serious problem
for me. I'm not alone.
As I write this, I am in the midst of investigating a variety of
anti-spam techniques. As a consequence, my head is swimming in pop3
proxies, Bayesian analysis and whitelist methodologies. Wading through
all of this stuff, one thought strikes me very forcefully. All the
technological solutions to the spam problem seem to address the problem
at point of receipt. They concentrate on filtering out the spam *after*
the spam has been created and sent. In other words, after the bandwidth
has been consumed. All that lovely bandwidth - what a waste! Even if I
managed to set up a filtering system so that I never saw a spam message
in my in-box, the sucking noise of bandwidth disappearing needlessly out
of the Internet's exhaust pipe would sit uneasily with me.
Unfortunately, addressing the problem with technology applied to the
routing side (in order to catch spam before it consumes so much
bandwidth) also sits uneasily with me. That is because solving the
problem in the network itself would involve breaking a key principle
that underlines the way the Internet works. I'm thinking of the so
called 'end to end principle' of system design. This simple principle
states that clever stuff should be on the edges of a distributed system
rather than in the middle. Clever stuff in the heart of a distributed
system design is hard to change and hard to maintain. Every time you
need to revisit your network to do something else with it, you end up
making changes in its core. This is both expensive and error prone. By
contrast, if the clever stuff is on the edges of the network, you can
make modifications more easily. Remember instant messaging? Gnutella?
Clever stuff can happen on the edges of the Internet because the core
functionality of the Internet is, by design, very, very basic. The
Internet routes packets without regard to what those packets are.
In the case of spam, there is another reason why it is not a good idea
to add spam technology to the core of the network. What if a real
message gets inadvertently filtered as spam? If the network took it upon
itself to remove it you would never catch the false positives. Not good.
So, can we rid the world of spam without sacrificing all the bandwidth
required by receipt-side filtering? I'm having trouble seeing a
technological solution that does not compromise the end-to-end
principle. Perhaps I've missed something but at the moment it seems to
me stopping spammers from spamming in the first place is the only way to
both preserve the bandwidth and remove the spam.
Perhaps receipt-side filtering technology will get so good that spammers
will just give up - thus giving us back the bandwidth?