VOTUM
End-to-end verifiable

Nobody can see how you voted. Anyone can check the count.

Online voting for associations and institutions, built so that a disagreement about the result is settled with published evidence instead of assurances. Ballots are encrypted on the voter's own device; the key that opens them is split between several people and brought together only when voting has closed.

Sealed

Your ballot is encrypted in your browser before it is sent. The server stores it sealed and cannot read it. Your name and your ballot live in separate tables with no key between them — not hidden behind permissions, simply not connected. Anyone who obtains the whole database still cannot answer who voted for whom.

Open to inspection

Every ballot appears on a public board the moment it is cast, identified by a tracking code that reveals nothing about its content. The board, the sealed ballots and the event log can be downloaded in one archive, with a small program that recomputes every fingerprint. No account, no permission, no request to us.

How it runs

Six steps, from setting up to settling a dispute

Nothing here needs a specialist. The parts that require care — splitting the key, sealing the box, opening the result — are the parts the software walks you through.

  1. Tokens go out

    You enter who may vote. The system creates a token for each of them and e-mails it directly, then forgets which token went to whom. Nobody — including you — ends up holding a list that connects a person to a ballot.

  2. People vote

    One tap from the e-mail opens the ballot paper. The choice is encrypted on their device, and they get a tracking code. If you allow it, they can come back and change their vote until voting closes; only the last one counts.

  3. Everyone can watch

    Turnout is public as it happens. Running totals are not — and cannot be, because the key that would open the ballots does not exist in one piece anywhere yet.

  1. The box is sealed

    At closing, the ballot box gets a fingerprint that is published immediately, before any result is opened. Copies go to observers, which is what makes it evidence rather than a claim.

  2. Key holders open the result

    At the meeting, in front of everyone, the key holders enter their shares. Two of three is enough, so one person being unreachable does not force the election to be run again. The key is assembled in memory, the ballots counted, the key discarded.

  3. Anyone can recount

    The evidence package contains everything that was published and a checker that recomputes the fingerprints. A disputed result is answered by pointing at a file, not by explaining a procedure.

Most online voting asks you to trust the operator. This one is built so that you do not have to — and says plainly where that stops.

What you get

Built around one idea: make interference visible

Encrypted on the device

The browser seals the ballot using its own built-in cryptography. No library is downloaded, none was written by us, and no readable vote ever reaches the server.

The key is split

Two of three key holders open the result together. One alone cannot; one missing does not stop it. Each holder can check their share weeks beforehand, without unlocking anything.

A sealed ballot box

Closing publishes a fingerprint covering every ballot. Swap a ballot afterwards and the fingerprint no longer matches the one already in everyone's inbox.

A log that cannot be edited quietly

Every action is chained to the one before it. Change an entry and every later hash breaks — including in copies other people already hold.

External witnesses

The board fingerprint is sent at intervals to observers and services outside the operator's reach. This is the cheapest and most important part: without it, a board proves nothing against whoever runs the server.

An evidence package

One archive: the receipts, the sealed ballots, the roll, the log, the result, and a two-hundred-line Python checker. It needs no network and none of our software.

Any language

You choose which languages an election offers; each voter picks their own. Adding one is copying a folder and translating the values — no code changes.

Mapped against the standards

Council of Europe CM/Rec(2017)5 and OWASP ASVS, article by article — including the ones we only partly meet, which are listed rather than left out.

Open to audit

The source fingerprint is published with each election and fixed from then on. Anyone with the code can confirm the software did not change while voting was open.

Limits

What this system cannot do

Any voting system that claims to solve everything is either misunderstood by the people selling it or is being sold dishonestly. These limits are properties of the design. They are stated here, on the sales page, because an election committee deserves to hear them before signing rather than during a dispute.

Stated up front

  • The operator runs the server. Ballots arrive sealed and the decryption key is not there, but a determined operator with full control of the machine is constrained by evidence and separation of duties, not by mathematics. The stronger scheme, where ballots are never opened individually at all, is a further step we can build if a party refuses to extend any trust.
  • Whoever hands out tokens could link a voter to a ballot. Letting the system e-mail them removes this — the pairing then exists only for the moment of sending and is never written down. If you distribute them by hand instead, that person should not be the administrator.
  • With few voters, a unanimous or near-unanimous result reveals how individuals voted. That is arithmetic. No voting method can prevent it, and it belongs in your election rules.
  • Voting needs JavaScript and a current browser over HTTPS, because the ballot is encrypted on the device. There is no way to do that and also support browsers that cannot.

Running an election this year?

Tell us the shape of it — how many voters, what has to be decided, what your statutes require — and we will tell you honestly whether this fits.