The next step for DPOS: Decentralized block producerssteemCreated with Sketch.

in #eos7 years ago

One of the most common criticisms against delegated proof of stake systems is the perceived lack of decentralization. 21 block producers (per round) might seem very low number, even though it's still very high compared to proof of work systems which are usually fully controlled by less than ten mining pools.

When the centralization by mining pool is pointed out, POW proponents will give a counter-argument: "It's not really that bad because miners can change their mining pool whenever they want." Which is true, of course. If a mining pool does something bad, it can lose a lot of hashing power very quickly because miners just choose another pool.

That made me think... Could we implement something similar in DPOS?

This post is mostly from the perspective of EOS, but ideas can be applied to Steem, Bitshares and other DPOS blockchains, too.

Formalization of block producer's responsibilities

In EOS, block producers will have quite a lot of responsibilities.


  • Creating blocks
  • File hosting
  • Back-up servers
  • Seed node


  • Following the constitution
  • Account freezing, misbehaving contracts
  • Take-down notices of files
  • Hard and soft forks, fees (account creation), parameters (blocksize, rate-limited capacity)


  • Something like a CEO in a traditional company, keeping everything internal in control
  • Communication with other block producers
  • Campaign to get elected as a BP

Possible extra services:

  • Account recovery
  • Account creation
  • Oracles
  • Price feeds
  • Dispute resolution service

As you can see, running a BP is much more than just a server creating blocks. One person might be able to handle everything in the beginning, but when the ecosystem grows, this will require a team.

Decentralization of a block producer

When we know all the responsibilities of a BP, we can break them down into smaller jobs which can be done by separate individuals or organizations. This will give us several different options.

There can be fully centralized BP, for example, an IT company that has professionals who can take care of everything. Or there can be fully decentralized BP, which works like a DAO: BP is just a smart contract which is governed by BP-tokens. Or some combination of those.

Decentralized block producers (DBP) will create some benefits for the ecosystem. Let's look at them more closely.

Additional layer of decentralization

While 21 BPs for DPOS is probably more than enough to create a robust system, a little bit more decentralization wouldn't be a bad thing. Adding more BPs per round isn't a good option, it would mean that the BP layer just gets a little bit more decentralized. But adding another layer to the system would create more decentralization without any negative side effects, like slowing the system or making it more expensive to run.

The first layer of the blockchain decentralization is the BPs. The second layer should be different tasks of a BP.

Because DPOS is perceived as not having enough decentralization, this is also good for the marketing. It will be harder to claim that DPOS is too centralized when a BP is not one entity but several entities which can be easily replaced.

It will be much harder for BPs to conspire against the ecosystem. And of course, it will make harder to anyone attack against BPs because they are not one entity.

Lower barriers to entry

There have been fears that when the system grows, the barrier to entry will become too high. Being a BP might require big investments to server infrastructure to ensure capacity and that will discourage people to become a BP.

Instead of taking care of all responsibilities of a BP, individual or organization can start with just one thing, like file storage. They can identify a DBP whose file storage is lower than others and offer to replace it. After they have earned money and reputation, they can start to take care of other responsibilities, too.


Usually, the system becomes more efficient when individuals and organizations specialize in certain work. They can focus on the one thing and become really good at that. They don't need to spend resources trying to become great at everything – often that means they are going to be weak at some things.

When people/organizations specialize, they can produce the services at lower cost. In the case of EOS, this is very beneficial because BPs can then offer more capacity for the blockchain.


DBPs can monitor their capacity and uptime and see how well they are doing compared to others. If some part of their DBP organization seems to be weaker than others, they can find a better partner. This is probably more efficient compared to a centralized BP, which has to either make an effort to learn how to do a better job or hire somebody to do it.

DBP can just look at possible alternatives (assuming there are markets for them) and replace low-performing partner with a better one. When the process of integrating different BP services is formalized, this should be very easy to do.

Voter apathy

One of the weaknesses of DPOS is voter apathy. A large percentage of the voters don't check their voting list often enough and make changes when necessary. The result is that many potentially good BPs won't be voted in and some underperforming will be staying.

Instead of changing their votes, stakeholders could just voice their opinion about weak BPs. For example, if a DBP has low file storage capacity, stakeholders could demand that they will replace the file storage partner with better one or else they will be voted out. In many cases, this will be enough and the result is better performing BPs without a need for voters to change their vote.

It's much easier to handle certain questions one at a time, like file storage capacity. It's harder to compare different BPs with different strengths and weaknesses and try to choose which combination is the best for the whole ecosystem. Most people are too lazy to do it very often.

Learning decentralized governance

