Another Kind of Consensus
Consensus is a crucial concept to get right for distributed systems. In Bitcoin-land, consensus means the consensus of data in a distributed system. And the data which we are trying to agree upon is the long list of accounts(addresses) and transactions. Without consensus, there is no Bitcoin.
Solving the consensus issue is an age-old problem in computer science, but the Bitcoin’s proof-of-work(PoW) system has proved to work surprisingly well since its conception in 2009. Although it isn’t perfect, PoW is still the most widely used consensus algorithm to date in the cryptocurrency space. BOScoin will actually be using a different type of consensus algorithm based off of Stellar’s SCP, but that’s a topic I’d like to come back to at a later date.
Technically another kind of Consensus?
Proof-of-Work, Proof-of-Stake, the Tendermint consensus protocol, and the SCP are all different offerings to practically solve how data on the network held by different parties are kept the same. However, I’d like to take a step back. These algorithms focus on data, but the software where these consensus algorithms are stored are also created through the consensus of individual humans. Humans are intrinsically distributed. We are individual, we each have our own histories and cultures, yet through communication and through the expression of our thoughts and ideas we achieve a kind of consensus. This is a much weaker form of consensus than a computer, but a consensus nevertheless.
We create rules that govern societies through political consensus. We create pools of knowledge that we can continue to build upon through scientific consensus. And we build great open source products like Bitcoin through the consensus of ideas.
Consensus 404 Error
The social form of consensus is probably nowhere near the level of consensus we’re speaking about when talking about Bitcoin’s consensus algorithm. Humans can’t just copy large sets of data from one person to the next(although that would be pretty awesome). Instead we communicate… when we’re willing, or we debate… when we need to, but a lot of what we’ve been seeing in the Cryptocurrency space is a lack of social consensus.
The block-size and scalability issues for Bitcoin, the DAO hack and hard-forking in Ethereum are not simply technical issues. A lot of the time they are about social consensus, the consensus of the involved parties within the ecosystem.
This is why BOScoin has decided to embed the social consensus process into the core software. This system is called the Congress Network, and its goal is to provide an efficient and fair system to process changes for the betterment of the BOScoin ecosystem. Additionally, this decision is supported by a large budget called the Commons Budget, to continually self-fund the development of the network. All node operators in the BOScoin network are given a vote to decide on how to distribute the Commons Budget. With this vote, they can accept or deny proposals that are brought up from within the community.
For example, transaction fees in the current system are fixed at 0.01BOS, but there may come a time when lower fees or perhaps market-based fees may become more appropriate. The community including the developers and node operators can create a proposal, discuss the topic, and vote based on their views.
This simplistic and tried method for making decisions may not be the panacea for every problem, but we believe it’s a start. Providing structure to making decisions through the Congress Network will hopefully help the non-computers(us humans) in the system achieve consensus and grow as an ecosystem.