Proposal for NEW DPOS for Steem Decentralised Governance

in UpFundMe5 years ago

This post is the result of numerous conversations held within Discord. Yesterday, these ideas started to gain some traction within the MSPWaves Broadcast channel, and I thank @r0nd0n for voicing these ideas while I was typing them.

Why do we need a NEW DPOS?

Many Steemians continue to believe that the current DPOS is a "decentralised governance" model. If this was true, then why has governance been "centralised"?

It is not enough that a DPOS model start off being decentralised, it must also be robust enough to withstand attempted attacks on that decentralised consensus. It has always been a theoretical weakness of Steem's DPOS system that it is vulnerable to being centralised by one or more very large stakes. Now that Steemians have seen this in action, it must surely be time to review this model so that this cannot happen again.

So, the aim is to create a NEW DPOS for Steem that is a robust decentralised governance model that is self-protected from becoming centralised by any party.

I propose that this be done in two phases; a NEW DPOS Short-Term solution followed by a Long-Term solution.

Why do we need two steps?

We have an immediate problem. There are two large factions that we can broadly class as the Steem Community and the Tron Holdings; there are also other significant minority factions that make this even more precarious and unstable.

What we have been seeing over the past few days is an escalation in witness votes from both camps. This escalation is not dissimilar to an arms build up to maintain detente. However, this accumulation of resources is leading to a stressful and unstable form of balance of power. Any sudden major shift can upset this tense stability.

Hence, the NEW DPOS Short-Term solution is designed to be very easy to implement and to both maintain the current balance of power while at the same time decreasing the stress levels that come with it.

It will be mathematically impossible for anybody to seize complete control within the short-term as the number of witness votes will be decreased. This is thus designed to maintain the current detente and decrease the level of tension so that discussions can proceed without the background escalation.

NEW DPOS Short-Term

This short-term solution is the simplest and most effective that I can think of.

We reduce the number of witness votes per Steem username to 8.

We can keep the current witness count at 20 plus a backup, not because it is optimal but just to avoid more coding.

The number 8 has been chosen so that even if a large stakeholder were to split their SP into two equal amounts, they would still, in theory, only be able to gain 16 witnesses - one short of a super-majority.

This is the important part of this change. To maintain the current equilibrium plus making it impossible to achieve a super-majority without broad consensus among the two major blocs.

I hope this will be taken seriously and that this could be the first fork that all sides can support.

Let us not forget that all parties profess to be in favour of decentralisation - this is an opportunity to put this into practice.

NEW DPOS Long-Term

Once the balance of power has been achieved and the stress levels toned down, we can all look at how the Steem and Tron systems can work together. That future is not part of this proposal and I am not going to go down all the possible routes.

However, the issue of making DPOS robust to attacks remains. One possibility is that the above Short-Term solution is enough.

What I propose here is that a very small group of people be entrusted with researching and seeking a long-term solution to the issue of Steem's DPOS decentralised governance and writing a report to be submitted to the community.

Such a report will highlight the best solutions, their pros and cons and how to implement them.

That DPOS Research Group can be funded by SPS for a fixed period of time, say 30 days. This Research Group must have one person who knows how to code the blockchain, plus people who have studied and understand DPOS protocols. I myself would be happy to be one such member.

Some Consequences

One of the most obvious questions is how to decrease user witness votes from the current 30 down to 8. I think the simplest is just to take the 8 most recent votes. There is now a growing awareness of the duties of Steemians to vote for witnesses, so if any of those 8 witnesses need amending then there is all likelihood that people will do so quickly. Any other method could be complex and still be unsatisfactory.

One objection to this NEW DPOS Short-Term is that it reduces the witness votes for everyone and so the total MVests that each witness receives will drop across the board. But this is the whole point of this quick fix: that it does not distort the current witness distribution and hence is fair to all parties while removing the stressful escalation that somewhat undermines on-going negotiations.

If you have any further insights about unintended consequences, then please leave a comment.

All feedback appreciated and please resteem to broaden the discussion.

And finally...

So there are two things to decide upon:

Do you support the NEW DPOS Short-Term solution?

Do you support that a Research Group investigate and then propose options for a NEW DPOS Long-Term?

Steem on!

Sort:  

I'm sure that the community would support your proposal but the question is if current witnesses would agree and implement this. I highly doubt.
They want control over the blockchain and talk about decentralization at the same time.

