Developers of the most popular bitcoin implementation software have big dreams of crafting a truly global form of money, and as such, you can say they have a lot on their plates.
The breadth of their to-do lists was easy to see at a recent annual meeting in New York, where, in a change of pace from the internet channels they're known to frequent, many of the software's most-active developers come together to coordinate. In a conversation transcribed by contributor Bryan Bishop, they discussed a mish-mash of code priorities for the coming year, giving a peek into how the team makes decisions and the technical hurdles they hope to jump next.
Though not all developers were in attendance, the transcript provides an inside look into the near-term focus of a few key developers, including long-time Bitcoin Core contributors Pieter Wuille, Matt Corallo and Cory Fields. It also provided a look behind the scenes, where contributors are toiling away on an array of changes to the code that now secures more than $147 billion.
Indeed, much of the conversation centered on touching up the way the team reviews and adds new code. One major pain point is that, while developers are submitting tons of code changes, there are only so many developers knowledgeable enough to battletest them for bugs, ensuring they're ready to be added to the code securing so much money.
"As a reviewer, there's no way I'm going to get through all of this and it's actively discouraging," one developer said.
Some code changes are even getting lost due to the load. Another developer even went so far as to call the growing list of proposed changes "a dead graveyard of cool ideas."
Scattered priorities
Yet, this isn't stopping developers from working on other new features.
Fields, a contributor at MIT, has long been working on sprucing up the peer-to-peer network code connecting all the nodes across the global network.
In an earlier interview with CoinDesk, he called bitcoin's code a "monolithic blob" that developers have been trying to untangle since it was first put forth in 2009. Though he's been combing through the code's peer-to-peer layer for years, he revealed in the meeting that he's "almost done."
He's also working on a feature building upon bitcoin's unspent transaction outputs (UTXOs), the pool of bitcoin transaction data that can be spent in new transactions. Though his description of the new feature was thin, he said he plans to reveal more "soon" in an email to the popular bitcoin developer mailing list.
This goes to highlight the distributed nature of working on open-source code, where each developer works on whatever he or she chooses. Though developers are constantly chatting about their work on the internet, some might not have any idea that someone else is working on a big feature until they post it to a widely-read forum - such as the official mailing list.
Then there's Wuille. Perhaps the best-known Bitcoin Core contributor, he's responsible for SegWit, a much-lauded scaling code change that activated on bitcoin last year.
His update at the meeting was succinct, but he reiterated that he's focused on another much-anticipated scaling change, signature aggregation. Plus, he's looking at increasing privacy by hiding messages sent across the with "peer-to-peer" network - the very same layer Fields is tearing apart.
Corallo's update was perhaps the most technical, describing in detail how he's splitting up the codebase into chunks that are easier for developers to manage.
There's one particularly messy piece that he describes as "super complex," which more than one developer has tried to untangle. He's not fazed by it though. "I want to take another shot," he said.
Defending sovereignty
Corallo is one of many developers focused on making Bitcoin Core full nodes software easier for non-technical people to use. Though the code is widely-considered to offer the most secure way of using bitcoin, it's notoriously difficult to set up, taking days or even weeks to download.
Chaincode co-founder and Bitcoin Core contributor Alex Morcos explained in the meeting why he believes it's so important to make it easier to run.
Though there's a "cultural push" to run nodes, Morcos said, he worries many users don't understand the "real reason" to run one. He thinks it's to be "sovereign," or being able to tell if transactions are valid or not without trusting anyone else – basically the point of bitcoin in the first place.
Morcos put forward a few ideas for making this full-node-driven sovereignty possible for everyone.
Perhaps one of the biggest problems with bitcoin full nodes is the software is so large, smartphones can't handle them. The software is kind of stuck in one place, with users likely to spin up the node on a computer permanently located at home or at a business.
But Morcos believes there's a way around this. One day, users will hopefully be able to connect smartphones to the nodes running at home, boosting their security. "And then it's ready to go wherever you go," he said.
Along these lines, Corallo broached the idea of making it possible to check a full node for information about keys stored elsewhere - in a hardware wallet, for example, which is considered one of the securest ways of storing private keys. But, though this would make using the software more convenient, he's been having trouble implementing it.
Morcos told CoinDesk that though he's interested in these ideas, it isn't his main focus right now. "I don't know if I have a particular focus," he said, succinctly summarizing the loose open-source code process.
But it does highlight that full node inconveniences are a pressing concern.
Morcos added:
Code image via Shutterstock