When Satoshi Nakamoto released his first version of the Bitcoin full node, it was a prime example of software being its own specification. If you wanted to know how anything worked, the answer was “read the code”. Early on, this was appreciated as insufficient and steadily a corpus of technical explanations built up to form a specification for Bitcoin. It became a necessary resource to the first and foremost example of the new asset class: permissionless digital currency. Having a specification of Bitcoin software is a foundation stone for the decentralization of development. It lowers the on-ramp for new developers and teams to come up to speed and usefully contribute to the code-base.
The BU client was forked from Bitcoin version 0.12 in August 2015 and has advanced and diverged in many respects since. This is particularly so in the area of scalability enabling high on-chain volumes with user fees a fraction of those seen on Bitcoin BTC. The launch of Bitcoin Cash in August 2017 was a further divergence eventually requiring its own detailed specification. BU Lead developer, Andrew Stone, was aware of the need for specific Bitcoin Cash documentation and undertook this technical authoring work amongst his many other responsibilities.
In April 2019, BU member Jonathan Silverblood, proposed BUIP121 to make a start on a comprehensive resource for Bitcoin Cash. It is intended to be of use to node, script and wallet developers, service providers, plus a wider audience of people with a technical interest in scalable Bitcoin technology. His proposal was well supported by the BU membership. However, the passing of a BUIP does not automatically mean the right people and sufficient resources are present for it to commence immediately.
Bitcoin Verde offered their substantial skills in blockchain engineering to undertake the task, soon completing what can be regarded as Part I. This work is available as a public resource on reference.cash.
Significant further additions were made by the Bitcoin Cash community, and we take the opportunity to formally thank Ludovic Lars for all the work he has done. In January 2020, BUIP145 was also proposed by Jonathan Silverblood to allocate further substantial funding to continue the work. Part II is larger, bolder and intended to bring the project much closer to completion.
Bitcoin Unlimited is proud to announce a further agreement with Bitcoin Verde to build up what was achieved earlier in Part I. Significant new documentation will be produced for the following areas:
Review OP Codes for up-to-date information and accuracy
Remaining Node Message Formats including xthin, xthinblock
Simplified Payment Verification (SPV): Main page describing intent and operation
Memory Pool: functional description
Stratum Protocol, explanation and Message formats
Mining Pools: explanation
Remaining Cryptographic Primitives: Secp256k1 Keys and ECDSA/Schnorr Signatures
Historic Bitcoin Cash network upgrades
Simple Ledger Protocol (SLP): Main page to describe intent and operation,
Transaction Types, Validation Rules, Bloom Filter
Addresses: Pay to Public Key, Public Key Hash and script Hash
Difficulty Adjustment Algorithm: ASERT.
The duration of the project is six months which will take it past the forthcoming November upgrade of Bitcoin Cash. Upgrading the underperforming DAA, causing unreliable block times and profitability issues for Bitcoin Cash-friendly miners, is long overdue. With improved decentralization of development, we can expect major advances for the May 2021 upgrade, and the community can be assured that all future improvements will be documented on reference.cash.
Andrew Clifford - President, Bitcoin Unlimited
oh! good news for a change .. well done BU and Verde for getting it done cooperatively 👏👍