How I vote

in #steemit8 years ago

I wrote several automated bots to vote on my behalf.

img source

This is currently a controversial topic, and I would like to give you my perspective on how and why I do it.

Is automated voting good or evil?

Let me borrow from Shakespeare:

HAMLET
Why, then, ’tis none to you, for there is nothing either good or bad, but thinking makes it so.

Whether automated voting is good or bad, is subjective.
People like to put things into boxes, preferably 2, so we have a polarizing black and white situation and we can easily identify ourselves with one.

I like to think of bots as a sum of combination of properties that can be more or less opportunistic, purpose driven or malicious. These classifications are not a dichotomy, and do not correlate with good or bad per se. A purpose driven bot can be profitable. A malicious bot could be profitable, but it could also be unprofitable and purpose driven - its purpose being destructive to others.

What is opportunistic, purposeful or malicious is subjective as well.
I can only tell you how I see it.

If we are building an opportunistic bot, our core objective is to data mine the s*** out of blockchain. Running statistical analysis on profitability of authors, curators, voting times, analysis of competitor bots, etc. We might even go as far as to use machine learning to find new features to score posts based on their success potential.
In general, this is a perpetual arms race and a 0 sum game (if one bot becomes smarter and more profitable, the other bots will necessarily become less profitable as a result).

If we are building a purpose driven bot, our job is a bit simpler. All we have to do is figure out the what are we trying to achieve, and come up with a set of rules to operate with.
Perhaps the goal of this bot is to support our favorite authors (people we follow), or to give encouragement to new authors.

If we are building a selfish or malicious bot, we might want to sell our upvotes, self-vote, spam-vote or perform attacks on the ranking algorithms.

Voting as a de-facto right

The Steem protocol is like a self-enforcing constitution, and within its bill of rights is a right to vote.
There are a few hard coded rules in a system, that could be considered as laws in this game.
Voting shares are distributed according to the non-linear relationship to the voter's SP, the voting system favors early voters by giving them more shares, and the curation rewards do split with authors when the posts are new to mitigate the abuse of the former property. Posts can also lose rewards due to downvotes.
A superset property of that is that votes also move the payout time further into the future, to avoid whale self-voting, and allow for downward corrections if abuse is spotted.

There are however no rules on what one can or cannot vote on. We have the absolute freedom to give our votes to anyone, at any time, in any fashion we fancy - bots included.

How I used to auto-vote

I wrote my first Steemit upvote bot about a month ago. It was very simple, yet highly profitable.

It would inspect people's blogs, and count the number of 'winning posts'. Winning posts are posts with a total payout of $1,000 or more.
If the X out of Y most recent posts were winners, the author would make it to the author list.

This method worked so well, it would have more than doubled my SP within a year.

This type of voting works, because top authors have strong personal brands. When they release something new, people are drawn to it out of familiarity and trust.

Opportunistic people will vote on top author's posts, because they know from experience these authors tends to do well.

Bots will join the party and try to drink everyone's milkshake.

As of last week, I no longer employing this type of voting. I have modified my voting strategy to only give 10% upvotes to established authors. I do believe they deserve some degree of recurring support for their contributions as it allows them to dedicate more time to their craft, and thus create more value for us all. But there are other things I want to do with my voting power as well.

Killing the true and tried strategy has also killed most of the profits. My new automated voting strategy generates up to 80% less revenue, but it has its benefits that make up for it.

How I vote now

Automated Voting

When I am building a bot, it needs to satisfy three requirements:

1.) Compensate for inflation.
Witnesses, miners and new content are paid from stakeholders dilution. When the inflation rate stabilizes, the expected yearly dilution is to be < 10% a year. If the bots can generate enough revenue to offset this inflation, they have succeeded at attaining their monetary goal.

This is going to be very easily achievable in the future, as the inflation rate drops. Since I am a super minor stakeholder, I am not too concerned about this anyway.

2.) Act as my personal assistants and execute on my behalf. Who should receive my votes? What do I stand for?
My bots are not strictly opportunistic or purpose driven. They are for-profit to an extent of offsetting the inflation, which gives me a lot of room for being purposeful. Having a purpose also justifies their existence from moral standpoint.

I would like to support top authors, my personal favorite authors and aspiring authors.

By top authors, I mean consistently profitable ones. I give them 10% upvotes to support their good work.

My personal favorites are people I know/like/follow. I give them 30% upvotes as a token of appreciation (I may convert it into a 100% upvote if I read the post later on).