Interesting comment; you imply that the witnesses do not represent the community?
;-)

Of course they represent a 'community' ... a 'community' consisting of a few large stake holders. ;-)

Exactly.

Remember bid bots and linear rewards?
Same witnesses.

I don't believe this will be the next step, but I think it's a high priority for maintaining the integrity of DPoS ideals of decentralization. I would be in favor of 3 votes instead of 8, but 8 may be needed at first to get everyone in agreement. This is a hole in our governance, and the fears that arose with Justin to begin with could have been squashed with this one single feature. I will be lobbying hard to make this happen, I hope everyone joins me.

Please Ron help us to keep this on the discussion docket! Essential concept to fix the root!

I'm going to make it a priority and do my part.

Thanks very much! Would it be a good idea to formally add this to SPS? Not for the immediate short-term change but for the broader discussion about finding the best solution for the future?

Also, what is your favourite communication channel? We have chatted on Discord but you have sometimes not been able to DM. steem.chat?

The 3-vote idea has been suggested by others. The logic being that not only can no one party push through a hardfork but also that nobody can single-handedly block one.

There are merits to that.

Anything else between 3 and 8 are just random, but those two values both have a logic to them.

Thanks again.

Discord is usually best, but the past few days have been crazy. I'm currently editing video (on linux no less), rewatching and transcribing timestamps to make the long shows worth watching, and engaging in the info war on discord/twitter.

I'm still undecided if SPS is the way to go, I really don't think it will be needed, but it's good to keep in mind as an option.

At first I was a proponent of reducing the number of witness votes, but after more deliberation I think it will actually have the opposite effect, making decentralization harder and centralization easier.

Consider the following example scenario (similar to what we have with the current TRON situation):

  • The community collectively has 150M SP
  • A single entity has 150M SP

Now, if the 30 witness votes are reduced to let's say 10, then the single entity has to divide its SP in half and vote in 10 witnesses with each half, so each of the single-entity-supported witnesses will have 75M SP.

The community will have to do the same. It will have to split in half - half the community would have to vote for 10 witnesses and the other half for 10 more. But the community is at a disadvantage because it is decentralized, so coordinating to do this is slower and more difficult. There will be confusion as to who votes for which batch of 10 witnesses, and exactly how to spread the SP in half. It will be very difficult to coordinate that.

So I think reducing the number of witness votes will make it easier for a single, centralized entity to take over the chain.

Some people may say then that we should reduce the number of consensus witnesses, but I think this is problematic because if any single entity wanted to buy off, hack, lead a smear campaign against or otherwise remove the witnesses as an obstacle to its takeover, then the smaller the number of consensus witnesses, the easier for the entity.

Does this make sense? Or do you see it differently?

I think 10 comes with the same pitfalls as 30, which is why I would propose 3, or maybe even 8 as Rycharde outlined. 3 would protect against blocking HFs, 8 would protect against pushing through HFs.

Well that only seems to make it worse. If everyone has 3 votes, then the community has to distribute its votes into 7 equal groups in order to overcome any takeover attempt by a single entity. More coordination and difficulty for the decentralized community. You don't see how it's only making things worse?

If everyone has 3 votes, then the community has to distribute its votes

That's the point. No single entity can control anything, and the governance is more decentralized. I need to run the numbers, since things would change quite drastically, but it would seem from a cursory glance that this could be a good first step in making sure it's a the community that ultimately decides, not one person or organization.

Have you guys talked about the 1 SP - 1 vote idea?

You beat me to it.

This is also something worth considering, but it comes down to:
-ease of implementation
-community support
-effectiveness of accomplishing the goal

I'm not a dev, so I can't speak for the first one, for the second one the community seems split or apathetic, and the third point should be a good debate I'm looking forward to.

We should run some simulations to determine what happens in each case based on major voter preference now.

If you have those resources and skills, go right for it.

what would self votes look like for witnesses? all witnesses just vote themselves with the one (by convention rather than rule) or banned from the self vote?

Why not change it to 1? SP should only be allowed to vote once. Now an account could split their SP as many times as they want, but each SP (for lack of a better term) will only able to vote once.

Example. I have 2 million SP. If I vote once, that witness gets all 2 million. If I vote a second time, it gets split. If I vote a third time, it gets split again.

