A Case for Stake-weighted Voting?

in steem •  6 years ago  (edited)

Or at least more work required on the auditing side of things for Account-based voting....



Today I planned to have a look at @theycallmedan's current Poll in which one lucky community will receive 10,000 delegated Steem Power for a whole year.

https://dpoll.xyz/detail/@theycallmedan/which-steem-project-should-i-delegate-10k-steempower-to-for-1-year/

I was thinking of pulling some alternative metrics, such as:

  • What if the votes were stake-weighted (totaling the Owned Steem Power of the voters)
  • Subtracting votes from accounts without a post
  • Subtracting votes from accounts < 40 rep
  • And, perhaps most controversially, subtracting votes from accounts that were created after the start of the Poll

Of course, none of these findings were to in any way alter the final vote counts - it was more for personal interest than anything else.

And so I made my SQL query and gave it a whirl. Damn JSON, he can be a right pain:


    select
    IIF(isjson(json_metadata) = 1, IIF(CHARINDEX('/', json_value(json_metadata, '$.votes[0]')) > 0, SUBSTRING(json_value(json_metadata, '$.votes[0]'), 1, CHARINDEX('/', json_value(json_metadata, '$.votes[0]'))-1),json_value(json_metadata, '$.votes[0]')), null) as [Voted],
    count(*)
    from comments where parent_permlink = 'which-steem-project-should-i-delegate-10k-steempower-to-for-1-year' and depth = 1
    and IIF(isjson(json_metadata) = 1, IIF(CHARINDEX('/', json_value(json_metadata, '$.app')) > 0, SUBSTRING(json_value(json_metadata, '$.app'), 1, CHARINDEX('/', json_value(json_metadata, '$.app'))-1),json_value(json_metadata, '$.app')), null) = 'dpoll'
    group by
    IIF(isjson(json_metadata) = 1, IIF(CHARINDEX('/', json_value(json_metadata, '$.votes[0]')) > 0, SUBSTRING(json_value(json_metadata, '$.votes[0]'), 1, CHARINDEX('/', json_value(json_metadata, '$.votes[0]'))-1),json_value(json_metadata, '$.votes[0]')), null) 
    order by count(*) desc


The above gave me the following output:



Scanning the numbers, something didn't look right. @votovzla, 3 out, @steemitbloggers, 2 out, and @team-cn, 58 out out when compared to the screenshot at the top of the post.

And so I simplified the query and ignored looking for the exact JSON. This included the rest of the comments on Dan's post, but the numbers were still way off.



And so I phoned a friend who can pull the same data directly from the chain. The screenshot below is an hour or so behind the ones above, but you get the idea - still a pretty sizable discrepancy:



So what could it be?

The number of entries on the chain, particularly for the @team-cn vote, do not match the count on @dpoll.curation.

Deleted Comments.

The following accounts voted on Dan's Poll, and then deleted their comment on the post.

'public-advocate', 'prominent', 'ninedragons', 'vote4u', 'dragon-blade', 'al-amanah', 'mk111', 'worldclub', 'the-excavator', 'woodside', 'quarantine', 'dolphin-power9', 'sukhoi-su', 'simpanan', 'dolphin-power10', 'dolphinp', 'coonawarra', 'whalepower', 'storm-shadow', 'sky-bolt', 'l00', 'the-exocet', 'seawise-giant', 'ballarat', 'freeservice', 'whalepower-guide', 'balancepower', 'tenaga-satu', 'the-reef', 'sbd4vot', 'dolphin-power3', 'steem4vote', 'meko200', 'paul-gillbanks', 'pterosaur', 'bullionstackers', 'globalex', 'c-solstice', 'ppagoda', 'word-of-the-day', 'point-blank', 'v-1', 'dolphin-power6', 'helios', 'applex', 'shenyang-j', 'timeblock', 'bagger293', 'tanaman', 'surion', 'reservoir', 'dolphin-power7', 'cairns', 'author-fund', 'minuteman111', 'dolphin-power8', 'solidgold', 'global-pillar'

Why would you do that then?

And 58 you say? Where have I seen that number before......


