SMT Voting Mana Deep DivesteemCreated with Sketch.

in #smt5 years ago

voting mana deep dive.jpg

Hello Steemians, I’m @vandeberg, Senior Blockchain Engineer at Steemit and today I want to share some exciting changes coming to how voting mana is handled with SMTs which are intended to further the progress we have made over the last several years to make voting on Steem more intuitive and fair to everyone. We want SMTs to be the most advanced protocol for tokenizing web applications, and it is technical changes like these, informed by our unrivaled experience with STEEM, that will help us deliver on that promise. Speaking of SMTs, be sure to check out our recent blockchain update in which we disclose an ETA for the SMT testnet and an update on Platform Independent State Files.

Voting is at the center of Steem's Proof of Brain algorithm, which we believe will be a core value proposition for developers launching SMTs, so we want to make sure that when that protocol goes live, the voting process is as streamlined as possible.

When Steem was first released each account had voting power between 0 and 100%. This system is still present in many interfaces and the nomenclature of Steem. During the calculation of rewards an account's voting power was multiplied by their Steem Power to get something we called a” reward share.” A reward share is an internal system that helps the blockchain keep track of author and curation rewards.

The problem of this approach is that the voting power percent only had a precision of two, meaning the smallest amount we could represent was 0.01%. As users consumed their voting power, the accuracy of these calculations became worse and worse and at small levels of voting power, the system was almost unusable. Furthermore, this system did not interact well with powering up/down STEEM and delegations and made it easy to exploit the rules to vote with more Steem Power than you would otherwise normally be able to.

Enter Voting Mana

In Hardfork 20 we changed the internal representation of voting power to voting mana which helped to eliminate certain Steem exploits. The basic principle is the same. The value still represents the same concept of remaining availability to vote on content, but does so in a more accurate and consistent manner. Voting mana is the intermediary value that was previously calculated by multiplying voting power and Steem Power. Voting power regeneration is now more precise, as are the consumed values that result in awarding reward shares to content. Along with this change, we were able to make the rules regarding Steem Power and delegations consistent and eliminate the exploits that previously riddled Steem.

Vote Directly with Mana

Even though we changed the internal structures of Steem to use voting mana, the vote operation itself still used a percentage weight. It is not nearly as bad for precision as the percentage voting power, but it is less than ideal for precision of votes. This is especially true when changing your vote. For example, if your max mana is 1,000,000 and you vote on a piece of content with 50% weight, you will use 10,000 mana.(A 100% vote is capped at 1/50th of your remaining mana). If you later go and change your vote to 100%, you will use 19,800 mana. If you had voted 100% instead originally the vote would have been worth 20,000. This subtlety is hidden through the use of the percent weight.

In the SMT hardfork we are adding a new vote operation that will vote directly with voting mana. The same max vote restrictions are enforced, but will make the impact of the vote clearer. This operation will be used for voting on all SMTs and allows users to vote with each SMT separately, each with different amounts of mana. This will allow you to upvote content with one SMT while downvoting it with a different SMT. Comments can specify up to 5 SMTs that can vote on them, for a total of 6 assets (5 SMTs plus STEEM).

There is one more oddity from the previous example. Did you notice it?

You changed your vote from 50% to 100% and in total used 29,800 mana when a 100% upvote first would have only used 20,000 mana! When you change a vote you lose out on any curation rewards you would have earned. We think this is harsh enough for changing a vote.

Being charged fully for both votes is unnecessarily punitive, which is why were are making the following changes to how votes are charged.

If the absolute reward shares assigned by the vote increase, you are only charged for the delta. You will still be fully charged for changing from a downvote to an upvote and vis-versa. Here are a few examples to help demonstrate how these rules will impact your voting.

If you change a vote from 75% to 100%, you consume mana of a 25% upvote.

If you change the 100% vote to 50%, you consume no mana.

If you change the 50% vote to -50%, you consume mana of a 50% downvote.

If you change the -50% vote to -100%, you consume mana of a 50% downvote.

If you change the -100% vote to -25%, you consume no mana.

If you change the -25% back to a 75% upvote, you consume mana of a 75% upvote.

We believe these changes will continue the progress we have already made over the last several years to make voting more intuitive and fair to everyone.

vandeberg post signature.jpg

Sort:  

this is a bit confusing

devs, man, that's how they talk. weird, right?

What part is confusing? Perhaps I can clarify.

To be clear, this will be a new voting operation that specifies mana consumption for each vote instead of upvote percentage?

But the existing upvote operations will still work? We should be extremely cautious about deprecating any operation that hundreds of third-party tools are using.

Voting an an SMT requires using the new vote operation that votes with mana directly, but the existing vote operation will continue to work for voting with just STEEM. It already converts the percent voting power in to consumed mana and will follow these new rules.

Can you clarify this:

When you change a vote you lose out on any curation rewards you would have earned

Do you still get curation rewards based on your new vote?

just to add to @lordbutterfly's "No" I would note that losing that curation is not a new thing.

Comments can specify up to 5 SMTs that can vote on them, for a total of 6 assets (5 SMTs plus STEEM).

So authors specify these?

Will the assets limit be set in the blockchain or can be a parameter that witnesses set?

I can't wait to see the UI for this.

There may or may not be one, or different applications may offer different aspects of it. There are already many functions on the blockchain that don't map directly to most or all UIs.

Damn the rewards in this place are going to drive us loopy your vote would be allocating so many resources how will any normal person keep up?

I can't. Just seems to get more and more complicated....

I'm pretty unsure what it all means, myself. People seem happy to some degree, so I guess that's good? Still, it would be nice to know what this means, and how it's going to affect me as a content creator.

terrific explanation and crucial adjustments. even though i nevertheless have a query: if i change my 100% vote to 50%, i am no longer being charged extra mana, but the curation rewards are reset, right? it might be a very good side benefit if the curation rewards would not be reset afterwards. or isn't always this feasible due to the vote being changed, including timestamp?

Thanks for this very comprehensive post. Just a question: if one revotes on something, one will still lose all curation rewards. Is this correct?

I think that's correct, until and unless they change the logic which is quite tricky.

Thanks for the confirmation!

This will allow you to upvote content with one SMT while downvoting it with a different SMT.

  • LOL

It will hold true if you have same number of stake in all the SMTs.

This makes sense if you think of something analogous to tag abuse. Perhaps it is mischaracterized with respect to one community/SMT but still got votes. It should be downvoted there but perhaps upvoted in its correct one.

Coin Marketplace

STEEM 0.21
TRX 0.20
JST 0.034
BTC 97180.31
ETH 3331.80
USDT 1.00
SBD 3.02