Before you continue reading this post, I recommend you to be sure to read:
The History of Delegated Proof-of-Stake (DPOS) by @blocktrades In the Beginning, There Was DPoS by @theoretical XRP/Ripple Summary by @joelkatz The Ripple Protocol Consensus Algorithm (original whitepaper) Understanding Proof of Stake: The Nothing at Stake Theory What is Steemit reputation and how does it work? by @arcange
Let's define the "Benevolent Dictator" as a centralized entity that has total control over a group of block producers in a way that it can control that blockchain without provably risk of being replaced by another entity.
Back in 2012 when the Ripple (then Open Coin Inc) protocol was launched as a cryptocurrency related project, the company itself acted as a Benevolent Dictator. Each node contributing to the ripple ledger was operated by Ripple aka Benevolent Dictator.
However from its inception, a plan was set to decentralize the network resorting to the Unique Node List (UNL) maintained by each server. Only the votes of other members of the UNL are considered when determining consensus. So if the UNL consists of only Ripple controlled servers, then the ledger is centralized.
The idea behind the "benevolent dictator" on its inception is that there is no point (for that dictator) in destroying value as at that point of the history of the network is a "to be created" status. Before taking advantage of any amount of "value", it must be created.
On classic Proof-of-stake it is suspected that an attack could cost as little as purchasing only 1% of the stake in the network. If disrupting consensus theoreticaly costs only 1% (in PoW an attacker needs 51%), then any malevolant participant could jeopardize it.
There is no point in having a network of servers resorting to a UNL if all servers are run by the same entity. If you want a real decentralized network, those servers should be operated by independent entities, the group of "trustees". The Unique Node List, is just the list of trusted nodes for each server.
The "Benevolent Dictator" however controls the process of decentralization by means of a gradual transfer of power. It shuts down one server at a time and the "trusted independent entity" is added to the UNL as a replacement. So the influence of the "Benevolent Dictator" in conforming the decentralized UNL is similar to the STEEM ninjamined stake (or in general any "nijamined stake").
"DPOS was essentially a synthesis of these two ideas, combined with a twist: instead of large stake holders directly producing the blocks, the stake holders would elect the block producers to make the blocks."- @blocktrades
In my opinion, DPOS is a synthesis of Consensus in its "Benevolent Dictator" stage and POS. That synthesis opened the door to the appearance of Dictator (either "benevolent" or "malevolent").
Thats the current situation for Steem. A "Malevolent Dictator" managed to disrupt STEEM by controlling enough witnesses. Benevolent witnesses in turn soft-forked the network in a way that resembles the UNL ideology. But since DPOS is a trustless protocol, the "Malevolent Dictator" managed to reinclude himself on the network by means of Steem Power.
As STEEM is a social blockchain, there are certain human attributes and values that need time to develop. According to @blocktrades STEEM's reputation system was developed as a quick bandaid for spam problems that needs to be improved by a reputation system that really works.
Lets for a moment imagine that a reputation system that really works is already implemented on a DPOS blockhain.
The next logical move is to include that reputation score in the witness electoral process. Such a system is no longer a Delegated Proof-of-Stake blockchain.
Let's simplify the idea:
DPOS: Voting Power --> witness rank
So its a voting power competition. On STEEM the first 20 witnesses "win" the competition and are the equivalent of the UNL on Ripple consensus (a sort of "reputation" list).
Why not enhancing the protocol by taking into account the "reputation" of each witness (providing is a reputation system that really works). Thats what I describe as a new synthesis of consensus ideology.
REDPOS: Voting Power * Reputation --> witness rank
That's how you could avoid 30 newly created suckpuppet witnesses with a #25 REP taking control of a 4 year old blockchain.
STEEM not only needs a fork but it needs a protocol enhancement, a REDPOS as the natural evolution over DPOS. Afterall, it's a social blockchain.
#steem #witness #dpos #redpos #tron #ripple
For the sake of STEEM's decentralization, this would be the best path to take. In all ends, the community-elected witnesses will ultimately decide the fate of the Blockchain. I believe they'll do the right thing in order to prevent any situations (like the the recent hostile takeover) from occurring again in the future. While this is my first post/comment, I've been into STEEM since its early days back in 2016. Things were a lot different back then, than what they are now. I hope that this dilemma would be put to an end once and for all to restore stability to the STEEM blockchain.
Things aside, your article/proposal was a great read. Thanks for sharing this with the STEEM community. STEEM ON!
"...a reputation system that really works..."
There's the rub. It's difficult to imagine a reputation system that actually works. The current Steem reputation system is demonstrably not it. You can just buy phat votes that will jack your rep on Steem presently.
Think about how rep works in the real world. There are folks you admire, and whose opinions you value highly. They have high rep to you, but who knows what their rep is to others? Not you, unless you know those others and discuss that topic, and they actually tell you the truth.
Rep is a highly complex and utterly subjective mechanism in the real world, and that's why it has value. Trying to make something similar has proved difficult on social media, athough UA seems to have done the best of any attempt I am aware of.
The fact is that I do not share your opinion of User X, and I don't want to. If I do value your opinion, I might assign it some ability to indicate how much I'll respect someone else - but only to some degree, and that is going to vary from person to person, on both ends.
How that might impact witness elections is just as variable.
Personally, I reckon the age of representatives is ending. It's time for liquid democracy without representatives; for users that are nodes and do the governing themselves. AI will be more necessary for we noobish plebs to be able to set price feeds, as an example of one such variable, but that's only necessary if we have multiple tokens, which isn't particularly necessary TBQH.
A stripped down code that can run on obsolete boxes with users sharing the data via torrents can eliminate hosting costs, nodes otherwise, and be actually distributed and utterly decentralized, and after seeing Steem, that's what I reckon we need. There's a million ways to share beneficial interest, and a token isn't a necessity. Dapps that add tokens, different types of content, and etc., can supply nodes and bandwidth along with the content,and users can add them to their stack if they want.
I expect an actually functional reputation system will be more difficult than almost any other aspect of a social media platform because of subjectivity, and the difficulty of making that useful.
Great post and idea ! But as stated by others , finding the right reputation system is hard. I really like the theory behind @steem-ua but there are some flaws : it's computationally heavy (iterations) , and they used witnesses ranking for initialization. Also I'm not sure if they made the code opensource or not at some point
Aren't witnesses suppose to be like UNL trustees? So, what would qualify as a UNL? When you say Unique, does that mean unique IP Address, MAC Address, that is the physical device of the witness, the node, the server? Do you want to hard-wire into the blockchain a mechanism for verifying unique nodes or IP addresses for each UNL? But what would you do when you run into proxies?
REDPOS would be better than something like DPOS to the extent that REDPOS can integrate REP into the DPOS system. Yes, it would stop the Tron puppets which came out of nowhere in February of 2020, at least in theory. So, I like this REDPOS idea. The details to how REDPOS would work specifically could be debated and tinkered with.
You gave "food" for thought. Nice post that fires up contributing conversations. Tank thinking is needed.
Voting Power * Reputation --> witness rank
I have been considering something like this even before @justinsunsteemit took over.
But not just for the witnesses but for everything in involving steem power. Notably upvotes and downvotes.
That would make most bots more difficult at a bot would need to build up reputation.
Mind you, better than merely multiplying would be a convergent reward curve like 1-e⁻ˣ where the reputation sets the upper limit on influence.
to late now.
As many others already pointed out, making an automatic assessment of reputation is extremely difficult. And that is not all, there is no guarantee that the account owner stays the same. Probably the easiest way to make a reputation system would be account age, capped at 2 years (Else it will get increasingly difficult to remove malicious witnesses in the worst case as well). Now, Justin Sun could just buy 20 accounts (sneaky) of people to do this. Not only that, Steemit Inc probably owns a whole fleet of "old" accounts they could've used for this.
Now, the more complex the reputation system gets the more difficult it will be for an attacker to take over. However, it also gets less democratic with each step. What happens if there is a witness the vast majority disagrees with but due its time on the chain its reputation is too high to remove it from the list of witnesses.
Thoughts on a reputation system similar to Google's page ranking system? Users could have a place somewhere in their profile where they add links to other users that they consider trustworthy for governance. Someone with a high reputation adding a link to another user means that this second user's reputation increases. Whereas if a low-reputation user adds a link to another user, it doesn't make much difference.
How Google did it is that they manually picked a number of websites that they considered trustworthy and gave them a high reputation. And from there on, when those websites included links to other websites, then it increased those other websites' reputations. And so on it spread. We could replicate this process for user reputation. Reputation would basically be a score for "How trustworthy is this person when it comes to the governance of our platform?"
A good comparison!
I would love to read some open research. Unfortunately there are no scientific blockchain designers in the steem-ecosystem (I´m aware of, maybe there are?). I mean I wish them the best luck with trying things out but the big guys @ bitcoin and ethereum, cosmos, ... work with mathematical proofs. On steem it was like "hey look at us we have lots of SP hence our opinion is "right"..." , I mean they maintained the code and stuff which is great but there was no opensource-evidence based discussion going on.
They just need to prove collusion resistance with a game-theoretical model...
I mean dPOS is a consensus mechanism, the voting mechanism is not the consensus mechanism. Mathematically both are two distinct modules interacting. Like PoS is not a consensus mechanism. Proof-of-Stake schemes (like Proof-of-Work) are oracles, they don´t output consensus.
No change is possible as the "benevolent dictator" is guarding their influence. I've asked several witnesses for a response to Steem blockchain multivote security vulnerability but... as well I could not ask. Steem is centralised and will stay centralised despite 'de-centralisation' narrative in the blog posts by witnesses.
I really welcome this idea!
Neat idea. I also think 1sp should equal 10 votes instead of 30.
@blocktrades - please consider It's just a draft. percentages can be played with. Food for thought
This is a good starting point for exploring improvements. One advantage of DPOS is that you can tweak voting in an infinite number of ways. Besides user reputation, I'd like to take into account the witnesses' track record, i.e. how many blocks they've produced and which percentage they've missed. And while @steemchiller wants to stop witnesses from voting (which would be easily circumvented), I want to give them additional votes. E.g. the top 5 witnesses would co-opt 5 additional witnesses. This would be a way to appoint people who have proven themselves as experts, but aren't rich or popular.
I think experience has shown that a more conservative system would protect us from attackers. This could include a popular vote weighted by account age, account activity, reputation and a follower graph like @steem-ua. It would be difficult and expensive to fake all of those signals.