The Proposal of Establishing the Bitcoin Cash Standard Organization (BCSO)
In the Statement, “Bitcoin” always stands for Bitcoin Cash.
As a consensus protocol, Bitcoin has been defined by its softwares since its birth in 2009. Though we have a Bitcoin white paper, the white paper doesn’t give any definition of the details of consensus protocols, e.g., block size, time, difficulty adjustment rules etc. This leads to big differences in regard of “What is Bitcoin” and is not good for implementation of multiple clients and the competition between them. Clients with major market share have too much say in changes of protocols. For example, in the debate of Bitcoin scaling, Bitcoin Core team led to the split of Bitcoin community, doing huge harm to Bitcoin development. I believe that Bitcoin needs to separate protocols from implementations because this will help improve participation of more developers, and market diversity with multiple clients running, which also introduces effective competition. I don’t think that the Bitcoin protocol should be tied to any specific client, and rather, developers should focus on building faster, more stable and user-friendly software implementations compatible with standard protocols, instead of modifications of protocols. And I believe that the Bitcoin protocol should keep evolving to meet the demands of scaling and the market. By standardizing Bitcoin, we can give a clear definition of Bitcoin and therefore solve community disparity.
We can find many examples of standardization in the development of the internet. There are standardization organizations like W3C in the development of the World Wide Web, who sets standards to improve cross-industry compatibility and protocols. Browser companies competed to win market share with better browser products and push forward growth of the Web with protocol improvement by W3C. Email protocols are the oldest and most influential protocols in the internet history. Bitcoin’s consensus protocol is similar to email protocols — it’s impossible to send emails if the client is incompatible with the protocol. Email protocols are now defined by a series of RFC files. It’s hard to imagine if the protocols are defined by one client with which the diversified clients and applications today won’t be possible. Another example is the development of computing languages. C language was born in the 1970s, and was so influential that almost all operating systems now are using C. In the early stage, grammars of different compilers were not completely compatible. In the 1980s, the National Institute of Standards and Technology of the US standardized C language with “ANSI C”, putting an end to the chaos. Now the C language is defined by standardized documents instead of any certain compiler.
Bitcoin is a consensus protocol which should be defined by documentation instead of software codes. The consensus protocol includes block format, block size, transaction format, opcode, difficulty adjustment algorithm, transaction ranking rules etc. It does not include P2P protocol or RPC command. Any client that compatible with the consensus protocol can come to the same the results by resolving the blockchain. Client protocols should avoid undefined operations to lower down forking possibilities. We should be extremely careful when it comes to any protocol modification because any modification will require consensus of all clients, otherwise, a fork will happen.
Together we will standardize Bitcoin by establishing the Bitcoin Cash Standard Organization (BCSO). BCSO will give the definition of “Bitcoin” with standard protocol documentation. With the BCIP (Bitcoin Cash Improvement Proposal), BCSO will collect advices and suggestions of protocol standard as well as feedbacks for BCIP from the community. BCSO will regularly release the BCIP with updated standard documentation and help all clients with the updates. BCSO will also hold developer conferences to explore new Bitcoin technologies and growth.
With BCSO, the modification process of Bitcoin consensus will be more public and transparent. While proposing a BCIP, a developer should include essays, reference implementation, test results etc. so that the public and peers could have a more profound understanding of the change. BSCO will allocate BCIP No. for each proposal, collect suggestions from the community and call votes for the proposal via a method that’s commonly agreed by the community. According to the result of BCIP, BCSO will update the Bitcoin Standard Protocol regularly and set a timetable for software implementation and network activation in coordination with network upgrade.
I believe that Bitcoin Cash Standard Organization (BCSO) will guarantee the development for Bitcoin, and help the community reach a broadest consensus.