I think it would be unwise for me to point fingers right now, particularly before @emrebeyler has done a full audit (which he undertaking at present), and so I'll leave my opinions for later.

Just to be clear. Nothing against @dpoll.curation here, and the great work Emre has been doing for Steem.


We saw the @steemalliance put their votes out to the public for review, likely after suspecting foul play. And the above doesn't look great, does it?

Stake-weighted voting back in the game?


Cheers

Asher

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Would be interesting to see some type of vote scoring system like 90% of the score is based on stake weight and 10% is based on the total number of votes. I don't like the thought of being able to buy victories, but just creating large numbers of spam accounts to boost polls doesn't feel right either.

Maybe the answer is when the poll is created no new accounts can vote after the poll creation and a snapshot is taken of SP for accounts and that's what stake you get to vote with in the poll. I know suggestions are always easier than implementing said ideas, but worth a thought I think.

  ·  6 years ago (edited)

Yeah I think that is worth considering.

I did think of a what if < 1000 SP = 1 vote, and then every 1k SP owned is an extra vote. It could be worth a look to see if there is any scope there.

Maybe the answer is when the poll is created no new accounts can vote after the poll creation

I think this is definitely worth implementing.

Totally agree. I don't think it'd be too hard to code either...

The account created date would be a really quick job.

Thank you for checking the data @abh12345! :)

I am currently doing an extensive audit. I will post the results, and scripts tonight, hopefully.

My pleasure. To some extent, I'm sorry to have found these 'discrepancies', and was looking to do a 'fun' post on the data.

Hopefully the audit will clear things up

great find, Asher! If we have anything on Steem, then it's plenty of accounts controlled by few entities. This was by design from the mining phase, not successfully prevented from the Steemit signups and required for genuine signups. This inevitably raises some doubts on account based voting systems. How to ensure that one account is one natural person? Close to impossible, if you ask me. Do I spot some very similar account names in the list of deleted comment authors?

We are certainly plentiful in those :)

I would agree, pretty much impossible without performing checks that many will (perhaps rightly) choose not to be a part of.

Do I spot some very similar account names in the list of deleted comment authors?

dolphin-power 1 though 10 you mean? hmmm

You know, @abh12345, you haven't quite opened the can of worms these findings lead to, so hey, I will. :)

We could have one account voting if we had any kind of 'know your customer' in place. Surely there's a way to do it and preserve the all mighty anonymity and security everyone seems to be concerned with (until for whatever reasons, they're not).

I'm not a developer, or a decentralized evangelist, or a blockchain brain, so I'm sure I'm missing all kinds of things, but having all accounts opened by a single individual tied back to that one individual, account based voting or not, seems like a simple ask. If no one wants anyone having access to that information, then what about writing it into the code.

I don't know the way to do it, but there's got to be one. Telling me it can't be done (not you, just anyone) because of this and this and this is no more a solution than the nonsense I may be ignorantly spewing now. Somewhere out there is the way to do this. There's no reason why we can't just have fair voting (outside of human nature, which I guess we're always going to be combating), but dang it, we could certainly make it way harder, and way more costly to do.

Yeah.

At present, most accounts are coming through the claims route, and so we know who the original marker sat with.

There are still multiple ways to pay for an account and be anonymous, or go through the Steemit inc sign up process (perhaps with a throw-away phone number), and I suspect these methods aren't going anywhere soon.

Sooo, at present, I have nothing with regards to a solution. Oracles were touted as being a step towards implying an account was 'good', but those are seemingly some way off yet.

I believe a calculation involving the following should be considered:

  1. 1 for 1 vote aka dpoll
  2. stake-based (then would we treat stake as proxy?)
  3. time-based (age of account) + activity

#1 This is the current simplest way if no one cheats and gets their bot accounts to vote.

#2 Delegations should be excluded but its debatable whether stake would be calculated same as for witness approvals, aka with proxying. I would say yes to allow users who have a distributed stake amongst numerous accounts to have one vote. On the flipside, that brings up the question of whether an account that has a lot of proxies would then overshadow the individual votes of its proxies. In that case the solution may be using the trustee information. That would once again have issues as some accounts are the creators of other autonomous accounts. Anyway, this is a point worth debating.

