<-- diamondoid | Transhumanist Terminology | digital pseudonym -->
If you spend any
time at all reading futurists such as Raymond Kurzweil
or George Gilder (much less the likes of Vernor Vinge or Eliezer Yudkowsy)
you have been undoubtedly been exposed to the digital ecosystem
metaphor of computer networks. This vision is predicated upon
the oft-voiced notion that our most complex software systems have
become too complicated for any single person to understand, that they've
entered an intellectual realm somewhere out near biology, where theories
are messy masses of memes utterly lacking in the primal
elegance of physics and experiments are never perfectly
replicatable. You'll hear talk of worms and viruses and references
to our telecommunications network as the nervous system of society,
all of it designed to convince you that today's technology is of
a complexity comparable with not just a single organism, but an entire
self sustaining ecosystem. This romantic notion, while it may some
day be true, is nowhere close to reality today.
I don't want to detract from the complexity that we've already
achieved. There are all sorts of applications, from routing
data on a network to pattern recognition to games for
which the only way to determine what effect a particular change
will have on the overall system is to make it and watch. But
this does not even begin to approach the depth of complexity
displayed by real biological systems. There are but two major
differences that need to be considered to see this.
The first obvious difference between digital and biological life is
what I call the "You can't hold me down" principle. No matter how
hard you try to destroy biological life-forms it is very difficult to
succeed on a species wide basis. Despite tens, hundreds, or thousands
of years of sustained human effort we have made essentially no progress
at destroying the life-forms that create malaria, influenza,
anthrax, AIDS, or nearly any other communicable disease (how ironic, then,
that we seem perfectly capable of inadvertently causing
extinctions). Antibiotics
kill the weak, acting as an evolutionary sieve constantly straining the
bio-space in search of hardier organisms.
Contrast this with our digital environment. Pathogens here show none of
the hardiness of their biological analogs--stopping Code Red II or
Nimda is a largely mechanical exercise with today's antiviral tools.
Download the new virus signatures and continue on your merry way. How
different this is from treating anthrax, where doctors must concern themselves
with side effects, preexisting conditions, allergies, and innumerable
other complicating factors--just on the patient side of the equation. This
doesn't take into account the never ending forward march of the Darwinian
parade; every step we take against any pathogen introduces a powerful new
evolutionary filter that quickly strains the bacterial gene pool for the
necessary counter tools. Clearly, digital "life" is nowhere close to this
level of complexity.
The other major difference between digital and biological systems appears at the level
of entire ecosystems. Put simply, biological networks exhibit a far greater
degree of interdependence among components and this tighter web leads to the
formation of longer feedback loops (a useful proxy for overall system complexity
as the presence of longer loops provides the mechanism by which extremely localized
perturbations can cause cascading global changes).
The internal network of a large organization may comprise
tens of thousands of machines, running millions of separate programs collectively made up of
tens or hundreds of millions of individual lines of code. This is well into the
realm of systems whose behavior can't be simulated by smaller systems. Small errors
that would be expected to have minor, local effects can occasionally propagate
severe damage across the entire system. This is demonstrated by the arp storm
Code Red triggered on many networks*, an unintended effect of a completely different
sort of attack.
A biological network, even one as small as a square meter, can contain
hundreds of billions of individual bacteria representing tens of millions of species,
hundreds of thousands of tiny insects from a variety of species, fungus, mold, and
many types of plant all while being used as food or shelter for more mobile members
of the ecosystem. The difference in scale is astonishing. Against the dense web of life
that makes up the biological world our entire digital accomplishment seems no more
than the merest hint of a thread.
Someday our networks and the software that runs them may approach the richness of
the biological world. Contrary to what the most committed
technology true believers think,
that day is not yet here.
* I see the code red node doesn't explain the particular effect of the worm, probably because
it was an inadvertent side effect of the worm rather than programmed behavior. Briefly,
ARP is the address resolution protocol, it's an extremely low level (low enough that
ARP packets go to every machine on the network because there isn't any way to discriminate between
machines) networking protocol used to identify which physical ethernet device a particular IP address
is bound to. Code red worked by generating nearly random IP addresses and trying to send itself to them. This
resulted in it generating lots of addresses that aren't in use. When the packets arrived at the
correct subnet arp requests would begin to be generated as the last hop router tried in vain
to find a physical address corresponding to this network address. For some organizations, this
enormous surge in arp traffic was worse than the primary effects of the worm.