Proof of work systems were originally designed to combat these types of 'spammy' behavior.
Give a challenge string and ask the user submitting an upvote to compute a nonce that when added to the string would produce an hash with 10 leading zeros. User submits the calculated nonce, the server computes the hash for challenge string + nonce and the upvote is registered. This makes it computationaly expensive for an upvote provider to submit hundreds of upvotes