The common problem are :
1. Trade off between verifiability and privacy
I always wondered if
Blackbytes might be a viable option for voting. I think it can be both private and verifiable. It's explained in
Hiding entire content of on-chain transactions. I imagine each voter gets one coin to share, and each candidate has a wallet to accept votes. At the end of the election, the candidate with the biggest wallet wins.
Basically using zero-proof knowledge cryptography. There are some discussion (
) about it, but AFAIK all of them have some kinds of trade-off which makes it hardly practical.