So assume (see my last nanotech post, Nanotech IS distinguishable from magic) that we’ll find a way to build and power nanobots.
The medical nanobots in my novel Small Miracles tap the energy sources that the patient’s own body provides. That is, they can metabolize glycerol and glucose, just as the cells in our bodies do.
Now what?
The good news is that being cell-sized, such bots can navigate the circulatory system, foraging for glucose as they go. But being cell-sized, we’ll also need a lot of such devices to accomplish anything useful in less than geological time. How will we control them all?
Maybe it’s best that we not control the nanobots—not, anyway, in real time. Instead, maybe we’ll give each bot an onboard computer. Program the little guy to know what to do. As in, oversimplifying just a tad:
Drift through the bloodstream
Monitor your plaque sensors
When you find plaque on a blood-vessel wall
Grab hold
Nip the plaque into tiny pieces
Repeat
Such distributed control presupposes really tiny computers. And what about electricity to power them? To which I say: yes, and not necessary.
Yes, the computers must be really small—and they can be. And not necessary, because computers needn’t be electrical.
We’ve become accustomed to data storage in integrated circuits and on magnetic disks. But nothing says that a bit of data—a zero or a one—must be encoded as an electric quantity (like electrons trapped for a time in a charge well) or a magnetic quantity (like the polarization of a magnetic domain). Who remembers punch cards and paper tape? Really early computers used the presence or absence of pressure waves in a tank of mercury. And earlier still …
Right. The abacus.
Anything that can unambiguously represent two values—while resisting, just a wee bit, randomly flipping from the state you want retained into the opposite state—can encode binary data. The position of sliding beads or rods. Or in an irreducible (I believe) minimum for any time soon, the state of individual bi-stable molecules. The medical nanobots in Small Miracles use bi-stable memory molecules.
That takes care of memory. What about a processing unit to execute instructions from, and manipulate data in, that memory? As it happens, the earliest digital computers were mechanical, designed by Charles Babbage). (Of course, so soon after Steampunk Month, everyone knows that. Right?)
Are mechanical nanocomputers crazy talk? True, we don’t have them—yet. But consider this University of Wisconsin proposal. Notice that they got funding from the Defense Advanced Research Projects Agency, the fine folks who brought us the Internet. Or Google away.
So how will we control nanobots? Bit by bit.
Edward M. Lerner worked in high tech for thirty years, as everything from engineer to senior vice president. He writes near-future techno-thrillers, most recently Fools’ Experiments and Small Miracles, and far-future space epics like the Fleet of Worlds series with colleague Larry Niven. Ed blogs regularly at SF and Nonsense.
VIEW ALL BY · Monday November 23, 2009 08:16pm EST
VIEW ALL BY · Tuesday November 24, 2009 01:45am EST
In a world with natural and man-made EMP risks, not to mention radio-frequency interference galore, mechanical nano-device scale computing solutions may become the tool of choice for mission critical systems.
Just as the aging COBOLers got one last big fling for Y2K, assembly language developers may spend their golden years knocking bits about to chop up cancers and promote nerve growth. Which can never happen now given Small Miracles' portrayal of the FDA.
Oh well, maybe another timeline.
VIEW ALL BY · Tuesday November 24, 2009 07:33am EST
HRH's concerns about 'grey goo' are, in my opinion, not at all unwarranted. I'm fucking terrified.
VIEW ALL BY · Tuesday November 24, 2009 10:10am EST
kcarlin: Of course you're correct that a complete computer requires more than an ALU and a memory array. There's also control logic, clocking logic, bus structures, error-detection logic, I/O ports ... Rightly or wrongly, that was a level of detail I thought wouldn't interest the general reader of the blog. But such additional logic *can* be built at the molecular level.
(Geeky aside: If a nanocomputer's implementation involves the popular architectural technique called microcoding, there's a language issue in that micro as a prefix is bigger than nano. Dare we speak of femtocoding?)
NomadUK: Yup, the integrity of the software in nanobots will be an issue. A BIG issue. But while I see grounds for concern, the grey-goo scenario isn't among them. Designing self-replicating nanobots will be a very hard problem. And that buggy software you rightly worry about will offer vulnerabilities that rapidly evolving microbes will exploit to compete.
VIEW ALL BY · Tuesday November 24, 2009 11:30am EST
You're joking, right?
VIEW ALL BY · Tuesday November 24, 2009 11:52am EST
Of course, microbes won't read or manipulate the code in the nanobots. But bad code leads to vulnerabilities and suboptimal behaviors.
To the degree nanobots have vulnerabilities and suboptimal behaviors (not necessarily limited to software bugs), microbes sharing that environment will evolve accordingly. Just as microbes already evolve immunities to antibiotics, adapt to changes in the available food supply (e.g., switching which sugar they metabolize based on availability), and develop the ability to resist phages.
VIEW ALL BY · Friday November 27, 2009 04:37pm EST