Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Cicada: Private on-chain voting using time-lock puzzles (a16zcrypto.com)
44 points by subsequent on July 6, 2023 | hide | past | favorite | 34 comments


For a personal project or a team of professionals that understand how public key cryptography works this is a, albeit expensive, solution for a cryptographically proven voting system.

For an election system that a government would use? Absolutely right out. A criteria for fair elections is that the average person needs to be able grok it. The number of people who can validate solidity smart contracts and the cryptographic integrity of a blockchain is astronomically small compared to a paper ballot based system.


My confidence in the accuracy of this article diminished once I read this bit:

> As such, it is only suitable if the expected final tally is reasonably small (e.g. less than 2^32, or about 4.3 million votes).


It also uses 1024 bit RSA and on Eth which is one of the slowest and most expensive L1s.


Something we were pretty worried about, not every kind of vote needs privacy - but there was a story with Eth DAO having people like Vitalik abstain from voting to not affect other voters opinions, happy to see further progress in this area. Can't wait for an openzepplin primitive.


there are some who say that the following and other work is superior to cicada which eg requires timelocks

https://eprint.iacr.org/2022/543


Time lock puzzle, is that a fancy way of saying proof of work?


They’re fundamentally different since the standard definition of a VDF is strictly non-parallelizable and P/o/W is generally designed to be “embarrassingly parallel.”

It may seem like a minor subtlety but the resulting dynamics are dramatically different. For a VDF it doesn’t matter if you have 1 machine churning away or 1000 machines churning away, it will take you the same amount of time to finish the calculation.


It’s like that but usually to decrypt something where the output of a verifiable delay function is a key.


are there other verifiable delay functions than essentially just proof of work opinionated about hardware capabilities?


It's a fancy way of saying magic beans.


Meanwhile in academia, I’ve proposed research into cryptographically-provable voting systems, and received nothing but hostility and discouragement. The same cryptography professors who started their careers in the topic after the 2000 election, have now changed their research interest to ‘combatting disinformation’ about election integrity.


I’m not sure why the academics are discouraged , but there are non-technical reasons to discourage you (and all of us) from trying to use Internet-based voting systems for important elections:

https://engineering.stanford.edu/magazine/article/david-dill...

This article voices the general opinion I’ve read from technologists and those who’ve studied networked voting systems. The problems all boil down to any software-based (i.e. non-paper-based) voting system will almost certainly contain bugs, and this will allow elections to be influenced by a few persistent hackers.

Maybe this is where blockchain-based systems could help push such systems forward, by effectively giving a worldwide bounty for voting software. After many years and 0 hacks, we could be pretty confident that this particular piece of solidity code is solid and could be used as part of an Internet voting scheme.

Though, the moment you have a frontend (which you will of course need to interact with the smart contract) you’re back to square one because of all the millions of lines of code (uh oh, bugs!) that are necessary to be executed in order to display a form on your screen.

Maybe it’s a good thing you were discouraged from this bleak area of research, who knows. I’m sorry you were discouraged like that.


Well said. That is the thing with all of these other on chain schemes for everything from real estate to food tracking to voting. It doesn't even matter how secure the voting/tracking part is, the chain can't actually provable tie to something in real life. And as you said, it is an attack vector. People can vote in important things and there can be fraud but when you have paper and many layers of verification and audit-ability, wide spread fraud isn't possible. Too many people have too much of the information.


This is an extremely weak straw-man argument. It doesn’t need to be on the blockchain, mobile, or even the internet. You can print out the cryptographic proof on paper if it pleases you.


How many scrutineers would be able to verify that paper? Let alone normal voters.

(Scrutineer might be a poll-watcher in the US?)


I imagine anyone who runs the mobile app could probably open the camera and scan it.


How do you convince them the mobile app is doing what it says? There are so many layers of things that are completely invisible to a human without using other computer tools. Paper physically moving is way easier to understand and watch.


It's turtles all the way down with this crap.

I observed the "audit" of my county's VVPAT. When the printout was found to be illegible, the admins just printed another copy. Proving, at best, the printer occassionally worked.

My county trashed our touchscreen voting machines.

Sadly, vendors, technophiles, and a certain type academic, remain undaunted in their enthusiasm for unverifiable elections.

Eg Adjudication of postal ballots, at scale, isn't any better than the touchscreens they replaced in that regard. How hard could it be? Well, the stack my county uses, for "efficiency", fully digitizes the audit trail.


