A simple way would be to use a public key ID that can be used to check if that key voted, and a private signing key. The list of all legitimate IDs is public (though not linked to identities). Anyone can see the total number of legitimate keys, and anyone can check to see how many of those keys voted, and verify that the number of voting keys from the national list is in fact equal to the global vote total. That same total and be cross-checked with the census and other sources of voting age population data.
> The only other way to forge votes would be to invent new people that don't really exist
Exactly.
> straightforward to address
The question is how? I don't think it's considered that straightforward in blockchain voting circles.