#3 refers to the fact that a user who's been active for let's say two years would have a greater knowledge and personal investment in the ecosystem then someone who's been here for a week. The activity parameter would be needed to prevent botnets and old miners. Activity would be based on posts/comments, not trading activity or just votes.

I'd have to get out my stats notes to come up with a calculation.

Yeah it's possible that a compilation of the 3 or a mix n match could be investigated.

1 vote per 1k SP owned, starting with 1 at < 1000 SP might be interesting. It's stake weighted but means a Whale would have 501 votes and a Redfish 1 vote - 500 more votes instead of 1000+.

A users activity is an interesting one. I guess some of the 'quieter' whales would have something to say about that.

Oracles could have a say in the future too......

I think these oracles will be so subjective they'll negate any value. Good point on the quieter whales. One option would be to encode github contributions onto the chain but then we're dealing with an immense amount of spam. It is pretty hard to gauge a user's true activity, which is why every calculation so far failed.

Loading...

The implications of this — once again — points to the fundamental "rift" we seem to have in this ecosystem... I can't draw specific "lines" here, but they fall loosely along the "cleverness" vs "effort" spectrum... I'm part of the @steemitbloggers group, too... as well as your own leagues, and I'm a firm believe that the only long term hope we have for this ball of wax is for the community builders to gain upper hand.

I realize that I may be a "partial" participant here... but I am also a realist in recognizing that our tiny group is a long shot. The potentially "bitter pill" isn't in not winning because we busted out butt, but in losing because of manipulation and foul play.

So I'm glad you've opened this particular can of worms @abh12345! And I will be curious to see what @emrebeyler's audit reveals.

As for my comment about "the future of this ecosystem," my point is that NO social platform can expect to develop life and longevity based on "who can create the smarter piece of code to outmaneuver the opposition." But then again, I know lots of people who — upon release of a new game — the FIRST thing they do is go in search of "cheat codes," rather than actually play the game.

From where I am sitting, that says way more about their character than mine.

And yes, I'm being judgmental.

Ahh, the cheat-code searchers. What a sure-fire way to spoil the entertainment of a game.

The audit Post was released the other day, and it seems the decision on the matter will be left to the Poll creator.

Yea, I mean no one really wants account-based voting, they want person-based voting, and there's currently no feasible way to do that here. Any whale or voting bot with a large amount of SP could create 10,000+ accounts, for free, right now, and then be able to swing any poll on the platform. It wouldn't be very hard to get them to 40+ rep either. At the end of the day that just means that these polls should only really be used for lighthearted things that don't carry serious monetary value or importance.

Posted using Steeve, an AI-powered Steem interface

Yes for sure, we are seemingly a long way from people-based voting methods.

If the vote relates to money or major decisions then stake should have the say. What's the point in holding influence if you have no more of that than someone who signed up yesterday and has invested nothing?!

Interesting findings.
Things like this can happen when it’s account based voting. I wonder how dpoll can be improved in the future concerning this issue.

Yeah, people-based voting would be best. Just hard to do!

I think the developer of dpoll.curation is working on a few things already.

Why, for any reason, did anyone think account-based voting on a blockchain with no true identity verification would be a functional approach to holding a ballot?

Am I missing something? Projecting forwards towards Oracles and future-tech, or...?

Yeah...

I think yabapmatt mentioned that Polls have some value for the non-serious stuff, but as soon as you are talking money the risks of foul play grows significantly.

I suspect, while we await Oracles, that stake will need to play a part - some won't like it of course, but I've not seen any better ideas surface with what we have available at present.

  ·  6 years ago (edited)

We need DNA/retina/fingerprint scan to become standard issue in all modern PCs. Turn the data into a cryptographic hash somehow and implement.

Also, I would quibble that if something is possible, it cannot truly be considered foul play, if the goal is an immutable matrix of information, as the universe is. I know it's something of a personal stance though, as there's little I detest more than unenforceable rules in contradistinction to actual natural law, like the boiling point of water.

