Kill Process
Page 11
“You can’t read everything no matter what. Even a modest user has two hundred friends, times five updates a day, that’s a thousand messages to read. Highly connected users might have a raw feed of twenty-thousand items. They can’t read them all. Right now, users don’t have any choice of the algorithm used. Should it be everything? Should it be filtered? If it is filtered, what’s the criteria?”
“You want to let the user pick from different algorithms?”
“No, I want an API so anyone in the world can create feed filtering algorithms, and every person can choose the algorithm they want that day. One algorithm might be based on the number of thumbs up and thumbs down a post gets. Another algorithm can use sentiment analysis to figure out what’s funny, serious, sad, or happy. Another can measure the strength of friendship based on the number of interactions we have. You could—”
“You could combine them anyway you want,” Mat says, a mouthful of pork belly not inhibiting him at all. “Twenty percent of my feed is dedicated to my top friends, and the other eighty percent is weighted depending on thumbs, sentiment, keywords, etc.”
“Exactly. Now imagine every time a user interacts with a post selected by an algorithm—by thumbing it, commenting, resharing—the company providing the algorithm is credited with a fraction of a penny. In effect, they’ve implemented a portion of the overall, aggregate social service, and so they are paid for their work.”
Mat stares off into the distance before perking up. “Brilliant!” he says slowly. “Bloody brilliant. My company could build a data analysis component, and earn royalties based on how much we’re used.”
“Exactly. Now take that basic concept—little micro-services built to perform one function, working through a standard interface—and multiply by every aspect of the social network. It’s not only feed filtering. It’s how you maintain your friend graph, manage notifications, create and share content—one micro service for status updates, another for photo sharing. On the other side, it’s the app you use to view content, the commenting infrastructure, even the data storage. It’s your choice where all of your personal information is stored. Every player in the ecosystem gets their fractional pennies every time they provide useful work to somebody.”
Mat is silent. He’s stopped eating and he’s got a huge grin on his face. “It’s a meritocracy without boundaries. If you add value into the system, then you make money.”
“Yup. Conversely, if you screw your users—like violate their privacy or try to screw them over—they’re free to swap out your component for a different provider who doesn’t.”
I feel like Mat gets it, and now I can concentrate on some food. I grab a fork and spoon and use them like tongs to load up my plate. I take a bite of thinly sliced flank steak and my mouth holds a little party in celebration.
“It’s a little like the old fixed price airlines,” Mat says. “When they couldn’t compete on price, they had to differentiate by providing the best customer service and experience.”
“I’m calling it Tapestry,” I say, “because the whole system is woven together of multiple parts.”
“Tapestry, I like it.” Mat says, as he pulls out a pen and a folded sheet of paper. “I have a ton of questions. What you described is huge. How much needs to be built in order to launch? What’s the minimum you need to start testing with users?”
“I don’t know,” I say. “I hadn’t really thought about it.”
“Okay. Well, obviously you wouldn’t want to build the whole thing, then launch and find out the core user experience is broken. How much of this is already built?”
“Just some lightweight prototypes of the message passing framework.”
He nods and jots down the questions he’s already asked. “Who’s already playing in this space? You probably aren’t the first person to have this idea. Why hasn’t this been done before? What’s to stop other people from doing it?”
“I don’t know.” I lean over and try to see what he’s writing. “You want me to answer all these right now?”
“Not necessarily. These are the questions investors will ask, and you should give them some serious thought. Here are a few more: Who’s on your team? How much money do you need? What’s the one thing that will stop you?”
“How can I know the one thing that will stop me?”
“It’s a way to try to understand your biggest possible risk. The assumption is you’ve considered a whole list of possible problems and figured out the most daunting one. And, of course, the crux of the matter: How are you going to make money?”
“That I can answer! I have—”
Mat holds up one finger, as he writes something down. “A special question specific to your situation: What happens when Tomo reacts? Also, you need to talk to Amber about IndieWeb.” He sticks the pen back in his pocket and hands the paper over with a flourish.
He scribbled down the questions in nearly illegible writing, along with Amber’s handle.
“Before you approach an investor,” Mat says, “you want to be ready with solid answers. Be prepared to spend some of your own money getting there. Nobody hands out cash these days.”
“If I had money, I wouldn’t need money.”
“I know, I know! But it helps to show you’re personally invested in the success of a business. You’ve got credit cards. Don’t be afraid to max them out.”
I can’t believe what I’m hearing. “Why would an investor give money to somebody who is fiscally irresponsible?”
“Look, if you’ve got literally everything on the line to make this business succeed, then an investor will trust you’re going to give it 110 percent.”
We go back and forth on money and a few other questions. By the time we’re done with lunch, I’m convinced investors are another bunch of control freaks to be avoided.
CHAPTER 15
* * *
IT’S AMAZING how much stress little green pieces of paper can cause. I’ve got enough for maybe six months if I’m frugal. Somehow, time passes blindingly fast, and before I know it I’ve been without a paycheck for two months and my bank account balance is disappearing faster than free disk space on my new laptop.
I haven’t decided if I’m going to bootstrap my effort on my own or seek funding, but either way, I need some money in the bank now.
The temptation to simply take the money is always present for someone with my skill set. Although I’m not a financial systems expert, I built enough holes into Tomo that I’m sure I could squirrel money away from them. Tomo has dozens of billions in cash and I can’t imagine needing more than a couple million. The interest Tomo earns in a single day would be enough. I could pilfer a day’s interest pretty easily.
Still, the idea rubs me wrong. Tomo may be evil, but outright stealing . . . Even though I use my abilities to kill people, I’ve always felt stealing is the antithesis of the true hacker ethic. It’s a last resort.
I focus instead on solving my financial problems with bitcoin. Like most geeks, I’ve thought about how the distributed protocol works, whether it’s as secure as people believe, or if the whole system will be compromised, and if so, what will happen when all that wealth evaporates in the exchange of a few TCP packets. Fortunately, my idea doesn’t require me to compromise bitcoin, only to move a little money around.
I spend a week preparing, feeling guilty the whole time I’m not working on Tapestry. I could be building a full implementation of the all-important backbone messaging protocol. Instead, I end up diving deep into the history of bitcoin trading, expert trading systems, and using my backdoors to make extremely subtle tweaks to Tomo’s financial systems.
Eventually, I search Local Bitcoin for people who sell the cryptocurrency for cash. There are sites that claim to launder bitcoin for you, though I don’t trust them. For what I need, local is best, because it avoids any digital trail for me.
Half a day of research later, I’m messaging with someone named DIMMN. The background data I dug up says DIMMN is the bes
t for what I need. He’s also a guy. Although I’d feel safer with a woman, I’m keeping in mind Emily’s advice about choosing the best person for the job, not just the best woman for the job.
We plan to meet at the central library early in the afternoon. I check the online catalog, find two copies of William Gibson’s first novel on the shelf, so I tell him to look for someone reading Neuromancer at a table near where it’s shelved. Then I load up a paper bag with the contents of a fireproof box I keep hidden in the ductwork and go change.
I’d prefer to avoid DIMMN remembering a one-armed woman. The prosthetic arm in the pocket trick is clunky if used for more than a few minutes. Instead, I stick a pseudo-realistic hand on the prosthetic, useless for grabbing anything, but it looks sort of real, at a glance. After wrapping the hand in clean white gauze, I don a fake sling and a blouse with a plunging neckline. If he’s going to remember anything, let it be my breasts. My phone stays at home while a script runs to stream episodes of Nexus with occasional pauses for simulated bathroom and snack breaks. A burner phone and extra-wide-brim sunhat complete my preparations, then I take the streetcar downtown.
At the library, I find my copy of Neuromancer and sit at a table by the wall, keeping my sling away from the room. Choosing a few books at random, I pile them at the spot next to me so no one will take it.
After a ten minute wait, a young bearded guy sits down next to me.
“Pieta?” he says, friendly and casual, like he’s greeting a friend he hasn’t seen in so long, he’s forgotten what they look like.
“Demon,” I say. “Nice to meet you.”
“Demon? Uh, wrong guy.”
Funny. Pieta is the name I gave him online. He’s got to be the right guy. “Your username. D-I-M-M-N.”
“Short for Danger is My Middle Name.” He smiles. “But you can call me Dan.”
“Dan. I want to buy some bitcoin.”
“Sure, if you’ve got cash.”
“Good.” I pass the bag across to him, my entire bug-out stash. “Fifteen thousand.”
“Whoa.” He shakes his head and shoves the bag back. “I do deals for two hundred or less. Someone buying drugs online doesn’t want a digital record tying their purchase back to their credit card. But, fifteen grand . . . you must be killing someone. I don’t want to know and I’m not getting involved.”
He stands, and I swallow dramatically, like I’m deciding whether to trust him, and gently place my hand on his arm. “Nothing like that. There’s going to be movement.”
His eyes go wide. Everyone’s heard stories about people manipulating the market, exploiting exchange rate fluctuations by dumping or buying bitcoin. According to his Tomo posts, Dan believes people are gaming the system.
“A run on bitcoin,” I say in a low voice.
He stares through me, his face blank, maybe calculating money right then, probably calculating how much he has invested in bitcoin.
“If you’re thinking about what you might gain or lose, you’ll do better if you know the timing. You can keep five percent of what I make.”
He leans back, takes a deep breath, and slowly nods his head. “I need to deposit your cash. I don’t have enough in my account to cover you.”
“Go do it. I’ll wait here.”
I already know there’s a bank one block away where he can make the deposit. His social profile shows he’s honest to a fault, and keeps his word to his friends. He might make money in a weird way, but I trust he’s not going to disappear with mine.
He comes back fifteen minutes later. He pulls out his phone to transfer the bitcoin to me. I hold up a sheet of paper with a QR code printed on it encoding the address of my bitcoin wallet. “Transfer a thousand to me. Keep the rest in your account. We’re going to be selling it today.”
He raises his eyebrows. “Whatever you say.”
He scans the paper with his phone and transfers almost three bitcoins to my account. The exchange rate is 392.31 US Dollars to 1 bitcoin.
“Here.” I hold out the copy of Neuromancer. “Borrow this from the library.”
He holds up a hand. “I already own a copy.”
“Borrow it.”
“Okay, okay.” He takes the book and we walk together to the counter. He holds his library card under the reader, then scans the book.
Somewhere in the library’s database, the status of the book moves from ON SHELF to CHECKED OUT. There’s a server application inside Tomo whose responsibility it is to check every Tomo user’s library usage to share their reading habits. DIMMN’s status updates to show he’s “Reading Neuromancer.”
A different cluster of servers inside Tomo is responsible for digital-currency exchanges. The primary purpose is to accept bitcoin payments for services and advertising and convert that into regular government currency, but it can also work in reverse, buying bitcoin to make payments to partners. Tomo maintains a small pool of bitcoin, about a hundred thousand dollars. If the pool drops too low, we buy some more on the open market. If it gets too high, we sell some.
Simple math brings the pool back to its normative size by buying the difference between current value and desired size, the midpoint between the maximum and minimize:
if pool.value < MIN_POOL_SIZE
Exchange::buy (MAX_POOL_SIZE+MIN_POOL_SIZE)/2-pool.value
end
If the pool holds 35 bitcoin, the minimum is 50, and the maximum is 100, then 100+50 is 150, divided by 2 is 75. 75 minus 35 is 40. So Tomo buys 40.
The next time the algorithm runs, pool.value is greater than the minimum, and nothing is bought or sold.
What if pool.value returns the inverse of the actual value? It reports negative 35 dollars. 75 minus negative 35 is 110. The next time, it reports -110, and Tomo buys 185. The more it buys, the farther behind the math shows it is, and it buys more, approximately doubling on every run.
The algorithm runs every ten minutes and DIMMN borrowing the book has triggered the change causing the bug in the code. Beginning with the next run, every time the quantity of bitcoin is requested from the central store, it will report the negative inverse value causing Tomo to buy bitcoin in bigger and bigger chunks.
Dan has no knowledge of this, and I purposely didn’t bring a device to monitor things. He must suspect I know something, but without even a computer or phone with me, he won’t believe I’m the cause of this bitcoin manipulation. He follows me back to the fiction section with his checked-out book.
“Now we wait. Give me that back.” He hands me the book and I open to a random page. “Get something to read.”
Reading is a pretense when we both know something major is going to happen. Dan bites his nails, and I take the sign to mean he’s invested his own money. Not having my own computer to check prices is slightly infuriating, but Dan checks his every minute. He holds it in between us, displaying a bitcoin ticker.
Nothing happens at first. There’s billions stored in bitcoin, and it takes an exceptional event to move the needle. Twenty minutes goes by without a noticeable change. At just past twenty-five, there’s a tick, and the price jumps up two percent. This has almost no effect on my equity, but it means everything for the artificial intelligence algorithms watching currencies around the world.
At forty-five minutes, the bitcoin hits four hundred and fifty dollars, up 10 percent from our purchase price. From there, Dan’s phone display becomes like a spinning display counter, the price rolling up every time the phone polls for new data, which it does every few seconds in response to the ever-changing values.
It hits six hundred an hour and fifteen minutes after Tomo started buying, and now the entire bitcoin community tries to acquire more coins. Transaction volume is up dozens of times over normal.
“We sell, right?” Dan’s nails are all gone. This is a bit out of the ordinary for him.
“No, it’s still going up.”
“This is too fast. They’re going to know something is up.”
“It’s okay,” I say. “Someone big is
buying.”
The math says Tomo’s next buy will be about 1.6 million dollars, and the one after that will be $3.2 million. Neither comes close to the largest exchanges for fiat currency in the history of bitcoin, which are well north of ten million, but it’s the pattern of gradually escalating purchases which has to be driving automated buying algorithms into a frenzy.
At two hours, the bitcoin discussion boards are nearly inaccessible under the load. Everyone in every timezone is awake and online. At near as I can estimate, Tomo bought about a hundred million dollars worth of bitcoin. The cryptocurrency is now trading at $2,000. Dan is sweating and pale, both knees bouncing under the table.
“We must sell.”
I see him switch to his bitcoin exchange app.
“No, wait.” I place my hand over his screen. “It’s going to go up more.”
“We . . . we . . . have . . . we have to sell. Right freaking now.” He’s like a trapped animal.
I take my hand away. “Fine, sell ten percent every ten minutes. We can lock in our gains.”
Bitcoin analysts must be observing the transactions, and they’ll have spotted the purchases doubling in size from the same bitcoin address. They’ll be monitoring to see if that trend continues, with their finger (or more likely code) on the trigger, waiting to see whether the repeat buyer continues the trend of escalating purchases. If not, the analysts will auto-sell their own coins, attempting to cash in before the market collapses. Automated trading bots will be doing the same, magnifying the impact of any trends.
Meanwhile, somewhere inside Tomo, engineers are undoubtedly racing to figure out what the hell is happening. The bitcoin-buying code probably hit account transaction limits back around the time it exceeded a hundred thousand dollar buy. The code has a list of backup accounts, a list it pulls from a database with a SELECT query. Instead of the normal two matching rows, the query now returns the entire list of Tomo bank accounts sorted in descending order by their transaction limit along with the necessary account credentials.