I agree with this post. Only change I would like is to see 3 votes not 8 that way you can't even vote to block a soft fork. With 1 prrson with enough stack can block a fork.

Also this all exchanges accounts are to be known and blocked from voting

Yes, I see @r0nd0n also agrees with this.

There is a logic to this too.

Maybe dropping from 30 to 3 in one step is deeply radical!

I am personally not wedded to a number so long as it has a logic behind it given that there are 20 top witness slots.

Doing it the other way round, by increasing the top witnesses won't work as the number of current votes is way too high compared with active witness nodes.

Remove weighted stakes from governance voting.

Let's combine dPOS with capitalism and a bet market instead of the flawed witness-election and SPS which is highly centralized.

We have plutocracy on steem rn, in capitalism (like a betting market combined with SPS) people loose if they bet on shit... and winning if they've bet on a good idea-
In our plutocracy there are always the same people deciding, cuz they don't face consequences for their decision like in capitalism..

Let's finally incentive good ideas and growth instead of running after people with big stake (who only care for profit - that's not always the best for the chain) /look at drug dealers who just searched for a money-wash-machine on the btc forum, when steem launched

@lauch3d

@r0nd0n

@edicted

All your rhetoric makes me feel warm and fuzzy inside, but my mind is blank. The devil's in the details. How would this actually work?

It's actually @lauch3d 's rhetoric and idea!

I just try to bring it to the community. Make the stone start rolling :)

Sadly I'm in stationary pain therapy rn and very limited..

But I'm putting time into thinking. As many others do.. And I think we can start a beautiful chain with sooo much potential!

I bet lauch3d can tell you a bit more about how it may work.. :)
But we all need to work together, think together, have conversations.
It's finally time.

Thanks. Yes, thinking is good and the freedom to think on-chain should be protected.

Changes can happen during a crisis, not always after one, when parties are sitting at their comfy chairs once again.

DPOS on its own is not working as there is very little feedback to attenuate the plutocratic convergence. I also like some randomising elements, just as in real life. But this needs a broader forum in which to discuss these issued. I'd happily open up my discord channel.

Betting markets, eh? Putting your money where your mouth is, letting the efficient market show where the truth lies.

That's very nearly like doing a Proof of Stake consensus... to govern your Proof of Stake consensus.... I like it!

I think we should forbid accounts with reputation less than 40 to be witnesses.

Posted using Partiko Android

But aren't some of the lower rep accounts big investors who really have a vested interest in the chain and Steem?

one single vote can change that

sounds very decentralized.

Rep means mothing tho. 1 good vote and you can be at 40 no problem. The steem rep system is very broken

Why?

Have you thought through all the attack vectors to distort such a condition?

A well reasoned plan. Whether Sun would accept this is probably debatable, as it seems likely he's waiting while his monkeys code a hardfork to allow him to powerdown almost instantly with the help again of the exchanges.

True, but all sides currently champion the "decentralised governance" model and it would be hard to argue against these proposed DPOS changes from that POV.
Both sides could flatly refuse, of course, but that seriously weakens their claims regarding "decentralisation".

If you change the votes to 8 right now it will benefit to Justin.
Why? Because he could guarantee a certain number of seats in the top20.

Right now he can not guarantee that.

Yes, he would have 8, with the other 12 going to the community.
It would still be stalemate.
Just as in the nuclear cold war, as nobody could win, the best course was to de-escalate.
The time it would take to, say, move funds around to vote for more than 8 witnesses would also be enough time for the current Steem community to increase votes on their own witnesses.
What is happening now is that all parties are escalating their SP and I'm not sure Justin can't win such a financial war.

(sorry, not to confuse with the wrong account, reposted)

Yep, Justin has more money than us, and he most likely still has the backing of those exchanges. He could probably go back to 20 witnesses at any time he wanted.

I suspect he needs to accumulate, but yes, he can mount another attack and get all 20. That's what my DPOS proposal would stop - him getting the full monty.
There could be another attack vector with 8 votes, which would mean splitting his VP, but that may be slower to implement and more expensive.

Interesting concept. In general I would support it if bigger brains than mine think it would help. But I do not think you could get both sides to agree, because they both have things they believe must be met to go forward and this would still maintain the stalemate we are in. The big threat is still if the exchanges are convinced to vote for TRON witnesses as they believe in a 1 day power down HF and get their money back. Of course they should have started power down and get funds back week by week while still holding voting power.