However, we're in that painful period of technological transition (at least, we, the homely populace: can't speak for what the rich elite have achieved in military applications) where we fall very short of emulating that sort of informational integrity. It's nice in a way because it pushes human ingenuity to keep innovating and striving for a closer understanding of how things operate in nature.

You are eagle eyed and nothing gets past you. Maybe you should have been an auditor.

heh :)

My intention was to have some fun with the numbers, seeing as their were a good number of respondents. But the numbers did suggest an audit was required. @emrebeyler has posted recently.

Was hoping someone would bring this up. Thank you @abh12345

No worries, well, not for you anyway!

hahahahaha :P

OMG!!!

Three exclamation marks, this must be serious!

Like @fionasfavourites I don't understand the logistics but it's easy to understand the implications.

In the end one team may win the 10,000 SP but there are several teams like the Steemitbloggers (PowerHouseCreatives), Qurator, Freewritehouse and Actifit that will win our respect and admiration. ♥︎♥︎⚖️♥︎♥︎

For sure, Steemitbloggers have rounded up a lot of support, seemingly working around the clock to try and win the contest :)

@abh12345, given that the @steemitbloggers/powerhousecreatives community has members from 24 different countries... yeah, we've definitely been working around the clock! 😂 😊

😂

You know what I mean!

Yeah, but my superpower is stating the obvious (or so my kids tell me), so... 😂

brother thank you for publishing this audit, yesterday I made a comment to @theycallmedan. How well that more people noticed.

No worries, hopefully the audit will give fair insight.

I had a suspicion of this, but didn't have any hard proof... Just was curious about so many non posting accounts coming out suddenly to vote. It was a touch curious...

I would say it's OK not to have posted - could be someone registering to play SteemMonsters? Worse if the account appears after the Poll has begun perhaps.

Wow!
Thanks for the analytical side.

That's what I try to do :)

Wait... why would people delete their comments? And what is the relevance of 58? So many mysteries...

I suspect it would be to hide any familiar looking names. 'dolphin-power1'... 10 in the list of deletions.

Ahhhhhhh... thanks. I had to do some digging through Steemworld to see who was using that account. Super interesting...

Ops. Things happened.

That's interesting... I wonder why the counts would be off? I hope nobody is trying to cheat. I'm rooting for @steemitbloggers all the way!

Thankfully we all took our moral showers before walking into this competition hahaha :)

And we all know the Ozzies could do with a shower :P

  ·  6 years ago (edited)

LOL! yes agreed! Especially their rugby team :P thankful to be South African!

LOL, feck, messed that joke up!

nah - just re-thought and decided I would grab the opportunity to take a dig at the Aussie rugby team... its no secret they are no friends of the Springboks hahaha

@abh12345,

It's the thought that counts. :-)

Quill

Thank you to both @abh12345 and @emrebeyler for your diligence to keep things on the up and up! It is very much appreciated!

No worries. Hopefully the audit will conclude the matter fairly.

What does this mean @abh12345? Something dirty going on behind the scenes?

Posted using Partiko Android

Perhaps a bit of alt accounts number bolstering. The owner of the Poll interface is doing an audit today I think.

Mmm I will keep a close eye on that audit, keep us posted on the findings! Thanks for bringing it to our attention

Posted using Partiko Android

Ooooohhhhh don't mess with the numbers man :D

oops, too late :P

...or better, don't mess with the Chinese bro. LoL

Could be anyone trying to influence the voting!

While I’ve never used it. Would be interesting I’d think if whoever creates the poll was able to set a min. vesting shares amount if they can't already to try and weed out any account spammers. Some people just have to many accounts!

It's an option, but could be a metric to consider.

Some people just have to many accounts!

yep!

Numbers are interesting things. More interesting to me is how concerned a whole lot of people have become about this. It says a great deal about human nature, although just what it says I've yet to figure out.

Thanks for sharing some data! I'm glad there is a contest happening that has really engaged the blockchain. I haven't seen anything quite like it before. :-)

Proud member of #powerhousecreatives

We are in newish territory with Polls - they have become a recent trend.