Good question. The mobile app’s source code has been inspected by independent subject matter expects.


How much of that is because we have a bunch of forward secret e2e auditable ballot schemes already? (E.g. ThreeBallot)

We already know how to do this, it's policy that the hard part at this point from my understanding.


Yup. Voting has received a dizzying amount of academic research. That doesn’t mean it’s impossible to innovate, but diving into that field without an advisor that’s familiar is a recipe for years of rediscovering existing results.


Also there's was a lot of over enthusiasm about moving voting to remote and online that took a while to get people to realize the major pitfalls they were setting up.

Did anyone ever solve the issue of vote verification (a voter being able to verify that their vote was counted) being a massive threat to vote secrecy? ie they're threatened to vote for Candidate X by a group and forced to show a verification they did?



Blockchain techbros have thoroughly burned up the good will that society grants new technologies, and earned it a distrust until proven otherwise state. There's even an XKCD on this exact topic: https://xkcd.com/2030/

>have now changed their research interest to ‘combatting disinformation’ about election integrity.

Seeing as how disinformation is a gigantic problem these days, this is a better use of their time than trying to reinvent a wheel that already works. Implementing a transparent verifiable blockchain backed voting system will not reduce election fraud conspiracy theories because those belief systems were not arrived at through rational logic in the first place.


Until it’s a result you don’t like. Have you ever considered the possibility that there are places where election systems can’t be trusted? I’m sure you’ll be just as supportive of the Russian-led vote in occupied regions of Ukraine.

My proposal was for provable voting systems in conflict regions. It stems from my experience on the ground supporting the 2014 election in Afghanistan. People all over the world risk their lives to vote, and they, normal primitive farmers with no education, demand proof that it was done fairly. The current method is a line of people showing their hands, then one by one, marking a wall and walking out with purple thumbs.

But really, the place and the situation is irrelevant. I find your response both abhorrent and stereotypical.


And you think an uneducated rural farmer is going to trust some numbers you show them? If they think the election is unfair, you going on about blockchain this and zero knowledge proof that is just going to convince them that you're making shit up in order to support a stolen election. The purple thumb proof works way better there.

The academics are right and you're wasting your time, sorry.


Purple thumbs are a pretty good system, and they were definitely not convinced by voting machines, nor paper ballots. But, it's a physical security nightmare. My job was to keep IEDs out of the polling places. There are many more issues such as multiple voting, cross-district voting, cross-border voting, voter intimidation, retaliation, etc.

And imagine an academic suggesting that it's not practical. The most celebrated academic result of the last 25 years in the field was a crypto system that would take a thousand years to multiply one-bit numbers.

Regardless, you're right. It is a waste of time. There's no funding. Academia is like consulting. You make money by telling people what they want to hear. I've become more aware of this.


There are numerous ways to hold a transparent election. Russia is not choosing those ways. Adding a new option does not change this. You earn 0 points for pointing out that Russia is choosing a non transparent, obviously fraudulent system.


> https://xkcd.com/2030/

I really hate this attitude. This is a very common belief held by non-technical people. They believe that it is impossible to have perfect security, and that every single piece of software ever built is either already hacked, or waiting to be hacked by future hackers.

I truly believe one day a cryptographic voting system will be rolled out, but it's a long way away, not because for technical reasons, but for cultural reasons.


Did you just call Randall Munroe a non-technical person?

> They believe that it is impossible to have perfect security, and that every single piece of software ever built is either already hacked, or waiting to be hacked by future hackers.

Yes. I do believe that.


every single piece of software ever built is either already hacked, or waiting to be hacked by future hackers

...or it's not worth hacking -- this is what your statement leaves out.

Nobody is going to be searching for bugs in cat(1) when there are bigger prizes out there.


> one day

There's the keyword.

And that day is not today.

Paper is fine. Let's use paper.

These voting machines that can be tracelessly hacked with a pen drive are terrifying, and no, there isn't enough awareness of that fact among people.


What do you propose to do with paper? Mostly it just gets fed into a machine. Is it impossible to vote twice with paper? Is it impossible to throw away paper? Is it impossible to miscount paper?

Paper doesn't impart any security property by itself. Can paper be used in a secure system? Maybe. Can a machine be used in a secure system? Maybe. Is all paper secure? No. Is any machine secure? No. Same for blockchain, mobile, internet, satellite, and ouija boards.


Do you have credentials or sources for these odd claims and false equivalences?

Do you have them on paper?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: