At one of my past jobs we did "karma points", with similar discussions around how people would game the system to earn more points. To limit that, we set a limited number of points into the system...
Was a software development team, and at the start of each two week sprint/iteration each developer was given 10 points that they could then use to "Thumbs Up/Down" anyone else on the team. When you'd used up all of your points, that was it, you had to wait until the sprint/iteration was over before you could get any more to use to Thumbs Up/Down someone. You didn't get to keep your points and carry them over to the next 2wk period either, so people didn't end up with ever-growing piles of points that they could then use to Up/Down someone to death.
For us, worked fairly well. At the start we still had a few team members that wore through their points super-fast and were "broke" for most of the iteration and couldn't up/down anyone, but that settled out after a few runs and people became more cautious about how they spent their points.