quoting
naddr1qv…avruNot a Twitter poll.\ Not a Discord reaction.
An actual election — with real voters, sealed ballots, and results that anyone can verify.
NIP-88 already gives us the tools. We just need two small upgrades.
The problem with normal Nostr polls
NIP-88 is beautiful in its simplicity:
You publish a
kind:1068pollPeople reply with
kind:1018votesOne vote per pubkey
Latest vote before the deadline wins
But if you try to run something serious with it, two things break immediately:
Everyone can see the votes arrive in real time (bandwagon effect + timing attacks)
The voting keys are usually just throwaway npubs that someone handed out — meaning there’s still a human who knows who got which key
That’s fine for “pineapple on pizza?”\ It’s not fine for choosing a government.
The fix: Blinded IDs + Sealed Ballot Box
Here’s how you actually run an election on Nostr.
1. The Blinded ID Issuer
Instead of asking people to make their own throwaway keys (or having some admin hand them out), you run a disposable program:
It takes the official voter list
Generates a fresh keypair for every single person
Securely delivers the private key to that person (encrypted DM, physical letter, whatever)
Publishes only the public keys
Then permanently deletes the private keys and any mapping
What remains is just a list of anonymous voting credentials.\ No one — not even the issuer — can link a key back to a real identity after the program is gone.
To make this verifiable, the issuer can run inside a Trusted Execution Environment (TEE). The TEE can produce an attestation proving that the correct open-source code ran, that it generated the keys, published only the public keys, and then wiped the private material. Anyone can check the attestation instead of just trusting the operator.
2. Relays that keep the box closed
The poll still uses normal NIP-88.\ But the relays you point it at agree to one extra rule:
> Do not serve any vote events until the official
endsAttimestamp.Until the deadline hits, the ballot box is sealed.\ No intermediate results. No last-minute swings. No real-time surveillance of who is voting.
After the deadline, the relays open the box. Anyone can download every vote, filter by the published list of allowed public keys, apply the normal one-vote-per-pubkey rule, and get the exact same result.
The full process looks like this:
Finalize the voter roll
Run the blinded issuer (ideally inside a TEE) → get a clean list of public keys
Publish that list
Create a normal NIP-88 poll pointing at the sealed relays
People vote with the private keys they received
After the deadline, the results become public and fully verifiable
That’s it.
No new event kinds.\ No special cryptography beyond what Nostr already has.\ Just better key hygiene and better relay policy.
Why would anyone actually want this?
Because it gives you properties that almost no current election system has at the same time:
Public verifiability\ Anyone in the world can download the votes and recompute the exact same result. No “trust the election commission’s spreadsheet.”
Strong privacy\ There is no lasting link between a real person and their vote. Once the issuer is gone, even the people who ran the election cannot prove how any individual voted.
Sealed ballot box\ Results stay hidden until the official close. No exit polls leaking early. No momentum swings in the final hours.
Censorship resistance\ Votes live on multiple independent relays. There is no single server that can be taken offline or ordered to delete ballots.
Extremely low cost\ No special voting machines, no proprietary software licenses, no national biometric database. Just keypairs and relays.
Works with tools people already use\ Any NIP-88 compatible client can create the poll and display the final results. Voters only need a normal Nostr key.
In short: you get cryptographic auditability and real privacy and resistance to interference, without inventing a new blockchain or forcing citizens to install experimental apps.
Is this perfect?
You tell us?
coercion/vote-selling is still a human problem, not a protocol problem.
But compared to every other “blockchain voting” scheme that requires new tokens, zero-knowledge circuits, or trusted hardware… this is almost offensively simple.
And it already works with the clients people use today.
So yeah.\ What if we actually ran a national election on Nostr?
The tools are already here.\ We just have to use them properly.
ABH3PO on Nostr: Running an election is not only possible on nostr I think no other method even comes ...
Running an election is not only possible on nostr I think no other method even comes close in terms of transparancy and verifiability! It's a crime to not be running national elections on nostr!
