I've been wanting to write more about this topic, because I think it's absolutely key to all our success. Key to the success of the companies, open source projects, merchants and retail customers, and the thousands of individuals involved in Bitcoin Cash.

We need to unite around protocols rather than particular organizations. We will always be part of some organizations, and others in the Bitcoin Cash ecosystem will be part of other organizations. This is natural, and even good, because competition at all layers is what drives a healthy economy.

BIP70 (Payment Protocol), an example of a protocol building on top of Bitcoin. Image from https://github.com/bitcoin/bips/blob/master/bip-0070/Protocol_Sequence.png

Bitcoin is designed from the ground up to support competition. Mining - the work at the base of processing the financial transactions in Bitcoin - is extremely competitive. I say Bitcoin, but it applies to Bitcoin Cash exactly the same way.

Other financial service industries built on this "base rock" layer are also highly competitive. Pools, exchanges, payment processors, custodial services, lending and the list goes on, and is growing steadily.

In this sea of competition (sometimes appearing rather tribal), we should really understand what is really "bigger" than our own company, our own project, our own piece of the pie.

It is the protocols that bind all the participants together to create a successful economic system.

Good protocols outlast individual projects and organizations.

We can think of protocols as languages, where speakers agree on a common framework and set of terms, using which they can exchange information.

We need languages to overcome our daily problems and satisfy our needs. They break down barriers between ourselves and others, so that the exchanges can take place that make us all better off (not only economically).

Like languages, protocols are not dead things usually. They are alive, evolving, improving or deteriorating depending on one's viewpoint.

The diagram below shows a simplified view of the states of one of the most-used Internet protocols today: the Transmission Control Protocol (TCP). Our computers, phones etc. all know how to speak it, even if we don't!

Simplified state diagram of the Transmission Control Protocol (TCP), CC-BY-SA 3.0 [2]

There is a base protocol in Bitcoin (Cash) that brings us together. It defines the rules about which transactions are acceptable and should be included into the blockchain.

There are people hard at work specifying this protocol in ways that make it more accessible to others who want to interoperate with the value transfer network at the heart of this system.

A need to specify this base protocol is a leftover technical debt from the days of old, a thing which developers in their eagerness or ignorance neglected to document in detail - perhaps because they did not see all that much value in a solid protocol specification, or perhaps their employer didn't care.



"Just look at the code". Well, this works when things are very small, or if you can never imagine a thing to grow real big. But this is not where we want to go. We want to grow big, we need to "design for success".

"I haven’t been able to find a widely-used Internet-scale protocol that arbitrarily limits itself."

- Gavin Andresen, "Bitcoin Protocol Role Models"

A good protocol specification is something that can multiply the efficiency of others who want to participate in the protocol. It addresses questions and doubts about how things work, why they are like they are, and whether the protocol is suitable for a use that somebody might want to investigate.

It elevates discourse and can pre-empt and resolve many questions which people otherwise spend valuable time chasing down or arguing about.

Think about how many times the same suggestions for some change to the protocol have been made.

I can think of several issues which have come up repeatedly, taking away some precious time from people who know the answers to write them up again.

A good specification becomes a focal point and historical reference on which such discussions can be held and to which people can be referred, instead of debating the same things again and again across various forums like Reddit, Twitter, Telegram chat rooms etc.

Specifications work, that much has been demonstrated many times in the real world. Even complex specifications, like the Open Document Format for Office Applications (ODF), have competed against proprietary standards funded by affluent companies and done well.

A world map of OpenDocument adoption, by Lokal_Profil, CC-BY-SA 2.5 [1]

The Yours.org article in [4] lists several points how a good specification of the base protocol will help. One of them is allowing others to implement their own compatible libraries and even full-featured protocol clients.

Why is this useful? Because it brings more people in touch with Bitcoin Cash.

People implementing a client in a new language (recently: Java) open the door to many other individuals and companies which "speak those languages" to build further on top of Bitcoin Cash, and to integrate their own products with it - whether those are point of sale systems, web browsers, accounting packages, multiplayer online games, videoconferencing or the next generation of VR killer app.

