Skip to Content.
Sympa Menu

bluesky - Re: distributed immutable namespace

bluesky AT lists.ibiblio.org

Subject: Global-Scale Distributed Storage Systems

List archive

Chronological Thread  
  • From: Ian Clarke <ian AT octayne.com>
  • To: Global-Scale Distributed Storage Systems <bluesky AT franklin.oit.unc.edu>
  • Subject: Re: distributed immutable namespace
  • Date: Thu, 8 Mar 2001 10:32:50 -0800

On Wed, Mar 07, 2001 at 10:43:21PM -0400, Adam Back wrote:
> Perhaps you could use hashcash to pay for your name. name
> creations are infrequent enough that users could put up
> with involve a reasonably expensive computation. Users of
> names could also submit hashcash on the names they use so
> that popular names get higher valued hashcash.

This same issue came up on the Freenet mailing list a while back. We
weren't happy with hashcash since it would make your ability to publish
information proportional to the speed of your PC (which is roughly
proportional to the size of your wallet), and we didn't like that at a
philisophical level.

I suggested a concept called "Think Cash", here is a copy of a document
I wrote to describe the idea (note that this is really just an
exploration of the problem more than a solution):

--
One of the core problems with the Internet today, and its open trusting
nature, is that of Denial of Service or DOS attacks. Basically, this is
the computer equivalent of making it impossible for someone to use their
phone by phoning them once a minute, 24 hours a day, 365 days a year
automatically. Of course, with phones, people who did this would be cut
off very quickly, however this is not so easy with the Internet.
Further, tools such as Freenet which aim to protect people's anonymity,
could compound this problem even more in some circumstances. (It is
worth noting that Freenet's architecture does make DOS attacks less
damaging by avoiding centralized control). One obvious example of DOS
attacks is "Spam" or unsolicited email. Here people send out thousands
or millions of emails to people, generally advertising a product or
service that only a tiny fraction of the recepients will be interested
in.

Ways to address the problem

1. Increased regulation
One approach is increased regulation of the Internet, making it easier
to detect and remove those mounting DOS attacks. The problem with this
is that many people (myself included) feel that the real value of the
Internet is as a forum for free speech, and the tools developed to
counter DOS attacks could easily be turned against other Internet users
to censor them. In this case, the cure would be much worse than the
disease.

2. Hash cash
The second approach is to make it too costly for people to mount a DOS
attack, but where the cost of normal internet usage remains
insignificant. Hash cash is one solution where a user is forced to
perform a time-consuming (and therefore money consuming) calculation,
before submitting something to the system (such as sending an email or
transmitting an IP packet to a given IP address). This is quite
straight-forward to implement, however its usefulness is unclear.
Firstly it would create a bias against users of slower computers.

Secondly, even if it took 1 minute to perform the calculation nescessary
to send an email, you could still send a considerable amount of email in
a 24 hour period.

3. Think cash
A more sophisticated idea, which (as far as I am aware) has not been
considered prior to my suggesting it on one of the Freenet Project
mailing lists several months ago, is to force ``a human`` to do a small
amount of work, which only a human could do, before submitting each
piece of information. The aim is to make it impossible to automate the
task. Thinking of a way to do this is not easy - any such mechanism
would need the following properties:

1. Only a human should be able to perform the task or test
2. A computer should be able to create a test automatically
3. A computer should be able to judge the results of the test

Some possible approaches
There are a number of general areas where we could look for such a test.
Of particular interest to us should be tasks which humans find easy, but
which machines find difficult. Examples include image recognition and
speech recognition. The problem here is not so much creating the tests
(requirement 2), but judging them (requirement 3). There is the further
constraint that each test must have enough possible answers so that a
computer could not simply attempt all of them.

Testing for intelligence
One particular line of enquiry which caught my attention was the "Turing
Test". Alan Turing was a British cryptographer who helped to break
German cyphers during the second world war. He also had a keen interest
in the concept of machine intelligence, and in particular, how to test a
machine for intelligence. His idea, what we now call the Turing test,
was clever in that it largely evaded the question of what intelligence
actually was. A simplified version of the actual test would work like
this. Someone would have a conversation (using a keyboard and screen,
much like IRC) with what could be either another person, or a computer
pretending to be a person. They would have to decide whether they were
talking to a human or a machine. This test would be repeated, and if
they got it wrong around half of the time, then the machine could be
regarded as being intelligent. This approach may suggest a solution to
the dilemma outlined above.

The seeds of a solution
I started to think about whether it would be possible to create a system
where all the users, while being tested by the system, were actually
testing each-other too. Each user might be asked to provide an answer to
a question which will demonstrate their intelligence, to provide a
question which will test someone elses intelligence, and to give an
opinion as to the answers given by a number of other people to several
questions. Failure to do any of these things to the best of their
ability may result in their submission not being accepted.

Remaining issues
Of course, there are still many details to be worked out, how can the
above system be built so as to make abuse impossible? What if a computer
made so many submissions that it saturated the system, and could
validate its own submissions as being correct?
None the less, at least this suggests that a robust think-cash mechanism
is a possibility. As the threat of malicious attacks on the Internet get
more and more serious, people may be forced to adopt a mechanism such as
this.

Attachment: pgpIVhZjhRi7H.pgp
Description: PGP signature




Archive powered by MHonArc 2.6.24.

Top of Page