Bitcoin is very hard to change, a property that is critical to it having any value at all. But, what exactly prevents it from being changed? Bitcoin is also bigger than ever, so how do improvements get made?
Announcing the open source bitcoin consensus analysis project (BCAP).
Earlier this year, @avichal and I discussed the potential for such a project, and over the past few months, I have been working with @0xren_cf and @LynAldenContact to go from concept to a solid starting point, which can now be found at the link below
Bitcoin consensus is simply a set of rules codified in software. However, what maintains that consensus and what allows that consensus to change is extremely complex. What roles do each of us play in this consensus? What motivations and powers do each of us have?
This project identifies 6 stakeholder groups that play a role in bitcoin consensus including each group's motivation and powers. It also analyzes how each group’s power shifts over the lifecycle of potential change. https://github.com/bitcoin-cap/bcap#stakeholders
Ultimately, investors have the most power, but their power is often exercised late in the lifecycle of change when bitcoin might be on the brink during a contentious fork. Ideally, we avoid winding up in such a fragile state, so the project explores this dynamic.
The Bitcoin Core project is just one implementation of the bitcoin protocol, but it wields tremendous power given it is the software run by a near-majority of the bitcoin network. It has earned this position by prioritizing security and being conservative on protocol changes.
Historically, changes to bitcoin consensus have been proposed by Bitcoin Core developers and have all been merged into the Bitcoin Core project. Recently, there has been a shift to non-Core developers proposing changes. It is unclear whether this impacts Core prioritizing these.
Often people claim that Bitcoin Core has too much power as a few devs can “change bitcoin.” While this is clearly untrue, the opposite is true in that there is veto-like power to prevent changes.
Thus, alternative consensus clients are an important option. However, they are for extreme situations as it would be very difficult to gain widespread adoption. Low adoption can lead to a fragile network.
The project explores one such scenario in which a change is (partially) activated with miner hash rate but low adoption from nodes. This can lead to a sizable bounty forming tempting miners to create a chain split, and leaving bitcoin in a state of chaos. (let’s avoid this)
If a trading market develops between fork A and fork B, investors determine the value, but it turns out not all investors are equal. Self-custody individual investors have advantages over corporate and institutional investor segments.
There are many other future scenarios, and we’d love to see the project evolve to analyze these as it is intended to be a community project that serves bitcoin well into the future. The project is off to a great start with 2 dozen reviewers spanning all 6 stakeholder groups.
If anyone sees ways to improve this project please file an issue https://github.com/bitcoin-cap/bcap/issues, open a PR https://github.com/bitcoin-cap/bcap/pulls, or begin a discussion https://github.com/bitcoin-cap/bcap/discussions.
There is a PDF version in case that is easier to read or to share with others. https://github.com/bitcoin-cap/bcap/blob/main/bcap_v1.0.pdf