I'm sure I'll get a lot of downvotes on this one, but I have to say it.
In programming, most communities like Reddit, StackOverflow, and DailyDev have an upvote/downvote system, and in this article, I'll say why this is a nonsensical pyramid scheme that has the only purpose of inflating ego.
How the votes work
It's very simple:
Someone upvotes your post/comment/answer and your reputation increases
Someone downvotes your post/comment/answer and your reputation decreases
But here's the trick part: It's only valid when it's coming from someone with a high reputation.
The problem
By allowing only the people with high reputations to give reputation to others, you segregate your users and build a monopoly of reputation. Only the ones approved, chosen by the gods, are worth having their voices heard.
This leads to very toxic communities, the best example is StackOverflow, where most of the mods are there only to inflate their egos and not to help. This is a disfavor for the dev community.
The solution
Rate limiting
These platforms already have a rate-limiting system, where you can post/interact just a couple of times a day. Enforcing hate limiting, like "you can only give reputation to someone 1 time a day", would cut most of the bots.
Behavior analysis
To increase even more the security, I think it's always necessary, you could do checks to see if someone is creating fake accounts with very suspicious behavior:
Only giving reputation to a specific set of people
if their account's only purpose is to upvote
Conclusion
Things would be more susceptible to bots? Yes, for sure, but I think that it's better to give voice to the people and moderators to ban the bots than creating a niche club of selected people.
I hate how this incentivizes division, superiority of a few, and dominance instead of community, collaboration, and knowledge sharing.
These "communities" are more like stages to a few people to have their egos massaged than a place to share knowledge and help each other.