1998-01-12 - autonomous agents

Header Data

From: Adam Back <aba@dcs.ex.ac.uk>
To: eternity@internexus.net
Message Hash: 26e180da7a40ec0ddc53b2b72b7d7ffc90b4c65a663728b04a693fc2fb8aaac6
Message ID: <199801121925.TAA00539@server.eternity.org>
Reply To: N/A
UTC Datetime: 1998-01-12 20:21:48 UTC
Raw Date: Tue, 13 Jan 1998 04:21:48 +0800

Raw message

From: Adam Back <aba@dcs.ex.ac.uk>
Date: Tue, 13 Jan 1998 04:21:48 +0800
To: eternity@internexus.net
Subject: autonomous agents
Message-ID: <199801121925.TAA00539@server.eternity.org>
MIME-Version: 1.0
Content-Type: text/plain




A canonical way to do implement things like remailers, eternity
servers etc. is to build a distributed computation system to allow
autonomous agents to be distributed across the internet.  Create a
market for CPU resources, bandwidth and disk-space so that the agent
can pay it's way.  Charge per CPU/hour, Mbit comms at given data rates
and Mbyte/year storage, base it on Java as a portable network based
language with code distribution support.  Then let people fire off
what ever they like, so long as they are paying.

In this environment an eternity variant, or remailers, or anything
else becomes a collection of autonomous agents which must fund their
own distribution.  The autonomous agents could send back profits to
their creators, or use the profits to self propagate.

Someone who thought up a good application, and got the economics right
for their bot's buy and sell algorithms might become rich, even.

I had considered that a generic perl execution system charging for
resources would be useful for remailers a few years back.  Java seems
pretty good for this purpose also, being another portable network
aware language.

>From what Ryan has said his design uses markets for resources also.


The question is though would you let a bot of this sort loose on your
system?

For agents to be able to achieve anything useful, the Java sandbox
model has to be relaxed to allow the agent to make network connections
to other than the machine the code was served from.  Java has support
for this in that signed applications are allowed to make external
network connections.

The problem is the flexibility would allow an autonomous agent to pay
it's way in say breaking into a series of machines, and sending back
obtained documents via remailer to the operator.  A well funded
attacker could cause lots of problems for operators.

However the system as a whole is nice for our `creating lawful
excuses' drive, because there are many applications which could make
good use of the distributed computation system: filmatic quality image
rendering computations, scientific computations, code breaking
efforts, distributed web server applications. 


The liability questions are interesting also.  If the participant in
the CPU resource market is not expected to be able to vet all source
code he runs, this gives the would be eternity operator a chance to
distribute his risk.  If the system becomes widely used, this helps
protect it from attack.

Adam






Thread