The Bitcoin Core team is looking to refresh the process by which code changes are proposed, considered and implemented in a bid to engage more people in the development of the protocol.
But this remains a significant challenge in a diverse and distributed community.
The current process goes like this: If a community member has an idea for an update, he or she proposes it to the group by sending a description through a public mailing list. If enough people think the update is worth deploying, a Bitcoin Improvement Process (BIP) document is created and posted to the bitcoin GitHub. That document can then be commented on further by the community.
Once the document has “rough consensus” – defined as the general sense that everyone more or less is on board with the idea – it gets merged into the reference client, although it’s still pending review at that point.
“One of the requirements for a BIP is there needs to be an implementation for it,” said Eric Lombrozo, chief technology officer at Ciphrex and Bitcoin Core spokesperson.
“Someone can’t just say I would love this new feature. They must demonstrate that it works and can be done.”
This process can be rather hectic since every step is public. Plus, people are regularly introducing ideas that are at differing levels of abstraction. For instance, some proposals would require full support from the network while others aren’t mandatory. Others would require changing the code entirely.
If the proposal will change consensus rules, or how the network validates blocks on its distributed ledger, it undergoes quite a bit of review. There have been several of these soft forks, and many of them have not been particularly controversial.
For instance, BIP 65 added a new feature to the codebase which allows users to lock bitcoins up for a certain amount of time. The block size codebase change was really the first time the community was so passionately split on what should be deployed.
For these types of changes, Bitcoin Core gets the final say in what is deployed. It’s a judgment call on the team’s part, but Lombrozo said the group of a couple dozen Core developers wouldn’t want to deploy a change that wouldn’t get full support.
Changes that are not as profound do not have to go through such a strict review. These application-level BIPs such as features for key storage can be implemented quicker. Lombrozo wants to speed up that process even more, letting good features develop organically based on popularity.
“We want to create an informed space for people to participate in,” said Pindar Wong, chairman of VeriFi Inc, a FinTech infrastructure consultancy and a member of the W3C’s Web Payments Community Group.
“Proof of work applies to the bitcoin community at large and not just the consensus algorithm, and we need to find a way to engage these people,” he continued.
Barriers to entry
But engagement can be difficult, as it requires balancing people’s enthusiasm and experience in working on technical standards.
One thing Lombrozo thinks will help is opening up other communication channels that most people are familiar with. Currently most bitcoin technical discussions happen through Internet Relay Chat (IRC), a messaging protocol long used by developers. IRC use declined significantly after the 1990s as people moved to modern messaging and social media platforms, such as Facebook and now, Slack.
“The big problem that happened earlier … was that people didn’t know how to get to the discussions,” Lombrozo said.
Lombrozo indicated that Bitcoin Core today operates on a merit system that is predominantly reputation-based, meaning those who have contributed more have more say.
But since the launch of a competing development effort, Bitcoin Classic, at the start of this year, Core has sought to open up its processes. The Bitcoin Core team has set up a Slack group, and Lombrozo hopes to find people interested in summarizing forum discussions so people that did not participate in real time can get a synopsis without all the technical minutiae.
The next step is developing a system that allows people from all different levels of interest and know-how to participate in the discussions without bogging down the development process.
To do this, Lombrozo wants to structure the process better to differentiate between different types of proposals. Currently there are three kinds of BIPs – a standards track BIP, which affects most or all bitcoin implementations; an informational BIP, which describes design issues; and a process BIP, which doesn’t affect bitcoin’s codebase but typically needs community approval still.
Today, most BIP proposals come from developers and engineers. A few come from bitcoin companies that have products or services that would benefit from the addition of certain features.
According to Lombrozo, there a couple dozen active participants in this process, although that changes over time. Overall, hundreds of people have contributed to Bitcoin Core’s nearly 145 different BIP proposals, he said.
Yet, bitcoin is still in its infancy and developing standards on an open-source protocol without a strict process is challenging, which is why professional standards organizations like the W3C have typically dealt with this aspect of governance.
Not only that, but these institutions have full-time developers on staff that are knowledgeable about the tech and the standards processes. And these groups have the support of large enterprises which send experts to work on the standards.
Yet the W3C’s web payments work has recently come under fire from some of its members after the large browser vendors – namely Google and Microsoft – seemed to exert undue control over the process. This made several members wonder whether they, too, could learn from bitcoin’s method of development and standardization.
Wong, who’s been a bitcoin enthusiast for some time, was one of those members. He believes it might be time to reinvent the standards process to make sure the Internet remains open and large enterprises don’t take over the experience for all users.
Since the contention within the W3C’s web payments work, Wong has been thinking about how best to develop technology standards.
“Do you need to reinvent processes or can you modify legacy processes?” Wong asks.
Sometimes it’s one. Sometimes it’s the other. And sometimes, it’s a little bit of both.
Developer Amir Taaki, a well-known yet controversial anarchist figure in the cryptocurrency space, modeled the BIP process on Python PEP-0001. And the Bitcoin Core team has been looking at other standards bodies to develop better methods on top. For instance, the next consensus rule change will make implementing BIPs and pushing those updates to miners more seamless.
But the process isn’t perfect yet. Building consensus within all bitcoin’s key groups – businesses, investors, developers, consumers – is still a struggle, one that’s particularly laborious from the engineering perspective because there isn’t a specific problem for which they’re trying to solve.
Wong argues that it won’t ever be. “These aren’t static environments and so that inputs the question of adaptability,” he said.
In defense of the ecosystem, he positioned the acrimonious climate as perhaps a sign of the community’s strength and resilience, concluding:
“All this conflict, get over it. It’s healthy.”
Motorcycle image via Shutterstock