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.”
Bailey Reutzel is a veteran finance reporter, most recently covering the intersection of tech and finance forÂ PaymentsSource.
Her latest project Moneytripping is a Gonzo-style journalism project focused on exploring money, politics and finance in America.
Motorcycle image via Shutterstock