New, unproven authors get anywhere from 1% to 50% upvote. I care about this group because of the personal experience I've had when I joined Steemit. Before I had my first successful post, everything I did felt like a rejection. I do have self-image issues, and failing to get traction would yield destructive rationalizations and tendencies to draw conclusions that are not in my best interest.

My first naive bot would just upvote everything on postpromotion channel on steemit.chat. I have shut down that experiment 3 days in, as I realized I was upvoting a lot of content that is just no good, or at least, I would have never upvoted it personally.
I am currently working on a more refined version, that will only vote on posts that are getting some social validation (based on high rep votes and comments), but have no whale support.

3.) Preserve the voting power for human curation.
At the end of the day, the only posts that deserve the 100% weight are my own votes. This is why I keep my bots on a tight leash, and give them a very tiny fraction of my total voting power.

My old author-list based bot (stopped, recovering):

My new collection of bots (running):

As you can see, after all the automated voting, I still have 99% of voting power left.

Manual Voting

I have only one rule when it comes to manual voting. I only vote on things I like. If you receive a 100% upvote from me, it means that I have read your post, and this is my thank you.

I am not at all concerned about how viral the content is, or the timing of the vote. Often I upvote things that I know for sure will not make it, and even more often I upvote things that are already on the home page - the net result of both votes being 0 curation rewards for me personally.

If I were to maximize my curation profitability, given the amount of SP I currently have, I would get enough money to have a free lunch, every day. But I don't want that.

What I'm buying is happiness. Let me explain.

I have acquired some precious SP, and I am so grateful to have the ability to earn more by writing.

I also love to read. Get new ideas, see things from another perspective, learn.

Giving a fellow Steemian an upvote is the way for me to reciprocate, even though in the grand scheme of things its not much. It does make me feel good inside - perhaps some social neurotransmitter is firing up.

I think this is the whole point of the curation rewards system, and as far as I can tell, it works!


You can follow me on Steemit :)


Sort:  

What happens when the bots become open to everyone when someone builds a bot interface with Python backend? Since it currently is only the few that have Python programming experience we only see effects of the micro auto voting. What can Steemit as a company will do if every up vote is controlled by a bot or partially by a bot? I am for bots myself but it will be interesting to see how this progresses and how the community will react to it.

@furion I like how you are using the % of a vote to differentiate your bot votes to your human votes. I see a use case for having bots and being involved with the platform on a human level.

If everyone bot votes, the profitability will drop. People will have to either: invest in human curation or develop smarter bots.

perfect

Hi Craig. Glad to see you here :) One of your videos convinced me to look deeper into Steem, so thank you for that.

that's great to know, that your bots are my bots :)

That's it, that's the core of the "bot problem" many people have. It consists of many people thinking all bots are bad, but once you put them in a following context things change:
Bots are like dogs, some are good dogs who have good owners, others are not. Some are stray dogs, others have a leash and a caring owner.
The point is, what type of owner are you. This post proves to show that for sure your the caring one, and as every caring owner, you will always try to "correct" the bad owners behavior, to teach them how to treat their dog well. Bots are here to stay people, the only thing "we" gotta make sure is that they are proper vaccinated, checked by the vet regularly, well cared for and are not running wild without a leash.

I vote manually only what I really like and I feel happy. I enjoy reading good articles and learn new things and share people experiences.

Honest, well argumented and to the point. Love it.

hey @furion! great post! thanks for being straigthforward. are your bots coded in python?

yup. <3 Python

looking forward to your future python posts!

I have 3 developer guides in the pipeline.

Great post!
But not all understand how to make and use bots. I try install Python, and nothing understand. It too hard for me.
Ps
Steem.li doesn't work about 2 day :(

I will check it out now

the server died. Re-deployed now.

Are you using @complexring bot to upvote?
Or do you have anything easier to set up?

I write my own. Not easy to setup, its quite messy

instead of coding bots, you could just read posts, you know

Really great post and I hope you don't mind if I make a suggestion.

As you are a dolphin, which I can see by the amount of SP rewards you have, curating for profit makes sense for you.

However I think it's always a good idea to consider who might be reading your posts. I'm a minnow but I've been around long enough to know that there is no point in me trying to curate for profit. A newbie on the other hand might actually think they can do this and gain the same rewards.

Do you think it would be wise, when posting content relevant to curating for rewards, to perhaps include a note for minnows, that this is about a game that would not benefit them to play? I see far too many minnows commenting about witholding their votes and using their votes for content that is already trending under the misunderstanding of how the curating rewards work and how they actually don't really apply to minnows.

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.028
BTC 57367.79
ETH 3098.11
USDT 1.00
SBD 2.32