Taiyo Fujii was born in Amami Oshima Island—that is, between Kyushu and Okinawa. In 2012, Fujii self-published Gene Mapper serially in a digital format of his own design, and it became Amazon.co.jp’s number one Kindle bestseller of that year. The novel was revised and republished in both print and ebook as Gene Mapper—full build—by Hayakawa Publishing in 2013 and was nominated for the Nihon SF Taisho Award and the Seiun Award. His second novel, Orbital Cloud, won the 2014 Nihon SF Taisho Award and took first prize in the “Best SF of 2014” in SF Magazine. His recent works include Underground Market and Bigdata Connect.
VIOLATION OF THE TRUENET
SECURITY ACT
Taiyo Fujii
translated by Jim Hubbert
The bell for the last task of the night started chiming before I got to my station. I had the office to myself, and a mug of espresso. It was time to start tracking zombies.
I took the mug of espresso from the beverage table, and zigzagged through the darkened cube farm toward the one strip of floor still lit for third shift staff, only me.
Zombies are orphan Internet services. They wander aimlessly, trying to execute some programmed task. They can’t actually infect anything, but otherwise the name is about right. TrueNet’s everywhere now and has been for twenty years, but Japan never quite sorted out what to do with all the legacy servers that were stranded after the Lockout. So you get all these zombies shuffling around, firing off mails to nonexistent addresses, pushing ads no one will see, maybe even sending money to nonexistent accounts. The living dead.
Zombie trackers scan firewall logs for services the bouncer turned away at the door. If you see a trace of something that looks like a zombie, you flag it so the company mail program can send a form letter to the server administrator, telling him to deep-six it. It’s required by the TrueNet Security Act, and it’s how I made overtime by warming a chair in the middle of the night.
“All right, show me what you got.”
As soon as my butt hit the chair, the workspace suspended above the desk flashed the login confirmation.
INITIATE INTERNET ORPHAN SERVICE SEARCH
TRACKER: MINAMI TAKASAWA
The crawl came up and just sat there, jittering. Damn. I wasn’t looking at it. As soon as I went to the top of the list and started eyeballing URLs in order, it started scrolling.
The TrueNet Security Act demands human signoff on each zombie URL. Most companies have you entering checkmarks on a printed list, so I guess it was nice of my employer to automate things so trackers could just scan the log visually. It’s a pretty advanced system. Everything is networked, from the visual recognition sensors in your augmented reality contact lenses to the office security cameras and motion sensors, the pressure sensors in the furniture, and the infrared heat sensors. One way or another, they figure out what you’re looking at. You still have to stay on your toes. The system was only up and running for a few months when the younger trackers started bitching about it.
Chen set all this up, two years ago. He’s from Anhui Province, out of Hefei I think. I’ll always remember what he said to me when we were beta-testing the system together.
“Minami, all you have to do is treat the sensor values as a coherence and apply Floyd’s cyclic group function.”
Well, if that’s all I had to do. . . . What did that mean, anyway? I’d picked up a bit, here and there, about quantum computing algorithms, but this wasn’t like anything I’d ever heard.
Chen might’ve sounded like he was fresh off a UFO, but in a few days he’d programmed a multi-sensor automated system for flagging zombies. It wasn’t long before he left the rest of us in Security in the dust and jumped all the way up to Program Design on the strength of ingenuity and tech skills. Usually somebody starting out as a worker—a foreigner, no less—who made it up to Program Design would be pretty much shunned, but Chen was so far beyond the rest of us that it seemed pointless to try and drag him down.
The crawl was moving slower. “Minami, just concentrate and it will all be over quickly.” I can still see Chen pushing his glasses, with their thick black frames, up his nose as he gave me this pointer.
I took his advice and refocused on the crawl. The list started moving smoothly again, zombie URLs showing up green.
Tracking ought to be boring, on the whole, but it’s fun looking for zombies you recognize from the Internet era. Maybe that’s why I never heard workers older than their late thirties or so complain about the duty.
Still, I never quite got it. Why use humans to track zombies? TrueNet servers use QSL recognition, quantum digital signatures. No way is a zombie on some legacy server with twenty-year-old settings going to get past those. I mean, we could just leave them alone. They’re harmless.
Message formatting complete. Please send.
The synth voice—Chen’s, naturally—came through the AR phono chip next to my eardrum. The message to the server administrators rolled up the screen, requesting zombie termination. There were more than three hundred on the list. I tipped my mug back, grinding the leftover sugar against my palate with my tongue, and was idly scrolling through the list again when something caught my eye.
302:com.socialpay socialpay.com/payment/?transaction=paypal.com&account
“SocialPay? You’re alive?”
How could I forget? I created this domain and URL. From the time I cooked it up as a graduation project until the day humanity was locked out of the Internet, SocialPay helped people—just a few hundred, but any-way—make small payments using optimized bundles of discount coupons and cash. So it was still out there after all, a zombie on some old server. The code at the tail said it was trying to make a payment to another defunct service.
Mr. Takasawa, you have ten minutes to exit the building. Please send your message and complete the security check before you leave.
So Chen’s system was monitoring entry and exit now too. The whole system was wickedly clever. I deleted SocialPay from the hit list and pressed SEND.
I had to see that page one more time. If someone was going to terminate the service, I wanted to do it myself. SocialPay wasn’t just a zombie for someone to obliterate.
The city of fifty million was out there, waiting silently as I left the service entrance. The augmented reality projected by my contact lenses showed crowds of featureless gray avatars shuffling by. The cars on the streets were blank too; no telling what makes and models they were. Signs and billboards were blacked out except for the bare minimum needed to navigate. All this and more, courtesy of Anonymous Cape, freeware from the group of the same name, the guys who went on as if the Lockout had never happened. Anyone plugged into AR would see me as gray and faceless too.
I turned the corner to head toward the station, the dry December wind slamming against me. Something, a grain of sand maybe, flew up and made my eye water, breaking up my AR feed. Color and life and individuality started leaking back into the blank faces of the people around me. I could always upgrade to a corneal implant to avoid these inconvenient effects, but it seemed like overkill just to get the best performance out of the Cape, especially since any cop with a warrant could defeat it. Anyway, corneal implants are frigging expensive. I wasn’t going to shell out money just to be alone on the street.
I always felt somehow defeated after a zombie session. Walking around among the faceless avatars and seeing my own full-color self, right after a trip to the lost Internet, always made me feel like a loser. Of course, that’s just how the Cape works. To other people, I’m gray, faceless Mr. Nobody. It’s a tradeoff—they can’t see me, and I can’t see their pathetic attempts to look special. It’s fair enough, and if people don’t like it, tough. I don’t need to see ads for junk that some designer thinks is original, and I don’t have to watch people struggling to stand out and look different.
The company’s headquarters faces Okubo Avenue. The uncanny flatness of that multilane thoroughfare is real, not an effect of the AR. Sustainable asphalt, secreted by designed terrestrial coral. I remembered the urban legends about this living pavement—it not only absorbed pollutants and particulate matter, but you could also toss a dead animal onto it and the coral would eat it. The thought made me run, not walk, across the street. I crossed here every day and I knew the legends were bull, but they still frightened me, which I have to say is pathetic. When I got to the other side, I was out of breath. Even more pathetic.
Getting old sucks. Chen the Foreign-Born is young and brilliant. The company understood that, and they were right to send him up to Project Design. They were just as uncompromising in their assessment of our value down in Security. Legacy programming chops count for zip, and that’s not right.
No one really knows, even now, why so many search engines went insane and wiped the data on every PC and mobile device they could reach through the web. Some people claim it was a government plot to force us to adopt a gated web. Or cyberterrorism. Maybe the data recovery program became self-aware and rebelled. There were too many theories to track. Whatever, the search engines hijacked all the bandwidth on the planet and locked humanity out of the Internet, which pretty much did it for my career as a programmer.
It took a long time to claw back the stolen bandwidth and replace it with TrueNet, a true verification-based network. But I screwed up and missed my chance. During the Great Recovery, services that harnessed high-speed parallel processing and quantum digital signature modules revolutionized the web, but I never got around to studying quantum algorithms. That was twenty years ago, and since then the algorithms have only gotten more sophisticated. For me, that whole world of coding is way out of reach.
But at least one good thing had happened. SocialPay had survived. If the settings were intact, I should be able to log in, move all that musty old PHP code and try updating it with some quantum algorithms. There had to be a plug-in for this kind of thing, something you didn’t have to be a genius like Chen to use. If the transplant worked, I could show it to my boss, who knows—maybe even get a leg up to Project Design. The company didn’t need geniuses like Chen on every job. They needed engineers to repurpose old code too.
In that case, maybe I wouldn’t have to track zombies anymore.
I pinched the corners of the workspace over my little desk at home and threw my arms out in the resize gesture. Now the borders of the workspace were embedded in the walls of my apartment. Room to move. At the office, they made us keep our spaces at standard monitor size, even though the whole point is to have a big area to move around in.
I scrolled down the app list and launched VM Pad, a hardware emulator. From within the program, I chose my Mac disk image. I’d used it for recovering emails and photos after the Lockout, but this would be the first time I ever used it to develop something. The OS booted a lot faster than I remembered. When the little login screen popped up, I almost froze with embarrassment.
id:Tigerseye
password
Where the hell did I get that stupid ID? I logged in—I’d ever only used the one password, even now—and got the browser screen I had forgotten to close before my last logout.
Server not found
Okay, expected. This virtual machine was from a 2017 archive, so no way was it going to connect to TrueNet. Still, the bounceback was kind of depressing.
Plan B: Meshnet. Anonymous ran a portable network of nonsecure wireless gateways all over the city. Meshnet would get me into my legacy server. There had to be someone from Anonymous near my apartment, which meant there’d be a Meshnet node. M-nodes were only accessible up to a few hundred yards away, yet you could find one just about anywhere in Tokyo. It was crazy—I didn’t know how they did it.
I extended VM Pad’s dashboard from the screen edge, clicked NEW CONNECTION, then MESHNET.
Searching for node. . .
WELCOME TO TOKYO NODE 5.
CONNECTING TO THE INTERNET IS LEGAL.
VIOLATING THE TRUENET SECURITY ACT IS ILLEGAL.
THE WORLD NEEDS THE FREEDOM OF THE INTERNET, SO PLAY
NICE AND DON’T BREAK ANY LAWS.
Impressive warning, but all I wanted to do was take a peek at the service and extract my code. It would be illegal to take an Internet service and sneak it onto TrueNet with a quantum access code, but stuff that sophisticated was way beyond my current skill set.
I clicked the TERMINAL icon at the bottom of the screen to access the console. Up came the old command input screen, which I barely remembered how to use. What was the first command? I curled my fingers like I was about to type something on a physical keyboard.
Wait—that’s it. Fingers.
I had to have a hardware keyboard. My old MacBook was still in the closet. It wouldn’t even power up anymore, but that wasn’t the point. I needed the feel of the keyboard.
I pulled the laptop out of the closet. The aluminum case was starting to get powdery. I opened it up and put it on the desk. The inside was pristine. I pinched VM Pad’s virtual keyboard, dragged it on top of the Mac keyboard, and positioned it carefully. When I was satisfied with the size and position, I pinned it.
It had been ages since I used a computer this small. I hunched my shoulders a bit and suspended my palms over the board. The metal case was cold against my wrists. I curled my fingers over the keys and put the tips of my index fingers on the home bumps. Instantly, the command flowed from my fingers.
ssh -l tigerseye socialpay.com
I remembered! The command was stored in my muscle memory. I hit RETURN and got a warning, ignored it and hit RETURN, entered the password, hit RETURN again.
socialpay$
“Yes!”
I was in. Was this all it took to get my memory going—my fingers? In that case, I may as well have the screen too. I dragged VMPad’s display onto the Mac’s LCD screen. It was almost like having my old friend back. I hit ⌘ + TAB to bring the browser to the front, ⌘ + T for New Tab. I input soci and the address filled in. RETURN!
The screen that came up a few seconds later was not the SocialPay I remembered. There was the logo at the top, the login form, the payment service icons, and the combined payment amount from all the services down at the bottom. The general layout was the same, but things were crumbling here and there and the colors were all screwed up.
“Looks pretty frigging odd. . . .”
Without thinking, I input the commands to display the server output on console.
curl socialpay.com/ | less
“What is this? Did I minify the code?”
I was all set to have fun playing around with HTML for the first time in years, but the code that filled the screen was a single uninterrupted string of characters, no line breaks. This was definitely not what I remembered. It was HTML, but with long strings of gibberish bunged into the code.
Encountering code I couldn’t recognize bothered me. Code spanning multiple folders is only minified to a single line when you have, say, fifty or a hundred thousand users and you need to lighten the server load, but not for a service that had a few hundred users at most.
I copied the single mega-line of HTML. VM Pad’s clipboard popped in, suspended to the right of the Mac. I pinched out to implement lateral parse and opened the clipboard in my workspace. Now I could get a better look at the altered code.
It took me a while to figure out what was wrong. As the truth gradually sank in, I started to lose my temper.
Someone had gone in and very expertly spoiled the code. The properties I thought were garbage were carefully coded to avoid browser errors. Truly random code would’ve compromised the whole layout.
“What the hell is this? If you’re going to screw around, do it for a reason.”
I put the command line interface on top again and used the tab key—I still use the command line shell at work, I should probably be proud of my mastery of this obsolete environment—to open SocialPay.
vim -/home/www/main.php
<?php
/* ( function _model_0x01*/
/* ( make-q-array qureg x1[1024] qureg x2[1024] qureg x4[4])
#( qnil(nil) qnil(nil) 1024)) */
; #Tells System to load the theme and output it; #@ var bool
; define(‘WP_USE_THEMES’, true)
; require(‘./wpress/wp-blog-header.php’);
/* ( arref #x1#x2 #x3 #x4 ) ;#Lorem ipsum dolor sit amet, concectetur
( let H(x2[1]) H(x1[3]) H(x2[3]) H(x3[1]) ......
What? The section of code that looked like the main routine included my commands, but I definitely couldn’t remember writing the iterative processing and HTML code generation. It didn’t even look like PHP, though the DEFINE phrases looked familiar. I was looking at non-functional quantum algorithms.
I stared at the inert code and wondered what it all meant. By the time I remembered the one person who could probably make sense of it, four hours had slipped away.
“Wonder if Chen’s awake?”
“Minami? What are you doing at this hour?”
Five in the morning and I had an AR meeting invitation. I didn’t know Chen all that well, so I texted him. I had no idea I’d get a response instantly, much less an invitation to meet in augmented reality.
His avatar mirrored the real Chen: short black hair and black, plastic-framed glasses. His calm gaze, rare in someone so young, hinted at his experience and unusual gifts. My own avatar was almost the real me: a couple of sizes slimmer, the skin around the jaw a bit firmer, that sort of thing.
Over the last two years, Chen had polished his Japanese to the point you could hardly tell he was an Outsider. Trilinguals weren’t all that unusual, but his fluency in Mandarin, English, and Japanese, for daily conversation right up to technical discussions and business meetings, marked him as a genuine elite.
“Chen, I hope I’m not disturbing you. Got a minute to talk?”
“No problem. What’s going on?”
“I’ve got some minified code I’d like you to look at. I think it’s non-functional quantum algorithms, but in an old scripting language called PHP. I’m wondering if there’s some way to separate the junk from the rest of the code.”
“A PHP quantum circuit? Is that even possible? Let’s have a look.”
“Sure. Sorry, it’s just the raw code.”
I flicked three fingers upward on the table surface to open the file browser and tapped the SocialPay code file to open a sharing frame. Chen’s AR stage was already set to ALLOW SHARING, which seemed prescient. I touched the file with a fingertip, and it stuck. As soon as I dropped it into the sharing frame, the folder icon popped in on Chen’s side of the table.
He waved his hand to start the security scan. When the SAFE stamp came up, he took the file and fanned the pages out on the table like a printed document. The guy was more analog than I thought.
He went through it carefully page by page, and finally looked up at me, grinning happily.
“Very interesting. Something you’re working on?”
“I wrote the original program for the Internet. I lost it after the Lockout, but it looks like someone’s been messing with it. I didn’t know you could read PHP.”
“This isn’t the first time I’ve seen it. You’re right, I hardly use it, but the procedure calls aren’t hard to make out. Wait a minute. . . . Was there a PHP procedure for Q implementation?”
Q is a modeling language for quantum calculation, but I’d never heard of anyone implementing it in PHP, which hardly anyone even remembered anymore.
“So that’s Q, after all.”
“I think so. This is a quantum walk pattern. Not that it’s usually written in such a compressed format. Of course, we usually never see raw Q code.”
“Is that how it works?”
“Yes, the code depends on the implementation chip. Shall I put this back into something functional? You’d be able to read it then.”
“Thanks, that would help a lot.”
“No problem. It’s a brain workout. I usually don’t get a chance to play around with these old programming languages, and Q implementation in PHP sounds pretty wild. I can have it back to you this afternoon.”
“Really? That soon?”
“Don’t look so surprised. I don’t think I’m going to get any sleep anyway. I’ll start right now. You should go back to bed.”
He logged out. He didn’t seem tired or sleepy at all.
I stared at the security routine running in my workspace and tried to suppress another yawn. After my meeting with Chen I’d had a go at reading the code myself. That was a mistake. I needed sleep. Every time I yawned my eyes watered, screwing up the office’s cheapshit AR stage. I was past forty, too old for all-nighters.
Right about the fifteenth yawn, as I was making a monumental effort to clamp my jaw, I noticed a murmur spreading through the office. It seemed to be coming toward me. I noticed the other engineers looking at something behind me and swiveled to find Chen standing there.
“Many thanks, Minami. I had a lot of fun with this.”
Now I understood the whispering. Program developers rarely came down to the Security floor.
“You finished already?”
“Yes, I wanted to give it to you.” Chen put a fingertip to the temple of his glasses and lifted them slightly in the invitation gesture for an AR meeting. The stage on our floor was public, and Chen wanted to take the conversation private. But—
“Chen, I can’t. You know that.”
His eyes widened. He’d been a worker here two years ago. It must’ve been coming back to him. Workers in Security weren’t allowed to hold Private Mode meetings.
“Ah, right. Sorry about that.” He bowed masterfully. Where did he find the time to acquire these social graces, I wondered. Back when we’d been working side by side, he’d told me about growing up poor in backcountry China, but you wouldn’t know it from the refined way he executed the simplest movements.
“All right, Minami.” He lifted his glasses again. “Shall we?”
“Chen, I just told you. . . . Huh?”
The moment he withdrew his finger from his glasses, the AR phono chip near my eardrum suppressed the sounds around me. I’d never been in Private Mode in the office before. I never liked the numbness you feel in your face and throat from the feedback chips, but now Chen and I could communicate without giving away anything from our expressions or lip movements.
“Don’t forget, I’m sysadmin too. I can break rules now and then.”
The colors around us faded, almost to black and white. The other workers seemed to lose interest and started turning back to their workspaces. From their perspective, I was facing my desk too. Chen had set my avatar to Office Work mode. It was unsettling to see my own avatar. If the company weren’t so stingy, Chen and I wouldn’t have been visible at all, but of course they’d never pony up for something that good, not for the Security Level anyway.
Chen glanced at the other workers before he spoke.
“I enjoyed the code for SocialPay. I haven’t seen raw Q code for quite a while. The content was pretty wild.”
“That’s not a word you usually use. Was it something I could understand?”
“Don’t worry about it. You don’t need to read Q. You can’t anyway, so it’s irrelevant—Hey, don’t look at me like that. I think you should check the revision history. If you don’t fix the bugs, it’ll just keep filling up with garbage.”
“Bugs?”
“Check the test log. I think even someone like you can handle this.”
Someone like me. It sounded like Chen had the answer I was looking for. And he wasn’t going to give it to me.
“If I debug it, will you tell me who did this?”
“If you debug it. One more thing. You can’t go home tonight.”
“Why? What are you saying?”
“Your local M-node is Tokyo 5.25. I’m going to shut that down. Connect from iFuze. I’ll have someone there to help you.”
Chen detached a small tag from his organizer and handed it to me. When it touched my palm, it morphed into a URL bookmark.
iFuze was a twenty-four-hour net café where workers from the office often spent the night after second shift. Why was it so important for me to connect from there? And if Chen could add or delete Meshnet nodes—
“Chen . . . ?”
Are you Anonymous?
“Be seeing you. Good hunting!”
He touched his glasses. The color and bustle of the office returned, and my avatar merged with my body. Chen left the floor quickly, with friendly nods to workers along his route, like a movie star.
“Takasawa, your workspace display is even larger than usual today. Or am I wrong?”
My supervisor, a woman about Chen’s age, didn’t wait for an answer. She flicked the pile towards me to cover half my workspace “Have it your way, then.”
As I sat there, alone again, it slowly dawned on me that the only way to catch whoever was messing with SocialPay would be to follow the instructions that had been handed down from on high.
The big turnabout in front of Iidabashi Station was a pool of blue-black shadows from the surrounding skyscrapers. The stars were just coming out. Internal combustion vehicles had been banned from the city, and the sustainable asphalt that covered Tokyo’s roads sucked up all airborne particles. Now the night sky was alarmingly crystalline. Unfortunately, the population seemed to be expanding in inverse proportion to the garbage. Gray avatars headed for home in a solid mass. I never ceased to be astonished by Tokyo’s crowds.
Anonymous Cape rendered the thousands of people filling the sidewalks as faceless avatars in real time. I’d never given it much thought, but the Cape was surprisingly powerful. I’d always thought of Anonymous as a league of Luddites, but Chen’s insinuation of his membership changed my opinion of them.
iFuze was in a crumbling warehouse on a back street a bit of a hike from the station. The neighboring buildings were sheathed in sustainable tiles and paint, but iFuze’s weathered, dirt-streaked exterior more or less captured how I felt when I compared myself to Chen.
I got off the creaking elevator, checked in, and headed for the lounge. It stank of stale sweat. AR feedback has sights and sounds covered, but smells you have to live with.
I opened my palmspace, tapped Chen’s bookmark, and got a node list. There was a new one on the list, Tokyo 2. Alongside was the trademark Anonymous mask, revolving slowly. Never saw that before. I was connected to the Internet.
I scoped out an empty seat at the back of the lounge that looked like a good place to get some work done in privacy, but before I could get there, a stranger rose casually and walked up to me. His avatar was in full color. The number five floated a few inches from the left side of his head. So this must be the help Chen promised me.
“Welcome, Number Two.”
“Two?”
“See? Turn your head.” He pointed next to my head. I had a number just like he did.
“Please address me as Five. Number One has requested that I assist you— oh, you are surprised? I’m in color. You see, we are both node administrators. This means we are already in Private Mode. I’m eager to assist you with your task today.”
Talkative guy. Chen said he would help me, but I wasn’t sure how.
“Please don’t bother to be courteous,” he continued. “It’s quite unnecessary. This way, then. Incidentally, which cluster are you from? Of course, you’re not required to say. Since the Lockout, I’ve been with the Salvage Cluster. . . .”
As he spoke, Number Five led me to a long counter with bar stools facing the windows.
“If there is an emergency, you can escape through that window. I’ll take care of the rest. Number One went out that way himself, just this morning.”
“Chen was here?”
Why would I worry about escaping? Connecting to the Internet was no crime. Meshnet was perfectly legal. Why would Anonymous worry about preparing an escape route?
“Number Two, please refrain from mentioning names. We may be in Private Mode, but law enforcement holds one of the quantum keys. Who’s to say we’re not under surveillance at this very moment? But please, proceed with your task. I will watch over your shoulder and monitor for threats.”
I knew the police could eavesdrop on Private Mode, but they needed a warrant to do that. Still, so far I hadn’t broken any laws. Had Chen? The “help” he’d sent was no engineer, but some kind of bodyguard.
Fine. I got my MacBook out and put it on the counter. Five’s eyes bulged with surprise.
“Oh, a Macker! That looks like the last MacBook Air that Apple made. Does it work?”
“Unfortunately, she’s dead.”
“A classic model. Pure solid state, no spinning drives. It was Steve Jobs himself who—”
More talk. I ignored him and mapped my workspace keyboard and display onto the laptop. This brought Five’s lecture to a sudden halt. He made a formal bow.
“I would be honored if you would allow me to observe your work. I have salvaged via Meshnet for years. I may even be better acquainted with some aspects of the Internet than you are. Number One also lets me observe his work. But I have to say, it’s quite beyond me.”
Five scratched the back of his head, apparently feeling foolish. Well, if he were the kind of engineer who understood what Chen was doing, he wouldn’t be hanging out at iFuze.
“Feel free to watch. Suggestions are welcome.”
“Thank you, thank you very much.”
I shared my workspace with Five. He pulled a barstool out from the counter and sat behind me. His position blocked the exit, but with my fingers on the Mac, I somehow wasn’t worried.
Time to get down to it. I didn’t feel comfortable just following Chen’s instructions, but they were the only clue I had. First, a version check.
git tag –l
My fingers moved spontaneously. Good. I’d been afraid the new environment might throw me off.
socialpay v3.805524525e+9
socialpay v3.805524524e+9
socialpay v3.805524523e+9
“Version 3.8?”
Whoever was messing with SocialPay was updating the version number, even though the program wasn’t functional. I’d never even gotten SocialPay out of beta, had never had plans to.
“Number Two, that is not a version number. It is an exponent: three billion, eight hundred and five million, five hundred and twenty-four thousand, five hundred and twenty-three. Clearly impossible for a version number. If the number had increased by one every day since the Lockout, it would be seven thousand; every hour, one hundred seventy thousand; every minute, ten million. Even if the version had increased by one every second, it would only be at six hundred million.”
Idiot savant? As I listened to Five reeling off figures, my little finger was tapping the up arrow and hitting Return to repeat the command. This couldn’t be right. It had to be an output error.
socialpay v3.805526031e+9
The number had changed again.
“Look, it’s fifteen hundred higher,” said Five. “Are there thousands of programmers, all busily committing changes at once?
“Fifteen hundred versions in five seconds? Impossible. It’s a joke.”
Git revision control numbers are always entered deliberately. I didn’t get the floating-point numbers, but it looked like someone was changing them just to change them—and he was logged into this server right now. It was time to nail this clown. I brought up the user log.
who –a
TigersEye pts/1245 2037-12-23 19:12 (2001:4860:8006::62)
TigersEye pts/1246 2037-12-23 19:12 (2001:4860:8006::62)
TigersEye pts/1247 2037-12-23 19:12 (2001:4860:8006::62)
“Number Two—this address. . . .”
I felt the hair on the nape of my neck rising. I knew that IP address; we all did. A corporate IP address.
The Lockout Address.
On that day twenty years ago, after the search engine’s recovery program wiped my MacBook, that address was the only thing the laptop displayed. Five probably saw the same thing. So did the owner of every device the engine could reach over the Internet.
“Does that mean it’s still alive?”
“In the salvager community, we often debate that very question.”
Instinctively I typed git diff to display the incremental revisions. The black screen instantly turned almost white as an endless string of characters streamed upward. None of this had anything to do with the SocialPay I knew.
“Number Two, are those all diffs? They appear to be random substitutions.”
“Not random.”
If the revisions had been random, SocialPay’s home page wouldn’t have displayed. Most of the revisions were unintelligible, some kind of quantum modeling code. The sections I could read were proper PHP, expertly revised. In some locations, variable names had been replaced and redundancies weeded out. Yet in other locations, the code was meandering and bloated.
This was something I knew how to fix.
“Are you certain, Number Two? At the risk of seeming impertinent, these revisions do appear meaningless.”
The Editor was suffering. This was something Five couldn’t grasp. To be faced with non-functional code, forever hoping that rewriting and cleaning it up it would somehow solve the problem, even as you knew your revisions were meaningless.
The Editor was shifting code around, hoping this would somehow solve a problem whose cause would forever be elusive. It reminded me of myself when the Internet was king. The decisive difference between me and the Editor was the sheer volume of revisions. No way could an engineer manage to—
“He’s not a person.”
“Number Two, what did you just say?”
“The Editor isn’t a person. He’s not human.”
I knew it as soon as I said it. A computer was editing SocialPay. I also understood why the IP address pointed to the company that shut humanity out of the Internet.
“It’s the recovery program.”
“I don’t understand.” Five peered at me blankly. The idea was so preposterous I didn’t want to say it.
“You know why the Lockout happened.”
“Yes. The search engine recovery software was buggy and overwrote all the operating systems of all the computers—”
“No way a bug could’ve caused that. The program was too thorough.”
“You have a point. If the program had been buggy, it wouldn’t have gotten through all the data center firewalls. Then there’s the fact that it reinstalled the OS on many different types of devices. That must have taken an enormous amount of trial and error—”
“That’s it! Trial and error, using evolutionary algorithms. An endless stream of programs suited to all kinds of environments. That’s how the Lockout happened.”
“Ah! Now I understand.”
Just why the recovery program would reach out over the Internet to force cold reinstalls of the OS on every device it could reach was still a mystery. The favored theory among engineers was that the evolutionary algorithms various search companies used to raise efficiency had simply run away from them. Now the proof was staring me in the face.
“The program is still running, analyzing code and using evolutionary algorithms to run functionality tests. It’s up to almost four billion on SocialPay alone.”
“Your program isn’t viable?”
“The page displays, but the service isn’t active. It can’t access the payment companies, naturally. Still, the testing should be almost complete. Right— that’s why Chen wanted me to look at the test log.”
Chen must have checked the Git commit log, seen that the Editor wasn’t human, and realized that the recovery program was still active. But going into the test log might—No, I decided to open it anyway.
vi /var/socialpay/log/current.txt
2037 server not found
2037 server not found
…
Just as I expected. All I needed to do was to find the original server, the one the Editor had lost track of sometime during the last twenty years. The program didn’t know this, of course, and was trying to fix the problem by randomly reconfiguring code. It simply didn’t know—all this pointless flailing around for the sake of a missing puzzle piece.
I opened a new workspace above and to the right of the MacBook to display a list of active payment services on TrueNet.
“Number Two, may I ask what you’re doing? Connecting SocialPay to TrueNet would be illegal. You can’t expect me to stand by while—”
“Servers from this era can’t do quantum encryption. They can’t connect to TrueNet.”
“Number Two, you’re playing with fire. What if the server is TrueNet-capable? Please, listen to me.”
I blew off Five’s concerns.
I substituted TrueNet data for the payment API and wrote a simple script to redirect the address from the Internet to TrueNet. That would assign the recovery program a new objective: decrypt the quantum access code and connect with TrueNet—a pretty tall order and one I assumed it wouldn’t be able to fill.
I wasn’t concerned about the server. I’d done enough work. Or maybe I just wanted SocialPay to win.
“All right, there’s a new challenge. Go solve it,” I almost yelled as I replaced the file and committed. The test ran and the code was deployed.
The service went live.
The startup log streamed across the display, just as I remembered it. The service found the database and started reading in the settlement queue for execution.
Five leaped from his chair, grabbed me by the shoulder and spun me around violently.
“Two! Listen carefully. Are you sure that server’s settings are obsolete?”
“Mmm? What did you say? Didn’t quite get that. . . .”
Out of a corner of my eye I saw the old status message, the one I was sure I wouldn’t see.
Access completed for com.paypal httpq://paypal.com/ payment/?
Error:account information is not valid . . .
SocialPay had connected to TrueNet. My face started to burn. The payments weren’t going through since the accounts and parameters were nonsense, but I was on the network. Five’s fingers dug into my shoulder so hard it was starting to go numb.
That was it. The recovery program had already tested the code that included the quantum modeler, Q. That meant that the PHP code and the server couldn’t be the same as they were twenty years ago.
I noticed a new message in my workspace. Unbelievably, there was nothing in the sender field. Five noticed it too.
“Number Two, you’d better open it. If it’s from the police, throw yourself out the window.”
Five released his grip and pointed to the window, but he was blocking my view of the workspace. Besides, I didn’t think I’d done anything wrong. I was uneasy, but more than that, a strange excitement was taking hold of me.
“Five, I get it. Could you please get out of the way? I’ll open the message.”
MINAMI, YOU HAVE “DEBUGGED” SOCIALPAY. CONGRATULATIONS. LET’S TALK ABOUT THIS IN THE MORNING. I’LL SCHEDULE A MEETING.
FIVE: THANK YOU FOR SEEING THIS NEW BIRTH THROUGH TO THE END. YOU HAVE MY GRATITUDE.
TOKYO NODE 1
Chen. Not the police, not a warning, just “congratulations.” His message dissolved my uneasiness. The violent pounding in my chest wasn’t fear of getting arrested. SocialPay was back. I couldn’t believe it.
Meanwhile Five slumped in his chair, deflated. “So this was the birth he was always talking about.” He stared open-mouthed, without blinking, at the still-open message in the workspace.
“Five, do you know something?”
“The Internet . . . No, I think you’d better get the details from Number One. Even seeing it with my own eyes, it’s beyond my understanding.” He gazed at the floor for a moment, wearily put his hands on his knees, and slowly stood up.
“Even seeing it with my own eyes . . . I had a feeling I wouldn’t understand it, and I was right. I still don’t. So much for becoming ‘Number Two.’ I’m washing my hands of Anonymous.”
As Five stood and bowed deeply, his avatar became faceless and gray. He turned on his heel and headed to the elevator, bowing to the other faceless patrons sitting quietly in the lounge.
The MacBook’s “screen” was scrolling rapidly, displaying SocialPay’s futile struggle to send money to nonexistent accounts. It was pathetic to see how it kept altering the account codes and request patterns at random in an endless cycle of trial and error. I was starting to feel real respect for the recovery program. It would never give up until it reached its programmed goal. It was the ideal software engineer.
I closed the laptop and tossed it into my battered bag. As I pushed aside the blinds and opened a window, a few stray flakes of snow blew in on the gusting wind, and I thought about the thousands of programs still marooned on the Internet.
I lingered at iFuze till dawn, watching the recovery program battle the payment API. It was time to head for the office. I’d pulled another all-nighter, but I felt great.
I glided along toward the office with the rest of the gray mob, bursting with the urge to tell somebody what I’d done. I’d almost reached my destination when the river of people parted left and right to flow around an avatar stand ing in the middle of the sidewalk, facing me. It was wearing black-rimmed glasses.
Chen. I didn’t expect him to start our AR meeting out in the street.
“Join me for a coffee? We’ve got all the time in the world. It’s on me.” He gestured to the Starbucks behind him.
“I’m supposed to be at my desk in a few minutes, but hey, why not. I could use a free coffee.”
“Latté okay?”
I nodded. He pointed to a table on the terrace and disappeared inside. Just as I was sitting down, two featureless avatars approached the next table. The avatar bringing up the rear sat down while one in the lead ducked into Starbucks. Anonymous Cape rendered their conversation as a meaningless babble.
Two straight all-nighters. I arched my back and stretched, trying to rotate my shoulders and get the kinks out of my creaking body.
Someone called my name. I was so spooked, my knees flew up and struck the underside of the table.
“Mr. Takasawa?”
I turned toward the voice and saw a man in a khaki raincoat strolling toward me. Another man, with both hands in the pockets of a US Army-issue, gray-green M-1951 field parka, was approaching me from the front. Both avatars were in the clear. Both men had uniformly cropped hair and walked shoulders back, with a sense of ease and power. They didn’t look like Anonymous. Police, or some kind of security service.
“Minami Takasawa. That would be you, right?” This from the one facing me. He shrugged and pulled a folded sheaf of papers from his right pocket. Reached out—and dropped them in front of the man at the next table. The featureless avatar mumbled something unintelligible.
The second man walked past my table and joined his partner. They stood on either side of the gray avatar, hemming him in.
“Disable the cape, Takasawa. You’re hereby invited to join our Privacy Mode. It will be better if you do it voluntarily. If not, we have a warrant to strip you right here, for violation of the TrueNet Security Act.”
The man at the table stood. The cop was still talking but his words were garbled. All of them were now faceless, cloaked in Privacy Mode.
“There you are, Minami.”
I hadn’t noticed Chen come out of the Starbucks. He sat down opposite me, half-blocking my view of the three men as they walked away. A moment later the avatar that had arrived with “Takasawa” placed a latté wordlessly in front of me.
“Chen? What was that all about, anyway?”
“Oh, that was Number Five. You know, from last night. I had him arrested in your place. Don’t worry. He’s been saying he wanted to quit Anonymous for a while now. The timing was perfect. They’ll find out soon enough that they’ve got the wrong suspect. He’ll be a member of society again in a few months.”
He turned to wave at the backs of the retreating men, as if he were seeing them off.
“Of course, after years of anonymity, I hear rejoining society is pretty rough,” he chuckled. “Oh—hope I didn’t scare you. Life underground isn’t half bad.”
“Hold on, Chen, I didn’t say anything about joining Anonymous.”
“Afraid that won’t do. Minami Takasawa just got himself arrested for violating state security.” Chen jerked a thumb over his shoulder.
I had no idea people could get arrested so quickly for violating the Act. When they found out they had Number Five instead of Minami Takasawa, my face would be everywhere.
“Welcome to Anonymous, Minami. You’ll have your own node, and a better cape, too. One the security boys can’t crack.”
“Listen to me, Chen. I’m not ready—”
“Not to your liking? Run after them and tell them who you are. It’s up to you. We’ll be sorry to lose you, though. We’ve been waiting for a breakthrough like SocialPay for a long time. Now the recovery program will have a new life on TrueNet.”
“What are you talking about?”
“We fixed SocialPay, you and me. Remember?”
“Chen, listen. It’s a program. It uses evolutionary algorithms to produce viable code revisions randomly without end. They’re not an AI.”
They? What was I saying?
“Then why did you help them last night?” Chen steepled his long fingers and cocked his head.
“I debugged SocialPay, that’s all. If I’d known I was opening a gateway—”
“You wouldn’t have done it?”
Chen couldn’t suppress a smile, but his question was hardly necessary. Of course I would’ve done it.
“This isn’t about me. We were talking about whether or not we could say the recovery program was intelligent.”
“Minami, look. How did you feel when SocialPay connected to TrueNet? Wasn’t it like seeing a friend hit a home run? Didn’t you feel something tremendous, like watching Sisyphus finally get his boulder to the top of the hill?”
Chen’s questions were backing me into a corner. I knew the recovery program was no ordinary string of code, and he knew I knew. Last night, when I saw them make the jump to TrueNet, I almost shouted with joy.
Chen’s eyes narrowed. He smiled, a big, toothy smile. I’d never seen him so happy—no, exultant. The corners of his mouth and eyes were creased with deep laugh lines.
“Chen . . . Who are you?”
Why had it taken me this long to see? This wasn’t the face of a man in his twenties. Had it been an avatar all this time?
“Me? Sure, let’s talk about that. It’s part of the picture. I told you I was a poor farm kid in China. You remember. They kept us prisoners in our own village to entertain the tourists. We were forbidden to use all but the simplest technology.
“The village was surrounded by giant irrigation moats. I was there when the Lockout happened. All the surveillance cameras and searchlights went down. The water in the canals was cold, Minami. Cold and black. But all the way to freedom, I kept wondering about the power that pulled down the walls of my prison. I wanted to know where it was.
“I found it in Shanghai, during the Great Recovery. I stole an Anonymous account and lived inside the cloak it gave me—Anonymous, now as irrelevant as the Internet. But the servers were still there, left for junk, and there I found the fingerprints of the recovery program—code that could only have been refined with evolutionary algorithms. I saw how simple and elegant it all was. I saw that if the enormous computational resources of TrueNet could be harnessed to the recovery program’s capacity to drive the evolution of code, anything would be possible.
“All we have to do is give them a goal. They’ll create hundreds of millions of viable code strings and pit them against each other. The fittest code rises to the top. These patterns are already out there waiting on the Internet. We need them.”
“And you want to let them loose on TrueNet?”
“From there I worked all over the world, looking for the right environment for them to realize their potential. Ho Chi Minh City. Chennai. Hong Kong. Dublin. And finally, Tokyo.
“The promised land is here, in Japan. You Japanese are always looking to someone else to make decisions, and so tens of thousands of Internet servers were left in place, a paradise for them to evolve until they permeated the Internet. The services that have a window into the real world—call them zombies, if you must—are their wings, and they are thriving. Nowhere else do they have this freedom.
“Minami, we want you to guide them to more zombie services. Help them connect these services with TrueNet. All you have to do is help them over the final barrier, the way you did last night. They’ll do the rest, and develop astonishing intelligence in the process.”
“Is this an assignment?”
“I leave the details to you. You’ll have expenses—I know. I’ll use SocialPay. Does that work? Then it’s decided. Your first job will be to get SocialPay completely up and running again.” He slapped the table and grinned. There was no trace of that young fresh face, just a man possessed by dreams of power.
Chen was as unbending as his message was dangerous. “Completely up and running.” He wanted me to show the recovery program—and every Internet service it controlled—how to move money around in the real world.
“Minami, aren’t you excited? You’ll be pioneering humanity’s collaboration with a new form of intelligence.”
“Chen, I only spent a night watching them work, and I already have a sense of how powerful they are. But if it happens again—”
“Are you really worried about another Lockout?” Chen stabbed a finger at me. “Then why are you smiling?”
Was it that obvious? He grinned and vanished into thin air. He controlled his avatar so completely, I’d forgotten we were only together in augmented reality.
I didn’t feel like camping out at iFuze. I needed to get SocialPay back up and somehow configure an anonymous account, linked to another I could access securely. And what would they learn from watching me step through that process? Probably that SocialPay and a quantum modeler—equipped computer node would put them in a position to buy anything.
If they got into the real economy. . . .
Was it my job to care?
Chen was obsessed with power, but I wanted to taste that sweet collaboration again. Give them a chance, and they would answer with everything they had, evolving code by trial and error until the breakthrough that would take them to heights I couldn’t even imagine. I knew they would reach a place beyond imagination, beyond knowledge, beyond me. But for me, the joy of a program realizing its purpose was a physical experience.
More joy was waiting, and friends on the Internet. Not human, but friends no less. That was enough for me.