- You publish a public list of randomly generated numbers/IDs (the number of IDs corresponding to the number of eligible voters, guess you need a reasonably accurate census data for this)
- Divide up into subsets and distribute these IDs to each voting booth.
- When you go to vote you draw on of those numbers and attach it to your vote.
- Election results are published as "ID X voted for Y".
Now everyone can check that their vote was counted, and everyone can check that the original list of of IDs matches the final results (or in reality, count(final list) < count(original list) since not everyone votes).
- You publish a public list of randomly generated numbers/IDs (the number of IDs corresponding to the number of eligible voters, guess you need a reasonably accurate census data for this)
- Divide up into subsets and distribute these IDs to each voting booth.
- When you go to vote you draw on of those numbers and attach it to your vote.
- Election results are published as "ID X voted for Y".
Now everyone can check that their vote was counted, and everyone can check that the original list of of IDs matches the final results (or in reality, count(final list) < count(original list) since not everyone votes).