Nigel’s interface was so cluttered he almost missed the window. Freeman had set up a private room in the Colossal Machine that would give them a few minutes of privacy before the connection could be traced. Freeman was accusing Nigel of something insidious, and he needed to find out what it was. He had a gnawing suspicion that it was related to Dahlia’s hack. Nigel accepted the invite and put on his portable visor. Moments later, he was standing atop a deck high above a city he recognized.
Is that Parousia?
Paraousia was a virtual in-game city that Freeman had terrorized when Jet was giving Nigel a tour of the city. Nigel had been impressed at the time, but that seemed long ago.
“There you are,” a whiny voice said.
Nigel followed the gaze to a burly guard with a broadsword heavy enough to need two men to wield. The image was wrong. The voice was more suited to a court jester, not this burly beast before him.
“Freeman?”
The burly avatar smiled.
“I see what you as weak as ever. What is that? Leather armor?”
Nigel ignored the slight. He had no intention of splitting hairs when time was so short.
“What are you blaming me for this time?” he said to Freeman.
The burly avatar’s imposing figure slumped and looked down like a confused kid.
“The main wallet for the cabal got hacked.”
Someone beat me to it. D is going to be pissed.
“How is that possible?” Nigel asked.
“I don’t know. That’s why I called you in here. We have thirty minutes to figure it out before we’re screwed. The cabal is already annoyed.”
This novel's true home is a different platform. Support the author by finding it there.
“What’s the wallet funding?”
Freeman’s avatar looked unsure.
“The cabal is offering bounties to people. But the hunters will not pay if the wallets are wiped.”
“Show me the code for the DAO.”
With a few virtual swipes, Freeman displayed pages of PSnake and Solidchain code. Both worked together to provide the decentralized interface that made it possible to make Freeman’s app work with the main blockchain, also called the mainnet. Nigel examined the code and raised a virtual hand.
“I think I found the problem.”
“I doubt it, but go on,” Freeman said dismissively.
His arrogance blinds him.
“Did you perform bounds checking on the code?” Nigel asked.
“Yes, I checked it several times, and it’s solid.”
“I noticed a problem with the transfer function,” Nigel said.
“The code logic is solid,” Freeman insisted.
“You don’t read much, do you?”
“What the hell are you going on about?”
“The transfer or send function should be avoided now because of the recent reentrancy attack.”
“A re—what?”
“I can’t believe you had not heard about the attack. It was so bad that the code had to be forked, or copied, then modified with the new code going forward.”
“I know what a fork is,” Freeman said.
“Well, since you are using DCash for consensus, you should know that the fork was completed a few weeks ago.”
“Wait, I thought they were still testing.”
“They were, but Peekman, DCash’s founder, moved the schedule up. I think he was embarrassed that functions he deemed secure were hacked. You should really read the news every day,” Nigel chided.
Freeman’s burly virtual avatar slumped and didn’t look as intimidating.
“I’m going to level with you, Nigel. Do you remember Gratzano?”
“Yeah, he is that mobster guy. He gave me the creeps when I was at the hotel.”
“He’s not three feet from me now and is holding me at gunpoint. So if there is anything you can do to speed this process up, I would be grateful.”
“It’s not that simple. The DAO has frozen part of the funds due to the way it was set up. So we need to request a withdrawal from the contract, then burn the original stake. This needs to be done for each remaining wallet,” Nigel said.
“I already have several bots withdrawing the maximum amount, but we the DAO’s controls have limits on how much we can extract at a time.”
“We need to get the remaining cash out before the hacker removes the remaining DCash,” Nigel said.
Another five thousand DCash disappeared form the wallet as they spoke.
“I will help you. But you need to work faster if you want to salvage anything here,” Nigel said.
“No, I just need a little more time.”
“What? Freeman, are you okay?”
Moments later, Freeman disconnected.