SHANKARI: [sighs] We made it.
INTERVIEWER: How?
SHANKARI: We autosynthed it.
INTERVIEWER: How'd you get past the censor chip?
SHANKARI: [pause] We got access to an old one. It's out of date. The updates haven't been installed on it for years.
INTERVIEWER: Who's the license holder?
SHANKARI: [sighs] Crawford Lab. They've got a newer fancier one. Their old one mostly just sits idle. I've got access to their lab. They never knew.
INTERVIEWER: Where'd you get the molecular structures?
SHANKARI: We got the chemistry from
Recipes for a Revolution
. I smuggled a hard copy back from India.
INTERVIEWER: And the source material?
SHANKARI: All over. It's mostly innocuous. The only problem is there are so many different molecules in Nexus… sixty-three different molecular parts. The autosynth only had one chemreactor. We had to do sixty-three runs, then hand mix in the right proportions.
INTERVIEWER: OK, back to the software.
SHANKARI: Yeah. Fine. So we recorded the signals. It was a bitch. Way too much going on. We did more and more mice studies, tapered down the doses as low as we could go. We started injecting straight into the brain to get the lowest possible doses, simplify the traffic between the mice, simplify the analysis for us.
INTERVIEWER: How long did it take you?
SHANKARI: Most of a year. We would do the dosing before we left lab each day, then record activity overnight. The results made no sense. The signal traffic was chaos. Huge volumes of chaos. There was nothing that looked like the position of the nodes.
INTERVIEWER: And then?
SHANKARI: And then… and then we hit pay dirt, man. Kade figured it out. The nodes don't know where they are in the brain. They know where they are relative to
other nodes
in the same brain. How much position data they send depends on how many nodes there are around 'em. And it's not even really position data. They figure out what functional region they're in, send that in their signals. It's fucking amazing. [shakes head] Anyway, once Kade figured that out, the data miners cracked the encoding. We could listen to brain activity, and trigger new activity anywhere we wanted.
INTERVIEWER: And this led to software how?
SHANKARI: [drums fingers] It was the damnedest thing, man. Once we understood the encoding, we could tell there was room for a lot more data in those signals. There were unused bits. So we just started fucking around with it one day, on a lark.
INTERVIEWER: And?
SHANKARI: And… it would do shit. It would store the data we sent it. If that node sent out a signal again, we'd get the data back. If we sent specific modifier signals, we could tell two nodes to talk to each other, to add their values together, or subtract them. We could do logical operations. [Shankari stops talking, shakes head] It still blows my mind, man.
INTERVIEWER: You'll share these codes with us, all of this data.
SHANKARI: Like I have any fucking choice.
INTERVIEWER: So you could make Nexus nodes perform logical operations and math operations. Go on.
SHANKARI: Well, that was a huge step. We had an instruction set. We could move data around. We could do conditionals. We could do most of the things a simple chip can do. We had the visual cortex for our display. The auditory cortex for our speakers. The motor cortex for our input. On top of that, we could write any damn software we wanted.
INTERVIEWER: So that's what you did? You wrote the Nexus operating system on top of the instruction set that you'd discovered in Nexus nodes?
SHANKARI: [shakes head] That would've been way too hard. We wanted to do neuroscience, not operating system development. So we ported something instead.
INTERVIEWER: Which was…?
SHANKARI: ModOS. It's free. The source code is all available. It's built to be portable, modular. It's built to run on any kind of hardware, down to the simplest possible instruction set. So we took that. We built a simple compiler to turn ModOS into a set of instructions that would run on a set of Nexus nodes.
INTERVIEWER: So the Nexus OS is really ModOS, running on Nexus nodes as its hardware.
SHANKARI: [nods] Yeah. You got it.
INTERVIEWER: And on top of that you've built more software.
SHANKARI: [nods] Yeah. Well, we've ported other software. Anything that can run on ModOS we can compile to run on the version that runs on top of Nexus.
And
we've built software. We had to build the code to send the video output to the visual cortex, stuff like that. And we wrote brand-new neuroscience software. We've built programs that make it easy to interact with parts of the brain. Interfaces. Like, an interface to take body shapes, like for a VR app, and tells the motor cortex to put the body in that position. That sort of thing.
INTERVIEWER: This is how you paralyzed Agent Chavez.
SHANKARI: [Looks down] Yeah. Dumbshit move, huh? [shakes head]
[…discussion of Nexus OS continues for another 17 minutes…]
INTERVIEWER: Next topic. You and your co-conspirators give off extraordinarily strong Nexus signals, and they're not dropping. The drug isn't wearing off. How is that possible?
SHANKARI: The limit of how much Nexus you can have in your brain is mental. Your neurons fire and the Nexus nodes are trying to coax them to fire. If they're not getting coherence, some of them break apart and get flushed out. Over time, your brain adapts to having a Nexus network. Your Nexus coherence increases. Your maximum possible levels of Nexus go up.
INTERVIEWER: But why isn't the level dropping? It's been more than eight hours. Most of it should be out of your system.
SHANKARI: [shakes head] We call Nexus a drug, but it's not. It's a nano-machine. It doesn't flush out because some enzyme has broken it down. Nexus nodes decompose to their parts because some internal logic has told them to. And if you give them the right signal, they just don't break down at all.
[…interview continues for another 18 minutes…]
8
BACK DOORS
Kade came out of his tech interview stressed and shaking. It had been an exhausting two hours. They'd drilled deep into what he and Rangan had built. They'd spotted every evasion. They'd known every time he lied or tried to hold something back. Well, he would show them.
He signed the papers they gave him. An ERD lawyer watched him, then countersigned the documents. The deal was real now. He would serve as their spy, and in exchange no one would go to jail. He and Rangan and Ilya would stay in science for just so long as Kade's mission lasted.
It was only then that they told him that Wats had gotten away.
Good for Wats, he thought.
A guard led him to the roof, to the VTOL plane waiting on the helipad; its wings rotated, its engines turned to the sky for vertical take-off. The engines were whining already. They ushered him up the stairs, and inside he found Rangan and Ilya, and the agent who would come with them to retrieve the Nexus code from San Francisco.
"Buckle up," the agent – who introduced himself as Myers – said over the sound of the engines. "There's a head in the back. Don't expect any beverage service."
Kade strapped himself in. Outside the cabin, the engines began to hum, and then to roar. All three of them remained silent as the plane rose slowly into the air, affording them a view of the city. Kade's window faced north, he thought. Where the wing did not obscure it, he could see a river – the Potomac? – and across that the Washington Monument and the Capitol. Then the engines swiveled gradually forward, and the plane picked up horizontal speed as well as altitude, and the city receded into the distance.
Kade looked over at Ilya. She was withdrawn into herself. She felt tense, wound up. He couldn't see Rangan with the seat back between them, but he could feel his friend's frustration and self doubt. He wanted to talk to them, but he didn't want to do so in any way Myers could hear.
He went Inside, found what he was looking for – ModOS's built-in chat app. He typed the words out on the mental keyboard in his mind, and the text-based chat program sent them to Rangan and Ilya. [kade] Don't react. We need to talk.
He felt their surprise. They'd forgotten about this app. A moment later he saw Ilya's response.
[ilya] Yeah. Definitely.
[rangan]+1
[kade] Put on a movie or something. Put your headphones on. Rangan, you first.
It was a relief to be talking again. He could sense the mood lighten a tiny bit for all of them. Rangan did something in front of him. A minute or so later Ilya dialed up a nature documentary on her seat-back TV screen.
[kade] Wats got away.
[ilya] They told me the same.
[kade] They offered me a deal. Give them Nexus and do a job for them, and no one goes to jail.
[ilya] You took it. [kade] Yes.
[ilya] I can't believe you're giving them Nexus 5. [rangan] It was that or life in jail.
[kade] And jail for everyone else at the party. [ilya] Do you have any idea what they'll do with Nexus? What the CIA will do?
He could feel her anger.
[kade] I know. But they were going to get it anyway. From the drives at lab or the backups at my place or Rangan's…
[rangan] He's right. Once they knew it existed, it was too late.
[ilya] You're going to have an awful lot of blood on your hands, then.
[kade] Probably. But there's one thing we can do. [rangan] What?
[kade] We can make sure we have a back door into their version.
[rangan] They already know about the back door. [kade] A new one. One they can't find. [rangan] How?
[kade] Remember that article we read last term? The Thompson hack?
He felt Rangan get it instantly. [rangan] Have the compiler inject it… It'd be in the binary, but gone from the source…
[kade] And have the ModOS compiler inject into the Nexus compiler…
[rangan] Yeah, yeah… Do we have time? How long is this flight going to take?
[ilya] 5 hours. I'm not following this hack.
Kade explained.
The Nexus OS existed in two forms. It existed as human-readable source code that Kade and Rangan or any programmer could read, understand, and modify. And it existed in a binary form that Nexus nodes could understand – sequences of raw ones and zeroes that were almost impossible to work with directly as a human.
Between the source code and the binary instructions was the compiler, the program that converted human-readable source code into Nexus-readable binary code. Kade and Rangan would use the compiler to insert their back doors.
Every time the compiler ran, it would search the Nexus OS source code for their new back doors. If the back doors weren't there, the compiler would add them before creating the binary version. The only evidence of the back doors would be in the binary version that was nearly incomprehensible to humans.
Finally, they would run the same hack on the compiler itself. The compiler's source code would contain no hint of the logic to insert the back doors. That would exist only in the compiler's binaries. Any time their workstation version of ModOS recompiled the compiler, it would insert all the logic of the hack.
Rangan felt thoughtful to Kade. Anxious still. He was thinking about the costs of being caught. He came to a decision. [rangan]OK. What the fuck. Let's do this thing.
Rangan and Kade pulled up their development environments and linked them. Ilya linked to their environments and watched over their virtual shoulders. They thought through the plan, divided the tasks up as they turned it from a vague idea into a concrete list of things to do.
Plan complete, they set to work. It went quickly at first. The backdoors they cloned from their existing overrides, changing only the passwords. The code in the compiler was conceptually simple. But as they coded, they hit bugs, each one a frustration. They checked the clock constantly. Minutes went by as they worked. An hour. A compiler crash frustrated them for twenty minutes. The fix was trivial once they understood it. A second hour had passed. One of the back doors was leaking memory. How could that be? They'd copied the code from the back door they already had. They figured it out. This fix took longer. A third hour passed.
At hour four, the back doors were working and the Nexus compiler was adding them. Rangan forced the /obfuscate flag on, instructing the compiler to scatter the new code far and wide as seemingly disconnected, innocuous instructions in the binary, making reverse-engineering what they'd done even more difficult. Next they needed to change the workstation compiler to add the backdoor code to the Nexus compiler. Rangan got on that.
Kade turned his attention to the second phase. He wanted to be able to use the back door without the person running Nexus OS knowing. He needed support for hidden processes. ModOS had that in some form. It was simple in theory, but there were so many tendrils.
He took large chunks of ModOS code they'd never used and brought them back into Nexus OS. The back doors would connect them to a hidden super-user account. That would do most of what he wanted. Logging would be off for that account. Yes. How to hide the memory usage?
Shit. His ears were popping. They were landing. He looked out the window. Fuck. They were at SFO, the airport closest to UCSF. How long from SFO to lab? Twenty minutes? Twenty-five? Shit. Rangan was done. Kade still had to finish up.
Could he hide the memory usage? He didn't see how. He'd have to leave it in. Were there other telltales someone could find? Think, think. Logfiles. Had he gotten them all? Network traces? No easy way to hide those. He'd have to leave them in.