Thinking about the possibility of joining the Block Producer (BP) community? Wondering what a BP actually does? We’re going to try to break this down more, as we believe it’s extremely important to understand how BPs interact with EOS.IO , and how they bolster the community that we’re all building. We would recommend first watching this video created by EOSphere. They did an excellent job of explaining this, we’re just looking to add some depth to what they’ve put out there already.

This post is part of our series, “What Should You Vote For?”. We’re trying to give our viewpoint of what we believe EOS token holders should expect from BPs. After all, this is your community. We should all understand how to use our voice to get the security, tools, and usability out of the EOS ecosystem that we want.

For the purposes of this article, we will assume that the network is already running, and that we have the list of Block Producers (BP) and Standby Producers (SP) who were elected in. We will have a separate post on the BIOS Boot sequence, as that is something that we at EOS Canada have been working hard at building in collaboration with others in the community.

Consensus

For those unaware, EOS uses a mechanism called Delegated Proof of Stake ( DPoS ) to come to an agreement on blocks; which transactions are applied to the blockchain, and, as a result, which state or data is stored in the blockchain. First, to become a BP, any entity proposes itself to produce blocks and starts an election campaign, pretty much like in any democratic country (President, Prime minister) or city (Mayor, etc...). They ask those who possess EOS (the token) to vote for them using the weight of their holdings. That process is continual, as a vote is a transaction on the network like any other transaction. Each 126 seconds (called a round ), the EOS blockchain nodes reschedule the block producers based on the votes accumulated until that point. The top 21 are then selected to produce blocks, in a determined order. They are rewarded to do so, just like Bitcoin miners, but instead of being unknown entities, they are highly visible with their reputation at stake. The community will be able to have their voices heard almost 700 times per day through this process.

We should now take a moment to understand how asynchronous Byzantine Fault Tolerance (aBFT) helps users of EOS. Reaching an irreversible state is very helpful, as we can all trust and rely on the information that is on the blockchain, and it allows dApps and businesses to then reliably act on that information. A simple explanation of aBFT and how it is used by EOS is that an at least two-thirds plus one consensus will be reached on every block created, as all producers will have the ability to sign all blocks. So once 15 BPs have signed a block, it is then considered irreversible. An analogy to Bitcoin, is that irreversibility is reached generally after six confirmations have been received. Due to their average creation time of ten minutes per block, this means that it takes on average 60 minutes after a transaction is broadcast to the network for it to be deemed irreversible. In EOS, this length of time is as low as one second. This allows for greater usability amongst businesses and enterprises who don’t have the ability to wait long periods of time for confirmation.

Ingredients of a Block

What exactly goes into those blocks that are being created? Each block consists of a header and a list of transactions. Transactions don’t mean simply token transactions where User A sends tokens to User B, but are also anything that needs to get executed (such as a vote, or a dApp recording a bit of information). The header includes information that points to a previous block, timestamps, merkle roots (a cryptographic tree of the transactions), and name of the block producer that produced the block.

We should also take a moment to understand what happens when a BP fails to produce a block. A few reasons why this might occur is if the BP’s network connectivity goes down, a hardware failure occurs, their capacity becomes maxed out, or regulation in their jurisdiction prohibits them from continuing. From the white paper: “If a producer misses a block and has not produced any block within the last 24 hours they are removed from consideration until they notify the blockchain of their intention to start producing blocks again. This ensures the network operates smoothly by minimizing the number of blocks missed by not scheduling producers who are proven to be unreliable.” In the event of a missed block, the transactions will be picked up by the next BP in line and the process continues.

Governance Structure

One of the features that EOS offers is that BPs are capable of revisiting a previous transaction should the need arise. This is something that should be enacted infrequently, and with great care. The power that BPs hold in this regard should not be taken lightly, and is one of the main reasons why we should all take the time to make sure we vote wisely. This system would utilize Arbitrators, who would hear a case that is brought to them. They would gather the facts from all parties involved, do any further research that may be required, and then issue a judgement which would be enacted once at least 15 BPs have signed that ruling (creating a new transaction). Let’s walk through an example of how this would come into play.

User Alice is looking to buy a widget, and wants to use EOS tokens to pay for the transaction. Alice finds User Bob who is selling that widget and they agree to make an exchange. If Bob delivers a knowingly different or defective widget, Alice would be able to initiate a claim against Bob. An arbitrator would be assigned to the case. Whatever the arbitrator’s ruling ends up being, is then passed on to the BPs. The BPs would enact the ruling, through signing a new transaction to initiate whatever the arbitrator deemed would rectify the situation.

BPs are expected to execute an arbitrators orders, and should not be imposing their own morals or opinions in the matter. BPs will also be able to replace faulty code when needed. This would help to counteract a bug that is discovered, or if a smart contract begins to behave in opposition to the human readable intention found within an attached Ricardian Contract. EOS Canada will be releasing an article explaining Ricardian Contracts in the near future. They will also have the ability to immediately freeze accounts or contracts should any emergency situations arise, such as a major hack.

Inflation

As the blockchain grows, so does the amount of tokens in circulation. This increase is known as inflation - it is something that will help to fund the BPs and SPs, and to fund Worker Proposals. The allocation of inflation is determined by a bid that all BPs make, and the median value of the top 21 becomes the allocation amount between Block Rewards and Worker Proposals. The inflation is set at 5%, but it can be lowered through a smart contract designed to destroy a percentage of those tokens, should the community decide to do so. Examples of Worker Proposals would be for dApps or code improvements that a developer, or group of developers, feels would be beneficial to the community at large. EOS token holders could vote on projects that they would like to see, and perhaps even an amount they feel is worth paying to receive that public good. This in turn would make the network more valuable and hopefully attract more users to the ecosystem.

Distributed File Storage

BPs will also be required to have storage space available for the network. Not just for the archives of blocks already created, but for use by dApps that will run on the network. If someone, for example, were to create a dApp that would allow users to share photos, the hosting of all the files would need to be handled by the BPs. This also means that BPs will be required to have increasing capacity to scale along with the expansion of the network. EOS Storage, which will be based on the InterPlanetary File System (IPFS), will not be ready for the June release, but is slated to be rolled out by the end of the year.

Security

As custodians of the network, BPs will need to keep security at the forefront of their operations. As it has been seen on other blockchains, there will always be bad actors looking for exploits. As a BP, they would be in possession of block signing keys. If enough of these keys became compromised, someone could claim control of the network should they choose to. They would have the ability to do a lot of damage in a very short amount of time.

Note: We at EOS Canada have received a lot of questions and requests for information on security, so please look through our YouTube channel for videos that will walk through our mindset and strategies that we will implement.

Community Support and Development

While not explicitly stated, outreach and engagement of the community will most likely be part of a BPs strategy. As a community, we want to support those who support us back. Some examples would be through Meetups to educate the public, supporting the creation of dApps , supporting the creation of new and exciting ecosystem tools that the community can use, code contribution, publicly available educational materials, and regular engagement in the community through forums and chats.

The end goal of this DPoS system is to have a group of elected officials that will facilitate the operation of a network in good faith for its users. With BPs and SPs operating with the best interests of the community in mind, users and developers will have the platform they need to begin building the technologies that will underpin tomorrow’s world.

Full Disclosure: The driving force behind this article is for our team at EOS Canada to provide value to the community as we continue to ramp up our operations and vie for your votes as a Block Producer. We are looking to provide content and code, receive feedback, and make sure that we are aligned with the community. We hope to help by leading through technology, to give EOS token holders the tools and resources that they need. We are striving to become the Block Producer that you, as a community, want to see.