Good governance is hard. Especially when the governed group is distributed around the world. DBPs have to be well-governed, otherwise, they will be voted out. Block producing is so essential task that underperformance won't be tolerated for long. This creates a big incentive for DBPs design efficient governance models for cooperation.

DBP can be designed like a DAO. There will be BP-tokens that hold voting power over the BP. All decisions are made by stakeholders vote, like deciding who will be a partner responsible for a particular task. All the profit will be paid as an interest for BP-token holders, which can attract investors to support the DBP. With EOS permission management, this should be pretty easy to do.

Hopefully, there will be lots of different governance models tried for DBPs. Over time the bad ones will be voted out and the best will flourish. It will be a great lesson how to actually create successful decentralized organizations. So far it has been mostly talking and not enough deliberate learning through trial and error.


If we think block producers as "mining pools" instead of single entities, we can achieve an additional layer in the decentralization of DPOS. This will create several benefits for the ecosystem.


It is very decentralized because people who vote are decentralized.

block producers are equivalent to mining pools. you often get less than 3 mining pools dominating. often 1 completely in charge. DPOS fights against pareto principle by FORCING the block producers to split to lets say 21 EQUAL in power ones. no other system does this. then it takes 2/3+1 witness to make any changes, not 51%, so it's quite resistant to changes.

the most important is block validation, if you make more block producers, it will slow the network down.

other jobs can be given to others but then you're forcing people to vote for way more individuals which becomes harder. Dan's research shows it becomes too many and voter participation drops. can maybe do the proxy system.

you are being indirectly paid if you vote for good witnesses because you have to vest your balance to do so and can't withdraw quickly. if they do good job your vested stake goes up in value on market. if you vote for bad ones or bad ones get control, the value of your vested stake should drop because market doesn't like what they do.

We think that being a block producer is something more than just running a server. Checkout out candidacy for more details:

Imagine steem witnesses selling their witness votes and allowing people to be witness for a day :D just like bid bots let you get on trending for a day :D

Now I understand EOS constitution bans vote buying now :)

Very interesting. My business partner of 10+ years, and I have been discussing running our own EOS BP company together. I definitely agree it will take more than what current DPOS systems involve today. I think organizing things into responsibilities and clearly articulating how those responsibilities are being met and what backup systems are in place will go a long way in ensuring we have solid BPs. Farming that work out to various contractors makes sense as well.

Wait for DPOS3 documentation :-)
I think that block producing, for those who can do it, will be a great way to participate in a new society where the good guys are appreciated for what they contribute.

Does EOS like Steem reward a little to the sub-top 200 nodes/BPs?

Good question. Looks like we will have to wait for b1 to provide more info on block producing

Excellent post. I've been thinking about a lot of the ideas you've touched on lately, too. I agree that the rise of BP businesses are very likely and we already see evidence of this today with some BP's outsourcing server maintenance. I actually foresee BP becoming so commoditized that it no longer becomes a differentiator for attracting votes - it's a hard-line requirement. The value add services are going to come in the form of community responsiveness, outsourcing to experts, etc.

Similar to @lukestokes I'm contemplating teaming up with individuals to start running an EOS BP organization/company/DAO/whatever.

If you are not in the top 20 producers, how do you expect to monetize your investements? Becoming a tier 2 BP and host specialized Dapps with a custom node?

Great Post!... Thanks!

Congratulations @samupaha! You received a personal award!

Thank you for the witness votes you made to support your Steem community and for keeping the Steem blockchain decentralized

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

Use your witness votes and get the Community Badge
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

very interesting.but how to distribute rewards may be a big problem。may be the market can do it ,just list eos storage

I translated to Chinese and posted here, thanks a lot for your great ideas.

So. why don't we set up an ERC20 token in the meantime as a DAC for being an EOS chain block producer and run it as an ICO.

Use the money raised to buy infrastructure and development to manage the governance of the DAC. Also have a roadmap for moving the DAC to an EOS blockchain.

The block producer token rewards are then used to pay for operating costs and upgrades. The rest can then be distributed to DAC participants.

One of the weaknesses of DPOS is voter apathy. A large percentage of the voters don't check their voting list often enough and make changes when necessary.

Then pay the voters. It can be viewed as a form of curation no?

I agree. This is something that ought to be experimented with.

Honestly, I don't see how a bunch of PhD economists aren't piling into this stuff to write their dissertations.

"Philosophies of old coming to life"....sometimes takes a while for the "People" to "get it"
life can be better for all....equal and abundant.
Nice post
Thank you Kindly

Well maybe we need better marketing? I mean like I'm transcribing a lot of our talks at the #whaletank... and now #bitshares
Be sure to turn on subtitles.

Coin Marketplace

STEEM 0.24
TRX 0.12
JST 0.030
BTC 68228.59
ETH 3560.00
USDT 1.00
SBD 3.17