Since we often desire some reward for consensus leaders, and since a secret ballot is hard if not impossible to implement on a blockchain (as you would need a verifiable election without being able to in any way reveal, prove, or discover who voted for whom), these solutions are out of reach.
How about using ring signatures to obfuscate the identity of the voter?
Check this paper out. Others have suggested solutions for the problem of anonymizing blockchain-based elections, too.
Yes, I do think ring signatures are the right direction, but the issue isn't necessarily with having a valid and anonymous vote.
The issue really comes down to the catch 22 of:
(1) seems possible, but (2) is the tricky part. If I can (in secret) show Bob that I voted for him, he could compensate me, and its right back to corruption being possible.