On further thought I realize that the one-time unique ID can't work with paper ballots, which I feel should be preserved.You can still have paper ballots with a computerized interface.
The reason is that in the poll booth where the voter is making a note to himself of what to type into the web site, in that situation, there is no computer present. The unique code must already be generated and already printed on the ballot in a form that can be read by the voter, so that he can make a note of it, and a form that can be read by a computer scanner, so that it can be made part of the database of counted votes.
And another complication: It is not enough to let the voter see a true
record of his vote in a database, he must be able to repeat the whole
tally of his precinct, including the true record of his vote, and see
that this new tally matches the published tally for his precinct. This
is needed because a fraudulent tally can be done and true records of each individual vote kept, in order to cover up the fraud.
The precinct tally should be published in the simplest form possible. I'd suggest a table of tab separated values. A check of the tally could be performed by hand (if someone so desired) or by any number of programs by importing this data into the program. Examples of programs that could already do this: excel, openoffice, matlab, mathmatica, or even something as simple as the open source unix programs sort or awk. Putting the data in this form allows every use to check the data using his/her favorite program. This transparency and redundancy guards against errors in the tallying code.
-- My razor-sharp wit was confiscated at airport security.