Use paper ballots
It's boring but it works. Lots of places do this successfully. You don't need different software, you need to stop using software.
Blockchain considers secure private key management outside of its threat model which is crazy when you think about it.
The best argument I think I could make in favour of using paper over any electronic voting system is the scalability of an attack.
Generally speaking changing one vote in an electronic system is just as easy as changing a million. Scaling a physical attack against paper ballots is much harder and actually increases the likelihood of getting caught.
Also for blockchain in particular. It solves no problem existing mixed trust voting systems already solve more efficiently.
It's clear, relatively secure, auditable, verifiable, and somewhat anonymous.
For those unfamiliar:
> The idea is that you xor together 3 ballots when you vote, but one of the three ballots is published.[3]
> The trick to the 3-ballot voting protocol is that not everyone can validate their vote. However, when a group of voters band together, they should be able to validate that a subset of their votes (1/3) were registered with high probability. > ... > With a sufficiently large group of voters checking results, the law of large numbers comes into play and they can statistically detect the presence of voting fraud.[4]
You would still need to trust that the poll worker is tabulating correctly and working randomly, though that's an assumption that we're already making as it is.
Scantegrity[5], Prêt à Voter[6], Helios[7], and Punchscan[8] also seem promising, though I'm not as familiar with them.
[0]: https://en.wikipedia.org/wiki/ThreeBallot
[1]: https://people.csail.mit.edu/rivest/pubs/Riv06c.pdf
[2]: https://people.csail.mit.edu/rivest/pubs/RS07.pdf
[3]: https://news.ycombinator.com/item?id=20554744
[4]: https://news.ycombinator.com/item?id=16598777
[5]: https://en.wikipedia.org/wiki/Scantegrity
[6]: https://en.wikipedia.org/wiki/Prêt_à_Voter