A Tale of Twenty-One Block Producers

in #eos6 years ago

Background

The nature of the EOS blockchain has been heavily debated recently, with a lot of heated arguments. This is my take on what EOS is, how it works, and how it will continue working in the future.

The Beginning

In the beginning of June, 2018, a bunch of block producer candidates and other members of the community got together to figure out how to launch the EOS blockchain. Block.one, the company behind the EOS.IO software, had clearly stated that they will not be launching it and that it is up to the community to do it.

After some debate, the opinion leaders in the community came to a consensus on the final Constitution that would go into the software. It was not perfect, but it was deemed to be good enough for a start, so everyone agreed to go with it.

The Constitution

This Constitution was really a contract. A contract that was meant to be made between all participants in the network, defining everyone’s rights and obligations when using the shared pool of resources. It didn’t include all of the agreements between the participants - actually, it was only a small part of these agreements. Most of it was in the software itself, “the code”. The main purpose of the Constitution was to enhance the law imposed from the code and allow for its evolution and error correction, in times of need.

The Launch

Then came the “appointed block producers” or ABPs. The community had decided to choose a few block producer candidates that would start everything. A few trusted members of the community were chosen to keep the APBs anonymous and randomly assign the ones that will do the very important job of launching the EOS blockchain.

These ABPs coordinated between themselves and started the software, connecting to each other and allowing third parties to connect to their public nodes. But more importantly, they signed the Constitution and agreed to follow its rules. At this point, it was an agreement just between the ABPs. Everyone else that connected to the network was simply a guest, with no rights or obligations.

Then more and more users started using the available actions in the EOS.IO software, signing the Constitution themselves and joining the agreement. Some of them voted, hoping to reach the predefined 15% participation that was supposed to “legitimize” the chain.

The Constitution was actually in effect even before this threshold was reached. The agreement that we all have between each other is a combination of the software and the Constitution. One of the “clauses” in the software was that the 15% threshold would have to be reached in order to unlock the rest of the available actions in the code. And that’s it! There is no part of the agreement (code or Constitution) that implies that the Constitution only becomes active after it’s been ratified. It was in effect from the very beginning, still is, and always will be, no matter how it evolves.

The Cat is Out of the Bag!

Eventually, this threshold was reached, and the first 21 Block Producers were chosen by the voters. These 21 were appointed by the community to keep the chain running, produce new blocks, and resolve any issues that might arise. And, oh my, did issues arise!

The first big one was when the chain stopped producing new blocks only a few days after the launch. This was due to a bug in how deferred transactions were handled. It took only a few minutes for the BPs to coordinate and start working on a fix and a few hours to deploy the fix and resume the chain. I don’t know about you, but I would call this a job well done.

The Way Forward

Naturally, the problems didn’t stop here. Block Producers found themselves in a pickle again when the interim arbitrators decided that they cannot yet rule on cases. There were some pretty important cases though: ones that would define the way the world would look at the EOS blockchain.

So the BPs got together again, and decided that they would do something that others might see as overstepping their authority: they froze a few hacked accounts to prevent the thiefs from making away with the stolen tokens.

Was this a breach of the agreement? Maybe. But the agreement is still here, and all of us that signed the Constitution will continue following it. Agreements can be breached sometimes with little or no repercussions, if the agreeing parties decide that they are fine with it.

Was this a dangerous precedent? Maybe. But a slippery slope is only slippery if we continue walking it instead of fixing ourselves a sleigh. What we all should do now is analyze what happened, learn from it, and decide on our path forward.

Fortunately, we are a group of smart, well-intentioned fellows. I have faith that we will persevere. Now pass me that beer!

Sort:  

Nice write up. I'm glad ECAF gave an opinion that what the BPs did for these 7 accounts was a valid action based on the evidence. I hope we never do anything like that again, and if we do, I'll be happy to put a ruling against ourselves as BPs just like what was done this time. If token holders (the ultimate rulers) disagree with the BPs and the opinions of the arbitration, they can vote in new BPs.