Re: Nanotech control systems (was Re: Transhuman Beach Party)

hal@finney.org
Thu, 9 Sep 1999 16:21:56 -0700

Matt Gingell, <mjg223@is7.nyu.edu>, writes:
> Do you think we're likely to understand the functioning of cells well
> enough that we could program them to build complex structures, and
> create specialized, human designed, offspring in the foreseeable
> future? How well is the process of human development from a single
> cell understood? Do we understand how a cell knows it's in the right
> place to become a liver cell, etc. Do we understand how we go from
> strings of amino acid specifiers in DNA to more complex cellular
> structures? (These aren't rhetorical questions - All I've got is some
> high-school bio and too much science fiction...)

>From what I read, there is considerable progress in understanding this at
the lowest level, particularly with insects, worms, and other relatively simple animals. Chemical gradients are established across the developing organism, (i.e. stronger at one end and weaker at the other), and then the concentration of the chemical turns on or off various genes which changes how the cell specializes.

However it would be hard to go from this in the opposite direction to figure out how to change things so as to produce something very different. The overall system is relatively specialized to producing a particular organism. You could tweak chemical gradients and maybe get a sixth finger or something, but you'd need a complete redesign to get an entirely new shape.

> When I think about the nanotech software question, I imagine an
> automaton with a general-purpose computer and mechanisms to
> reproduce and drop/detect some alphabet of chemical messages.
> Given this idealized scenario, I try to image how to go about
> designing a program for automaton 0 that will eventually lead to
> some interesting configuration of N automata. (shapes, patterns,
> images, etc.)

Really it doesn't have to be that hard. Nanosystems pictures a sort of factory environment, where you build sub-assemblies which move on conveyor belts to sites where they are put together into more complex shapes. All the manufacturing components are in fixed, rigid locations relative to each other. They can be connected with electrical or mechanical data busses where signals can be broadcast.

> These are very hard problems to think about - the flow of the system
> is extremely complex and dynamic. To predict the behavior of the
> system at some point in time, you need to know the complete state
> of the system, which requires knowing how the system behaved in
> the previous time-step, etc. The feedback process leads to very
> simple programs with extremely complicated behavior.

It's not inherently that much more complicated than a factory or other system which builds a large structure out of small pieces. It is somewhat worse in that the pieces are very small, but still there will probably be considerable repetition in most objects that we build, so the actual amount of information needed isn't that bad.

> > > How do you deal with the problem of mutation?
> [...]
> I really meant random bit-flips in the machine's local/working
> memory. It seems to be the small you make something the more
> vulnerable it is likely to be to cosmic rays, etc. You would certainly
> place some kind of error correction mechanism in that memory, but
> the shear number of possible events (number of nanites, local
> memory size, length of time) makes this a rather expensive
> proposition. Maybe you need antibody nanites that float around
> checking the program of anyone they bump into and destroying
> mutants.

Drexler tries to assume a single-point-failure model. Any system which detects that it is not working perfectly simply stops working. You then have to design with some redundancy in place, but it looks like that should not be a show stopper.

Hal