ThreeBallot
ThreeBallot is a voting protocol invented by Ron Rivest in 2006. ThreeBallot is an end-to-end (E2E) auditable voting system that can in principle be implemented on paper. The goal in its design was to provide some of the benefits of a cryptographic voting system without using cryptographic keys. It may be difficult for a vote to be both verifiable and anonymous. ThreeBallot attempts to solve this problem by giving each voter three ballots: one verifiable, and two anonymous. The voter chooses which ballot is verifiable and keeps this secret; since the vote-counter does not know, there  is a 1/3 chance of being discovered destroying or altering any single ballot. The voter is forced to make two of their three ballots cancel each other out, so that they can only vote once. Goals. The crucial advantages that the ThreeBallot system offers over comparable, ciphered ballots are: Additional theoretical system goals include: Method. In the ThreeBallot voting system, voters are given three blank ballots, identical except for a unique identifier that is distinct for each ballot. To vote "for" a candidate, the voter must select that candidate on two of the three ballots. To vote "against" a candidate  (the equivalent of leaving a ballot blank in other systems), the voter must select that candidate on "exactly one" ballot. Thus every candidate gets at least one ballot with a mark and one ballot without a mark: As a result, seeing any one ballot does not tell whether the voter voted "for" the candidate or not. While this also means that every candidate gets at least one vote when the three ballots are summed, this constant offset for all the candidates (equal to the number of voters) can be subtracted from the final total of all the ballots. However, it  is imperative to verify that the voter did not mismark their ballot no candidate can be left blank on all 3 ballots, and no candidate can be selected on all three ballots: This requirement means all three ballots must be inserted into a machine to validate this before the 3-ballot vote is cast. Failure to do so would enable a voter to both cast an extra vote "for" and an extra vote "against", allowing voter fraud; by design, a "for" vote cannot be distinguished from an "against" vote once cast, so this multiple-vote fraud could not be  detected until the final tally verification (and maybe not even then), and it cannot be corrected at that point or even traced to a specific voter. Typically, the ballots might be co-joined to simplify the marking by the voter, but before they are cast, it is imperative that the ballots be separated. Once separated and combined with other ballots in scrambled order, the true vote is encrypted. For example, consider just the third-column ballot for John and Barb above. Each of them has an "X", but the voter is actually voting for John and not Barb. Likewise  if you saw just the second column ballot, it only shows a mark for Bill, but again the overall vote by the three ballots together is actually for John. When all 3 ballots are summed, the totals will show 2 marks for John and 1 mark each for Barb and Bill. Subtracting the number of voters, in this case 1, produces 1 vote for John and none for the others. At the polling station, the voter makes a copy of any one of his three ballots including its ID number. In practice, the machine verifying the ballots would perform this  task automatically based on the voter's free choice of one of the ballots. Then, all three original ballots are dropped into the ballot box. The voter keeps the one copy as a receipt. At the end of the election, all ballots are published. Since each ballot has a unique identifier, each voter may verify that his votes were counted by searching for the identifier on his receipt amongst the published ballots. However, because the voter selects which of his ballots he receives as a receipt, he can arrange for his receipt to bear any combination of markings. Thus voters  cannot prove to another party who they voted for, eliminating vote selling, coercion, etc. using this receipt. There is no indication on the ballots themselves which one was copied to make a receipt. Thus if at some point a ballot were "lost" or maliciously discarded, there is a 1/3 chance that this would be the receipt ballot. A vigilant voter could detect this loss. Rivest discusses other benefits and flaws in his article. In particular, it is not suited for ranked preference voting. A field test has found ThreeBallot to have significant privacy, security, and usability problems, as well  as implementation pitfalls. Broken encryption. The encryption system used in the ThreeBallot was broken by a correlation attack devised by Charlie Strauss, who also showed how it could be used to prove how you voted. While the ThreeBallot is secure if there is only one yes/no question on the ballot, Strauss observed that it is not secure when there are multiple questions, including the case of a single race with many candidates from which to choose. His attack exploited the fact that not every combination of 3 ballots forms a valid triple: proposed triples with 3 or 0 votes  cast in "any" row on the ballot (not just one race of interest) can be rejected, since those ballots could not be from the same voter. Likewise, proposed trines resulting in a vote for more than one candidate in "any" race can be rejected. Since there are exponentially more possible vote patterns than there are ballots cast in a typical precinct (or even people in the world), statistically most of the ballots cast can be trined uniquely for sufficiently long ballots. Typically, 90% of ballots can be reconstructed on ballots with just 11 to 17 questions. This likely allows a  voter's votes to be known by anyone with the receipt. Moreover, even without a receipt, it leaks information that could discredit a voter's claimed candidate selections. Consequently, a voter conspiring to prove their vote (for money, coercion, or posterity) could mark all the ballots in a previously agreed unusual pattern that could later prove to a third party whether the agreement was kept (even without seeing the receipt). In either case, the veil of the secret ballot is pierced and traceable to the ID number on the receipt. Revised ThreeBallot. Rivest later acknowledged this logic error in the  original concept and revised the RFC schema in his final publication to require tearing off each row (each yes/no) individually (destroying the correlation of the questions) and also having unique tracking numbers on each mark on each ballot (not just one ID for each column ballot). While this did restore the unbreakable aspect of the scheme, the proliferation of receipts (one per row) and chopped ballots rendered the mechanics of processing the votes or for a voter reviewing a receipt significantly complex, thus undermining its intended simplicity. An electronic version addressing the paper-ballot implementation and usability problems was  proposed by Costa, et al.