In order to use a system for voting somebody HAS TO be able to assign the private keys. Otherwise there’s no way to verify that the possessor of said key is an American citizen with voting rights.
Your system has a central control. Which means it’s hackable. Anybody could generate many public keys which get many bitcoins and thus can make many ghost votes.
No, or not really. The person has to generate their own private key, it can't be done any other way securely. But after that the user has to prove they are a voter. So they appear in person with a public key to register as a voter. Or more likely they will send their proof online along with their public key. Then the government will allow that person to vote.
So in theory there could be a central authority that could be hacked. But in a manual implementation that is not possible. There is a public key registration process where you prove you are a citizen. That could be completely manual and unhackable (although still flawed since the humans could be bribed).