Skip to content

ElectionGuard Official Specifications

The official versions of the ElectionGuard Specifications are listed below and stand as the primary source of reference when discussing the ElectionGuard Specification. Each version includes a badge that can be used to quickly display which versions are supported or used by products following the specification. To follow along with the code versioning, see the versioning.

Version Specification Recommended Badge
2.0 Download Version 2.0
1.1 Download Version 1.1
1.0 Download Version 1.0
0.95 Download Version 0.95
0.85 Download Version 0.85

Release Notes

v2.0

2.0 is a major refactor of the ElectionGuard specification. It includes the following capabilities

  • The size of the proofs in the election record has been reduced by more than 90% – reducing the size of the full election record by about a factor of 3.
  • Computing the proofs takes about 20% less time.
  • Placeholder selections have been eliminated entirely.
  • Guardians are no longer part of the election record as their partial decryptions and proofs have been administratively combined into single full decryptions and proofs.
  • Range proofs are now included to support voting systems like cumulative voting, range voting, STAR-voting, Borda count, and others.
  • A new pre-encrypted ballot format is included to support vote-by-mail, central count, and paper-only poll sites.
  • Support is now available for instant verification allowing voters to confirm the accuracy of challenge ballots without waiting for the election record to be published.
  • New default parameters are used with ln(2) replacing the Euler-Mascheroni constant as the basis for generation of the large prime.
  • The data format of hashes has been clearly described to eliminate ambiguities.

v1.0

Updates from previous version

  • The large prime p and corresponding cofactor r were changed to correctly match the result of the process for the derivation of the prime.
  • The equations for generating proofs of ballot correctness have been optimized.
  • Auxiliary keys have been eliminated in favor of using the existing keys for both ordinary and exponential ElGamal encryption.
  • A more flexible structure of ballot chaining has been introduced to allow for non-linear chaining or no chaining at all.
  • Smaller parameters suitable for testing are included.
  • The election record of this version should match that of the prior v0.95 and therefore require no verifier changes (with the exception of using the corrected prime).

v0.95

Updates from previous version

  • The large prime p and corresponding cofactor r were changed to move the prime p further from 2^4096.
  • A section specifically about writing verifiers was added.
  • Various small clarifications and corrections were included.

v0.85

  • Initial public release of specification for ElectionGuard