The Large Bitcoin Collider, a blue-sky community project to link up everyone's computers in an attempt to brute-force break an element of bitcoin's cryptography, is raising alarm bells—but it's not because anybody thinks the LBC will succeed.
Instead, while looking through the code that LBC contributors must run on their machines, eagle-eyed folks on Reddit noticed something fishy. Basically, the LBC software sneakily runs code on a user's computer without their knowledge or approval. The software also allows for user-initiated updates to come from anybody, which leaves the door open for hackers to inject your computer with malicious code. This is concerning because, while it's unclear how many people are running the software, interest has exploded over the last week
"Software vulnerabilities that allow remote code execution are common, but in this case it's [an] intentional functionality," Ryan Castellucci, a cryptography researcher, wrote me in an email after examining the bits of suspicious code posted to Reddit.
Emin Gün Sirer, a prominent cryptography expert and Cornell University professor, agreed. "The code clearly contains a backdoor," he wrote in an email. "It is written in a way where the server operator can instruct the clients to perform any task at all."
It's unclear if this is a purely malicious design choice, which would allow an attacker to hijack your computer for possibly criminal ends, or if it's just shoddy insecure software. "This is a security issue regardless of intent," Castellucci wrote.
According to "Rico," the pseudonymous developer behind the LBC, the software can remotely execute code in order to remove itself from a user's computer if they tamper with it. Basically, a self-destruct mechanism. In an interview conducted over email, Rico explained that it's there to prevent people from faking work while contributing to the LBC.
"It's actually protection against malicious attacks," Rico wrote me in an email. "Quite the irony, that this functionality is now perceived as malicious per se."
Rico's message to LBC contributors is that it's his code, and you're just using it. If you don't like it, too bad. The problem is that this runs up against a user's right to manage what code runs on their machines. While this is similar in some ways to copyright protections in software, in most cases you're trusting Adobe or another company, not an anonymous guy named "Rico" online. And some random guy running code on their computers, without their knowledge, is exactly what folks are pissed off about.
On this point, he's unapologetic. "If you do not trust the LBC, don't use the LBC," he wrote.
But now that a backdoor has been identified, the element of trust is now missing from the LBC project. Compounding this mistrust is that while the project's stated goal is to prove that one part of bitcoin's encryption can be broken—thought to be impossible right now—along the way it's breaking into encrypted wallets. It's now possible that the software could be helping to break into the wallets of the people using it themselves.
"The premise of the entire project was questionable to begin with: the Large Bitcoin Collider was designed to crack encrypted wallets," Gün Sirer wrote. "But these wallets were of unknown origin, and may well have been obtained illegally. And now, we see that the LBC project itself can be used to obtain encrypted wallets, bringing everything full circle."
"If you do not trust the LBC, don't use the LBC"
Rico, defending himself against the accusation that he's using the backdoor to steal bitcoin information, warned that, yes, it would indeed be unwise to run his software on a computer containing your bitcoin.
"As states the documentation, neither does the LBC require, nor do we suggest you have any BTC (or whatever coin) infrastructure on the machine it runs," he stated. "It does not need any wallet, blockchain or private keys for its operation."
As for the insecure updates, Rico claimed on the popular Bitcointalk forum that the software is designed for automatic self-updating. Normally this includes some method of authenticating that an official company server is sending you the update, but the LBC has no such feature, allowing a dedicated hacker to push fake updates. To his credit, Rico pledged to implement a fix in the form of HTTPS encryption for updates.
"There's a lot of trust in software that people don't really think about," Castellucci concluded in an email. "There are technologies that can limit the [risks], but it's always there. It's amazing that things work as well as they do."
As for Gün Sirer, his advice to people interested in the LBC is simple: "Users should stay clear of this project."
Correction: An earlier version of this article stated that the LBC software's unauthenticated update system would allow for an attacker to send a malicious update to the client. For clarity, we've added that the update must be initiated by the user for this to occur.