Suddenly, whole new communities can get access to an open financial infrastructure. Each time it is one small step further along to bringing Bitcoin Cash to the world.

Looking around at the wider Bitcoin Cash ecosystem, we can see some ancillary protocols that are already taking off, with support by multiple applications, websites and companies.

In each case, at the outset, their creators wrote up a protocol specification, even if informally, that let others quickly get an idea of what the protocol is about without needing to read computer program code - they only needed to understand some elements of the Bitcoin (Cash) base protocol and the rest was explained.

The following list is incomplete because it is fast growing! Please have a look at https://bitcoincashstandards.org/ which is a nice site someone created to give a good overview on protocols that are becoming standard around the Bitcoin Cash community. All of these are open protocols.

The Memo protocol alone accounted for 3% of BCH transactions yesterday, and has been used to perform an astounding 682153 transactions on the chain. And it's "only" a lean social networking platform similar to Twitter!

I'll be happy to argue with anyone who disputes that it brings some economic value to some of its participants (that's in another topic for another day :)

More protocols are also in advanced stages of implementation, e.g. CashFusion for increasing privacy on Bitcoin Cash.

Other protocols have been suggested but are in the idea / prototype phase, such as Vin Armani's "Simple Ledger Signature Protocol" suggestion, which could have applications such as online voting.

It's important to understand that these protocols do not exist in isolation, even if their concepts could probably be applied to some other blockchain base layers, at least in some cases.

The more protocols accrue around the central Bitcoin Cash base protocol, and in turn as other people come to rely on all these protocols, the greater the need for high quality protocol specifications in all these areas.

Protocols are what's going to let the world unite and build using Bitcoin Cash, both in terms of the base protocol, and in terms of protocols which are linked with it, however tightly or loosely.

Eventually we will see protocols which are only indirectly linked to it, as they will build on top of other protocols that link directly to Bitcoin Cash, including "secondary layer" protocols such as payment channels.

We can help those who try to describe the protocols by reviewing them, asking questions where things are unclear, and contributing corrections where we notice things that might be wrong or inadequately clarified. This will help many others in the big Bitcoin Cash family.

This article is not trying to say that you should not be loyal and unite behind organizations or companies that you wish to support. You should still do that where you feel things are right with your conscience. Building strong projects, companies and other organizations is necessary in order to raise up strong pieces on our (cryptocurrency) chessboard as we play this (currency) game against very strong established (fiat) players.

Just keep in mind the positive attractive effects of presenting good protocol standards to the world, to help them unite behind us all.

References

[1] https://commons.wikimedia.org/wiki/File:OpenDocument_adoption_world_map.svg

[2] https://commons.wikimedia.org/wiki/File:Tcp_state_diagram_fixed_new.svg

[3] https://www.yours.org/content/bitcoin-cash-needs-a-specification-f4bf057d0b56

[4] https://news.bitcoin.com/devs-discuss-formal-specification-project-for-bitcoin-cash/

[5] https://memo.cash/protocol

[6] https://github.com/simpleledger/slp-specifications/blob/master/slp-token-type-1.md

[7] https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki

[8] https://medium.com/@vinarmani/simple-ledger-postage-protocol-enabling-a-true-slp-token-ecosystem-on-bitcoin-cash-f960a58c16c4

[9] https://news.bitcoin.com/cointext-founder-publishes-new-postage-specs-for-slp-tokens/

[10] https://github.com/simpleledger/slp-specifications/blob/master/slp-postage-protocol.md

[11] https://gitlab.com/cash-accounts/specification

[12] https://github.com/cashshuffle/spec/blob/master/SPECIFICATION.md

[13] https://gitlab.com/cashid/protocol-specification

[14] https://github.com/cashshuffle/spec/blob/master/CASHFUSION.md

[15] https://bitcoincashstandards.org/

Please leave your thoughts in the comments!

Commenting is free on read.cash, only voting (tipping) costs some satoshis.

If you like our content, please subscribe!

Or better yet, become a sponsor of ours on this platform. It's super easy, and even the smallest amounts will help and are most appreciated!