← All gaps
💻 Software you can't check

No way to prove the code is the real code

Even if the voting software is published, that alone isn't enough. You also need to be able to rebuild it yourself and get the exact same program the machine runs. Without that, the published code might not match the secret version actually installed.

Explainer video coming soon

A 60-second, plain-language walkthrough of this gap.

What actually happened

This is a well-established software-supply-chain principle. The cross-industry Reproducible Builds project exists precisely because reading source code isn't enough — you must be able to independently rebuild it and confirm you get the identical program, bit for bit. Otherwise 'here's our source' and 'here's what's running' are two different, unverifiable things.

Where it stands today

Most jurisdictions today don't even require the voting software's source to be public (see 'Software you're not allowed to check') — so requiring a reproducible build that anyone can match to the running machine is rarer still. The figure above reflects current law.

Reading the menu isn't tasting the food

Publishing source code is like posting a restaurant's recipe. Good — but it doesn't prove the kitchen actually cooked that recipe. Maybe they followed it. Maybe they didn't. You can't tell from the recipe alone.

A reproducible build closes that gap: anyone can take the published source, compile it themselves, and check that they get the exact same program — bit for bit — that's installed on the machine. It's how the broader software world catches code that was tampered with after review.

Why it matters

Without reproducible builds, "here's our open source" and "here's what's running on the machine" are two separate claims, and only one of them can be checked. A published clean version could sit next to a secret altered one, and no outside party could prove the difference.

How TrustVoting closes it

TrustVoting commits to reproducible builds: rebuild the published source, get the identical binary — then the integrity layer (checksums + attested boot) proves the machine is running exactly that binary. Open code → a build anyone can reproduce → a machine that proves it's running it.

How TrustVoting closes it

TrustVoting commits to reproducible builds: anyone can take the published source, rebuild it, and confirm it produces the exact binary the machine runs — then the integrity layer (checksums + attested boot) proves the machine is running that binary.