You couldn't store personal data on the Blockchain and for that reason the Blockchain isn't really suitable for a voting system.
Voting for election with blockchain is difficult since we need to rely on 3rd party (such as government in this case) to ensure only eligible people can make a vote, only can vote once and can't create another "account".
But for your problem you mentioned, it can be solved by :
1. Require user to prove their identity is match by password or sign message with linked address/public key when user register which contain vote option.
2. Ensure people can run full nodes with open-source client to ensure the blockchain isn't redo by bad people for public permissioned/permissionless blockchain or 3rd party run several full nodes at different location for private blockchain.
In the end, the weakest security/link always human factor
1. This wouldn't work. An address/public key can be generated by anyone unless it's linked with a identity. If an identity is linked with an address then and is hosted on the Blockchain it would break data protection laws.
2. This would work. It would be in the general interest of the public to ensure that there's no corruption within the electorate system and would benefit from hosting nodes of their own to ensure this.
Blockchain has many uses but I'm afraid that the voting system just isn't going to work as you intend. First of all even if you could come up with solutions with the answers above you would then need to get it accepted by the government which I think is well away from their interests.