We know it happens and it's been in the news a few times. The Blockchain would solve most of the problems. However to be able for it to work you would need to store personal data within the Blockchain to make sure that no fake submissions have been made. I'll summaries the very basics of this concept:
1. A user registers that they will be voting
2. This is then stored on the Blockchain
3. The details of who they voted for isn't public information (As it's your right to vote for whoever you want and have it kept private)
This would prevent several problems:
1. Changing the result of someone's vote
2. Submitting a vote under someones name
Of course for this too be effective you need one way of identifying that the vote isn't just made up as anyone could essentially add a vote into the Blockchain.
I'm a little iffy on the technical details involving storing personal data on the Blockchain. My idea was that at the doors of the election center you would be required to submit that you will be voting today and including personal details such as name, address etc.
You would then be given a unique identifier which would then be sent when you submit your vote to confirm you've actually vote. I think this wouldn't be possible though due to the data protection act. I'm wondering if you had people willingly sign that they are willing to have their details recorded on the blockchain but not the result of their vote would this be allowed under data protection laws?
If not I would like if we could have a discussion and maybe present new ideas to the table. I think the Blockchain is the perfect answer to preventing corruption within the electorate system. However there's a few little issues which need to be ironed out first of all.
My first thought is how easy would it be to buy someone's vote and be able to verify that the person voted as promised. But Blockchain does not mean that the ledger has to be public. With Monero style proof you may be able to prove that something happened (vote) without knowing anything else.