Mike Frank wrote:
Hello, I was thinking of building a free public web service, perhaps
operated by a charitable NPO, that would allow organizations (including
perhaps small governments) to operate online elections in a way that
offers some sophisticated modern security features.
In addition to taking standard security precautions, the site would
generate a certain form of electronic certificate, made available after
the election to each registered voter, that is basically a concise,
easily-verifiable, cryptographically-secure proof which assures that the
voter's specific ballot information (or their lack of a ballot, if they
did not submit one) was correctly figured into the official election
results. (The voter could verify their certificate using open-source
software or online services which could be made available by any number
of independent organizations.)
In such a system, if significant numbers of ballots were being
electronically altered before tallying (as Diebold has been accused of),
this kind of tampering could be easily detected by affected voters. So
it would be much harder to get away with, would be less likely to
happen, and so the voters could hopefully have more confidence in the
system as a whole.
How would this system work? I guess you could use blind signatures to
submit the actual votes, but how would it ensure the voters that their
votes are counted? I know of some systems to produce proofs for
Plurality, but I'm not sure how they could be turned into proofs for,
say, Schulze. If the system permits ranked or rated votes, you'll also
have to deal with the "fingerprint attack", where a vote-seller asks the
voter to vote in a particular manner, using a rank that with high
probability will be unique.
Such a system wouldn't directly address suspicions that the voter rolls
in a given election might have been padded with unreal voters; this
would require verifying the real-world authenticity of voter identities
through some process of voter registration, but that is a problem that
could be handled separately offline (e.g. via registration in-person or
by mail, like voter registration is often done now, and/or by publishing
of voter rolls for independent verification). For use in smaller
organizations where the list of eligible voters is common knowledge
(e.g. all organization members), padding of rolls would not be an issue
anyway.
Other possible attacks from the outside could involve coercion (vote my
way while I watch) or bribery (same as above, but with a payment if you
do what I say), and identity confusion (where the person's computer is
zombified so that the ballot cast differs from what the voter intended).
If you want to be sophisticated, you could have a vote retraction signal
(a number or similar) which would nullify your vote if you send it
before the election, and an external device to confirm the ballot just
before you submit it (so that you can see it's what you actually wanted).
Of course, a voter retraction signal opens up the possibility for
coercion or buying of said signal, and it'd also be difficult to
reconcile the goals of both having it possible for a voter to verify if
his vote was counted and making it possible for the voter to annul his
vote. If the annulment makes the signature return "you didn't vote" or
"your vote didn't count", then a coercer could attack the voter for
having retracted his vote, whereas if it still makes the signature
return "you did vote and your vote counted", then that might be used for
fraud (mass retraction after the polls have officially closed).
Incidentally, the cryptographic certificates attesting to the
correctness of the ballot-tallying process might be easier to create for
some election methods than for others - for example, plurality, range,
and approval voting are all easy to handle, but with ranking-based
methods it gets a little more complicated (b/c aggregated subsets of
ballots couldn't be summarized with just a single number for each
candidate). It's still possible, but the certificates might get a lot
larger.
Would the certificates differ for different Condorcet methods? How about
IRV, which is very sensitive to changes in ballots?
If the certificates are unmanagable for IRV, that may still not be much
of a problem, though, since (in my opinion) IRV is not a very good
system. Others who like IRV may disagree.
But in any event, the site could still allow election organizers to
select from any of a number of interesting voting methods, such as those
being discussed on this list.
Anyway, I was wondering if the folks on this list think that such a site
would be useful - or has it already been tried? Perhaps I can improve
in some way on what's been done.
I don't think it's been tried yet. I know of some sites that do election
counting on demand, but none that have the sort of cryptography setup
you're talking about.
As for that setup, I think that it would be fine for small or informal
elections. For larger scale elections, the security doesn't suffice
unless you find a way of dealing with the attacks from without
(coercion, vote-selling, and impersonation). Even if you limit access to
the site to polling place computers, you get the problem that the voters
may not trust the machines or not know or care to verify their signatures.
----
Election-Methods mailing list - see http://electorama.com/em for list info