Say eligible voters are sent voting keys they need to use to vote. A contract would have a list of the hashes of these voting keys for verification. A voter would call a function passing in their voting keys. Then, the hash of the voting key is checked against the list of hashes. Once complete, the voting key is then tied to the address of the sender so that only the sender can use it again (if he so chooses to change the vote).
Would there be a risk of someone anticipating these transactions, extracting the voting key, then creating a new transaction of the same voting key but a different vote but with a different gas price so that it is more likely to be mined?