You are viewing a single comment's thread from:

RE: Steem Town Hall - Noon Eastern 16:00 UTC (3hours from now)

in #steemtownhall5 years ago

I have yet to see something that moves toward a one-person one-vote system that is anonymous that isn't vulnerable to Sybil attacks. Justin Sun could create ten thousand accounts and there you go.

Pick one of two: Anonymous, One-Person One-Vote

Sort:  

It makes it more difficult. Regardless of how many accounts he has, he would have to have the SP to vote in 20 witnesses. The rest of the participants would also be able to vote.

For example:Let's say he has 20 SP and you and I have 1.1 each. He could vote in 20 witnesses, but you and I could vote in our own witnesses each. It is harder for him to create a consensus by himself. It wouldn't make a difference if his SP was split among 20 accounts or 1.

I think it is more like there can be a million copies of himself all voting for his interests as it's not a one-person one account system. How could it be without a completely centralized distribution? We can't have both 'decentralization' and 'one-person one-vote'. You can't keep your cake money and eat your cake too.

@moeknows didn't advocate 1a1v, but 1t1v. No matter how many accounts Sun may have, he only has so much stake to split amongst them.

His voting power comes from his SP, not the number of accounts he has. If he had 20 SP spread across a million accounts, you and I would still be able to implement our witnesses.

But it wouldn't be that way. To the blockchain software all of his sock-puppet accounts look like distinct individuals. The account '@goodguy24' has to have and does have the same privileges as myself. So, if I can vote for twenty witnesses with twenty steem power so can @goodguy24, and @goodguy25, ..., @goodguy20000000.

So that leads us to KYC for all Steem accounts and this is not me advocating that but more of "devil's advocate" discussoin. Then there would be a honey pot great for identity theft somewhere. Start a new chain with only the ones that go through the trouble of KYC and lose 99% of the users. Then freeze people's accounts like they did with Justin Sun's because someone is anti-Vax, or a global warming skeptic.

We don't want that.

But the witness ranking has nothing to do with the amount of votes a witness receives. It only concerns the amount of SP behind those votes. 20SP is 20SP regardless of how many accounts it took to make up that SP.

okay. so the new design is a witness can only get 20SP worth of votes? There would be a multihundred tie.

No. It would be that each SP can only vote once. Regardless of who owns the account, we know how much SP that account has. Whether he had 10 account with 2 SP each or a single account with 20SP, his ability to vote with that 20 SP would be the same.

Ok. Only one vote per each Steem power token. Understood

I think that somehow taking into account a well designed reputation score to affect the power of votes could handle sick puppet accounts

It doesn't stop the attack, but it does mitigate it. As it sits now, he has the ability to vote 30 times with that same SP, so you and I are unable to come close to affecting that.

he is not saying one person one vote, he is saying one SP one vote. Huge difference. Under this proposal (which I think is a great idea),if you control 10 million SP, you get 10 million votes to divide up how you want between witnesses. If you made 10 million accounts each with 1 SP, that would still be 10 million votes total. If you kept all 10 million on one account, still 10 million votes total.

The current voting system multiplies SP held x 30, meaning if you hold 10 million SP currently you can actually cast 300 million SP worth of votes at max (30 witness votes each at 10 million SP). Because it is a multiplier, it has more impact the larger the starting amount of SP. Consider simple example - one person with 100 SP and one person with one million SP. There is 999,900 SP difference between them right? With 1 SP = 1 Vote, that is also exactly the difference in voting power between them. Compare with current system, where 30 votes x 100 SP = 3000 SP worth of votes and 30 votes x 1 million = 30 million SP worth of votes. That is a a difference of 29,997,000 SP voting weight between the two accounts even though there is only one million SP difference between them.

Okay. On the other hand, the one with 100 SP is 1000x less as powerful than the one with 10 million SP in both cases. In aggregate this would make no difference in keeping someone from buying governance by getting millions of cheap Steem.

nah the current model you only need 1 single SP more than the current amount of SP voting for the highest ranking witness, and you can elect not just the top 20 but the top 30 witnesses. Changing to 1 Sp = 1 vote makes a huge difference in two ways. #1 the multiplier effect mentioned before - a hostile attacker who had as much SP as the current top witness vote getter would only be able to elect ONE witness into the top 20, instead of replace ALL.

BUT more importantly, the way the hard fork rules require 17 witnesses to pass a hardfork and conversely only 4 to block a hardfork plays into 1 sp = 1 vote very nicely. A hostile takeover has to split its SP among 17 witnesses, while a community defending against a hardfork can concentrate all its SP among just 4 witnesses. That alone means the hostile party needs 4 x more SP.

Another way to visualize what a giant difference there is between the two systems is to imagine the case of voting for only one witness vs. voting for 30 witnesses. Under current system if you only vote for one witness you are in essence only using 1/30 of your total "witness voting power" (for lack of a better term). And if you vote for 30 witnesses, each one gets as much SP as the one would get if you only vote for one witness.

Now compare that to one SP = one vote. If you only vote for one witness (spending all your SP votes on that one witness), you are using 100% of your witness voting power. It is all just concentrated on that one witness. And that one witness vote would be 30 x as powerful as the votes you could cast for 30 witnesses.

In your new scenario you would have 1/30 less voting power to overcome in order to take over.

Let X be the amount of SP required to take over a chain.
Let's use a really simplified example:

There are 80 Witnesses with the lowest one getting 1 SP and for each change there is a 1 SP rise.
Then if each user votes for one witness only there is 1+2+3+..+79+80 SP in total being used to vote.
That number is 80*81/2 (=3,240). In the opposite if every users uses all 30 votes there is (1/30) of that: 108 SP backing all those witnesses.

So our current state is 30 votes per user, so there must be at least 108 SP backing the witnesses. In order for someone to take over the chain, the user only needs to have 78 SP (or actually 77.001 SP) and he can vote 17 times and get sock puppets and take over.

So in this minimal case of 78 SP in this scenario ( and I haven't really been rigorous I admit in accounting for all distribution curves ) if we switch to 1 vote per SP, then the top witness doesn't get so much. Unless the distribution is changed, instead of 80 SP behind the top witness, then there could only be 2.667 SP. The 17th spot would be at 2.567 SP. Now, the user that has 78 SP can simply divide his vote by 20, 78/20 = 3.9 SP. Now that's enough to take the all 20 witness spots.

So in the 1 SP = 1 vote scenario: There is 108 SP backing the witnesses. If users change their habits? These 108 SP could change voting habits. Vote in 20 at 3 each. That's combining 60 SP together. To prevent hard-forks you just need 8 SP voting up contrarian witnesses.

Back in the current 30-votes per user, there is 108 SP. We can vote in 20 at 3 SP each but we can vote for those 20, 20 times each. With only 60 SP it's not enough. Indeed you would need 80 SP voting for 20 witnesses in order to defeat a Justin Sun. You need 60 SP to prevent hard forks.

At first it seems the proposal just weakens everyone by a factor of thirty, but by playing out scenarios we can see there are advantages to this proposed system for those who would have liked to see Steem consensus rules change less. Someone like myself would prefer this system.

in the real world there is some overlap between witness votes but actually (pre hostile takeover) there was not as much overlap between witness votes as your scenario assumes. For instance, not a single top witness had both the Freedom and Blocktrades votes, which were the two largest votes pre Stinc stake being used to vote. But as you point out, even in the very simplified and unrealistic scenario you present, being able to concentrate witness votes on just 4 witnesses to prevent a hardfork is actually a strong measure to deter hostile takeover.