<-- 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.