Hopefully today's work has helped the lead dev, for dpoll.curator, and he's just posted an update:

https://steemit.com/dpoll/@emrebeyler/auditing-dpolls

The trouble with this type of voting is that it quickly moves away from merit based and into popularity based. People quickly lose sight of the mission and focus only on winning. I think that if the results of the poll were not 'real-time' some of that problem would be reduced...but human nature is to try to win.

Regardless, the contest has sparked engagement like I've never seen before, so that's a win by itself. :-)

Thank you so much for sharing this with us! At least we know what is happening. HOpefully this gets fixed

Yeah hopefully the audit will show a fair conclusion.

This is pretty impressive work for someone who is a fellow math flunky :P

  ·  6 years ago (edited)

i'm no good at Math but luckily there was no need for sin, cos, and tan again today :)

Are you kidding me... Mathematics is a hell of a lot easier than coding..

There is some math in code, but I wouldn't have taken computing if it was key. There were some math modules on the degree (talking 20 years ago), and I barely passed those!

I was pretty okay with maths, after all it is a bit prevalent in Theoretical Physics... But my computer programs were spaghetti...

Yeah you need rock sold number skills there! My bro graduated in Physics, and he's a far better programmer than me!

Ah ¡Come on! if math is just a piece of cake!! };)

mmmm pie :)

I'm with @zord189

OMG!!!

More depressing shit. It's been that sort of day.

Bit of good news though. It's started snowing so the world may look very pretty tomorrow. 😊

Well perhaps not. But it does sound like looking outside tomorrow may well be a lot prettier than crypto right now :)

Oh. Why? Has it gone down again. Maybe I'll buy a bit tomorrow whilst admiring the view through my window. 😂

Facepalm

yuppp!

Excellent work.

Posted using Partiko Android

Thank you :)

@abh12345, Brother it's reflecting as you've put lot of efforts into this and sounds and looks an appreciable results too. Keep up.

I know it can sound silly, but just want to know a way to find the all the old Steem Posts (older than year and two), i know there is STEEMD but it's more manual work. So, any other way to find all the posts.

Stay Blessed.

Posted using Partiko Android

It's a bit of a struggle to find old posts. Are you looking for your old posts? I can pull you a list and send on Discord if you want?

Not needed specifically, but thinking in futuristic way, in future any post can be valuable. But thank you so much for coming forward with intention of putting extra effort for my concern. Currently i don't need it brother, actually i wanted to educate myself if there is any other option where we can find every stuff at one place. Stay blessed and have a great time ahead brother.

This is so very interesting. I do not understand the techicalities, but I do understand the principles. Thank you for starting this analysis.
@fionasfavourite and member of #powerhousecreatives

Thank you. Hopefully the audit can shed more light.

I look forward to that.

Interesting facts here.

Posted using Partiko Android

Hi @abh12345!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your UA account score is currently 6.842 which ranks you at #104 across all Steem accounts.
Your rank has not changed in the last three days.

In our last Algorithmic Curation Round, consisting of 222 contributions, your post is ranked at #1. Congratulations!

Evaluation of your UA score:
  • You've built up a nice network.
  • The readers appreciate your great work!
  • Great user engagement! You rock!

Feel free to join our @steem-ua Discord server

Interesting discrepancies considering the amount can influence results. However, I think this shows the strength in blockchain that it is all there but hust a matter of realizing how to structure the data available. I am sure it will be figured outbut great job in detecting it!

Posted using Partiko iOS

Congratulations @abh12345!
Your post was mentioned in the Steem Hit Parade in the following category:

  • Comments - Ranked 4 with 94 comments

This post has been included in the latest edition of SoS Daily News - a digest of all you need to know about the State of Steem.



I like the idea that no accounts created after a poll starts are allowed to vote. I also like the idea that only accounts that post can have a say. Not so hot on the idea to make money talk. I think we already have way too many things decided by how much is in a person's wallet. Not how I like to roll...

OMG OMG When is the audit finished ?

When @emrebeyler posts later. He is in charge from here :)

ThAnx for the Numbers and heads up !