Your ID card contains a private key, you use that key to sign a transaction. It doesn't matter that machine you are running on is compromised as these details can be verified at a later date.
Example A:
You vote for candidate A, but software changes to candidate B and software displays that you voted for candidate A. At any later time you can check with an independent device and look at the transaction finding out that it was altered with and retract your vote / change it.
Example B:
How do you know your vote was counted? Publish a hash and the signature of every vote, recompute the final tally and compare with all the votes. If your vote is not in the final tally the hash will be different and you can visibly see your vote in the dataset as every transaction is published. To preserve privacy each round has a number, private key + number -> new key so each fingerprint will be unique between votes.
I've spent a lot of time thinking about this problem, and my conclusion is that cryptography alone is not the solution, for reasons like:
1. The public needs to believe it, and hypertechnical solutions are a hard sell.
2. Any blockchain approach needs to preserve the secrecy of the ballot, otherwise you get all the problems you can expect of non-secret votes (coercion, vote buying, shaming network effects).
3. You still need to have the cryptographic rubber meet the physical road _somewehere_ -- it has to, otherwise the need for vote secrecy means that the results can be entirely fictitious and pre-programmed and there is no way to check!
I.e., you can have a paperless blockchain solution IFF you abandon vote secrecy. That is a very tough to swallow pill.
On the other hand, if you accept paper ballots and manual partial audits as part of the solution, then blockchain can have a role to play. For example, the machines could display a blockchain head every 50 ballots cast, and voters take a copy of the blockchain head visible to them, then after the election the public can verify the integrity of the blockchain, and the fact that you only get running tallies every 50 ballots means you get vote secrecy.
A system that uses paper ballots and partial manual audits can be explained to the public, and the public can develop confidence in it. Blockchains can then add a good deal of confidence: the blockchain tells you that the tallies were not modified after the fact, and the partial manual audit tells you to an acceptable level of statistical confidence that the digital cast vote record contains the actual paper ballots _as marked and cast_ by voters.
the issue isn't that people won't believe it or that blockchain can't preserve secrecy of ballots (it can). it is, in part, that crypto eventually has to meet the real world, but mainly that crypto is hard and governments might not be up to the task. for example, last year the IACR (which had been doing online voting via crypto for more than a decade, and still is) had to void their elections because one of the trustees lost their private key and the results were impossible to decrypt. while it was ultimately fine because the IACR isn't really a high-stakes operation, how would you feel if your government just said "sorry folks, there's been some technical issues and elections will have to be redone"? would you believe them or suspect they're up to no good? what if this happens in a very contended and heated election?
>I.e., you can have a paperless blockchain solution IFF you abandon vote secrecy. That is a very tough to swallow pill.
This is false. I know this is a common thought on HN because some formerly popular youtuber did a video about this topic that is still regularly reposted here, but he was already wrong in theory back then and it is certainly wrong in practice today. Secrecy/anonymity and verifiability are no longer mutually exclusive as anyone who is well versed in modern cryptography will be able to tell you.
I'd appreciate some references. That's not because I'm trying to put you down with a request for references, but clearly you have seen them, and I'd like to see them.
I agree that convincing the public is a separate issue. But on a technical level, these problems are solved. See e.g. this modern implementation: https://github.com/vocdoni/davinci-paper This is a pretty recent one, but the mathematical foundation dates back to the late 80s.
Thanks. Right, this is zero-knowledge proofs. I expected as much. I think that ZK can be made to work for secure voting, though I don't believe that the public can be expected to understand it. I'll have to read this, but I suspect that there is a way for possessors of secret keys to choose to decrypt ballots and violate ballot secrecy.
You know what's easy to understand? Hand marked paper ballots cast anonymously with multiple witnesses to simple optomechanical counting using open hardware and software. The crypto based security can be used to ensure that only a valid ballot enters the vote You have to combine the crypto with a paper trail. Otherwise it can be manipulated by mitm or a bad actor with the keys. Blockchain has more than enough attack vectors.
And so many special rules. Observers are constantly thrown out or denied rights, because even the local officials running the show don't know the rules. Because, in the end, it is not that simple. Berlin right now has an issue that they forgot to specify which of multiple valid method are used to calculate the excess mandates.
It is never as simple as just some paper ballots. But we have a bigger problem. It's a problem at scale. We have all those issues because we do not have enough experts to run all the voting locations at once. The observers need to understand the rules and their rights. The official needs to do so, too. The work of an expert is not scalable, because he cannot be at all places at once.
However, an expert who audits the software is very scalable. One expert can find issues everywhere.
In terms of working democracy and social governance, we can kill a big flock of birds with a single shot if the public can understand cryptography. Think about it: we live in an age where everything is digital and has a microprocessor inside. Even money is digital. But the "public" can't parse simple logical statements, and they vote for the funniest clown in the race (for a definition of funny). The best this schism can possibly end is if we vote in a Luddite Empire that squashes technology. All other scenarios are far scarier.
Even if the average person had a working understanding of cryptography, which I think is highly unrealistic to begin with, that wouldn't be enough to give the system credibility.
For the system to be credible and resilient against coups it must be possible for the average person to audit the system end-to-end. This is impossible to achieve with online voting, yet trivially achievable with paper ballot systems:
An observer can verify that ID is being verified, that voter list is managed correctly, that every person is issued 1 ballot.
When votes are being counted they can see each ballot and count along with the officials. The number of ballots in the box must match the number of issued ballots based on the voter list.
They can get a copy of the report where they verify that the counts are correct. Then they can verify that the authorities indeed used the same numbers for their polling place in the final counts. And because you have cooperating like-minded observers in every polling place, you know that the final count is correct.
This doesn't directly affect your comment, but I'd like to head it off before more occur: "Distributed Database" != "Blockchain".
We've had distributed databases with hashes for many decades. It'd be cheap, easy, and fast to run a couple hundred pre-determined nodes controlled by many different governments and institutions who are unlikely to >50% collude.
In contrast, the different and new pieces for "Blockchain" all revolve around one root requirement of letting anybody start up an arbitrary number of nodes--which we don't need for elections. Without that requirement, dozens of problems and workarounds fall away, like the problem of voters standing around for transaction clearing times.
>I.e., you can have a paperless blockchain solution IFF you abandon vote secrecy. That is a very tough to swallow pill.
With voting you need to have one piece of the pipeline that is not auditable externally and taken on faith. It could be vote counting or it could be the step that matches your ephemeral signing key with your identity, but doesn't keep the logs.
This needs some level of integrity of the election administration body and public trust of it.
>A system that uses paper ballots and partial manual audits can be explained to the public, and the public can develop confidence in it.
It doesn't matter that the ballots are paper. What matters is they are at the same time a) given only to qualified voters (1x each) and b) are not tied to voters identities once issued and c) once cast are properly counted.
You can go all digital and gain B with a mixer, but this makes the process prone to denial of service and it's too complicated to explain anyway.
> The public needs to believe it, and hypertechnical solutions are a hard sell.
Public doesn't need to know the details. Production of paper, printers is quite complex and so production of the pen. Yet people are not concerned about that when voting and we don't publish schematics of a printer that printed the ballots.
> Public doesn't need to know the details. Production of paper, printers is quite complex and so production of the pen. Yet people are not concerned about that when voting and we don't publish schematics of a printer that printed the ballots.
Except that people know what paper looks and feels like, they know how it absorbs ink, they know its various properties, they can _read_ whatever is printed on them, and they can see that the marks they make (or a ballot marking device does for them) are faithfully visible on the paper. With paperless machines there is nothing comparable.
The public can observe that they choose their ballot/mark their ballot and drop it in a sealed box when they vote. If they want to they can hang around and observe how the box is brought in to another room and each ballot is counted and that the result is reported in to the bigger system where they later can see the results from all other districts and that the result from their district match with the result they can see in the official results. It's easy to understand. It's easy to understand and observe. If you digitize the voting process it's much much harder to understand and only computer scientists and mathematicians really understands what's going on. That's not sustainable imo.
That depends on who is doing the fraud and what qualifies as success. There is this weird failure mode where make-believe elections happen, they are obviously rigged, but fuck-nothing happens except people going in circles telling each other that elections were rigged. Had a shit neighbor like that.
You don’t, but you can validate the system as a whole. If you wish you can show up in the morning, confirm the ballot box is empty, look at the ballot box all day, follow the box out back and observe the ballots are poured onto a table, sorted in stacks and counted first electronically and then manually and see that the result is the same that shows up in the official tally. Validating that my single vote is counted correctly is worthless if the result is manipulated on the backend and it’s much harder (impossible) for any regular Joe to validate that an entire cryptographically secure voting system doesn’t manipulate the count somewhere.
The problem is much simpler. If people could verify if their votes were counted correctly, at least 1 out of 20,000 would claim that their vote was counted incorrectly while it wasn't. Some are malicious, some pushed the wrong button, some just forgot that they changed their opinion since then.
That would be a very vocal minority that would immediately destroy any trust in the system.
Maybe the great filter is civilization's ability to deal with "vocal minorities" in non-genocidal fashion by threading the middle way. Somehow it's either total fash to 11 or death by 1000 nimby cuts that want neither kerncentrale nor windturbines but 100% green energy cheaply at around the clock.
A major problem is that if you are able to verify who you vote for, you can either sell your vote or be coerced (by, say, your abusive husband) to vote a specific way.
You can always include a nonce to decode the votes true value or provide an alternative for people that are vulnerable to coerction. If you need an example: monero crypto currency is the pinnacle of it.
You could also — get this — have people write a cross in a piece of paper, fold it and put it in a locked box, monitored at all times by delegates of the different candidates/parties.
"Updating a vote" was supported in 2021 Russian Parliament elections (for Moscow voters). Written in Rust, built on a blockchain with contracts. Source code: [1]. No way blockchain voting can be rigged! It is protected by math!
It immediately raised a suspicion, could the government use "updating a vote" to change the vote of the voter after they voted. There were suspicious bursts of votes for government candidates during early morning (3:00-12:00 AM) between 2nd and 3rd voting days. Could it be re-votings? Who knows, public blockchain has no way to find this out.
How can an observer distinguish between a real voter voting the second time, and the government voting second time in his name?
Furthermore, to cancel the previous vote, you need some way to link the new and old ballots. In the case above, there was a non-public database (a blockchain), unavailable to observers, which kept the needed information. And theoretically it could allow de-anonymize the voters.
So what I wanted to say that electronic voting is a garbage only convenient for fraudsters.
Yes Russia shows that even smartest math can be worked around. Everyone who wants to know the real vulnerabilities of electronic voting should study Russian elections.
Social pressure can make it scale pretty well. For example, there could be a neighborhood election day party. You vote when you enter, the organizers observe how you vote, and then you leave your devices in a storage locker. The party continues until voting has ended and the results have been announced.
You are over-engineering. You do not need to coerce a voter if you are the administrator and can just add the record into the database directly. Also no need to spend money for a party.
All reasonable high-stakes electoral systems assume that election officials cannot be trusted. There is no central database that can be manipulated.
Traditionally there are people representing different parties watching over each other, until they eventually publish the intermediate results from whatever region they are responsible for. And all aggregate results beyond that are based on public information. Some people want to replace that with cryptographic systems with provable properties. But any system that lets you vote anywhere remains vulnerable to voter coercion.
"People watching over each other" usually do not have root (or any) access to the servers, they are usually only shown aggregated stats (like number of votes cast). They usually do not have access to voter details like IP addresses, phone numbers, fingerprints. In some cases, they can read the public "blockchain", but not the private one (in systems with 2 blockchains). The blockchain doesn't contain much useful information to verify, only votes.
The ones who have actual access, are from the government.
> if you are the administrator and can just add the record into the database directly
And because of that, the final truth is never in the database, but in the physical votes. Which results in a huge problem if there are no physical votes.
if someone is forcing you to vote against your will, i thing you and country have more serious problems to solve. especially if its happening at scale.
You'd have to go to your elections authority's location, and very few could do it w/o overwhelming the vote verification rate capacity, and very few would.
We have the solution it's just not practicable. Cryptocurrencies and hardware wallets have solved this problem. But they operate at the scale of people in their bedrooms not hundreds of millions of people voting over one day all over a country.
Passports would need to become like hardware wallets with screens such as Trezor. Who's firmware and design are open source.
The screen means I can see what I'm signing and later be shown what I signed.
Now, I don't want people to know who I vote for. So we make it e-passport gate so that no one can enter with me.
Now I want to be able to verify my vote at a later date but not let others know it was me.
Well this too is solved by multiple cryptocurrencies like monero and z-cash.
I can go to my local town hall enter a room alone using a e-passport style gate and check my vote at the machine. My device can verify my vote.
Someone with the vote can only see that 1 of N voters did it. Where N is so large they can't identify me.
To show you the user something and no one else without leaving a paper trail.
The ability to enter a single person voting booth through a e-passport style gate and security to check your devices screen again so a perk that could be implemented.
The public ledger of all votes that could be checked to enforce no duplicate voting, generate a full list of who voted if desirable, and you with your device in a secure room check your vote.
Are all features of cryptocurrency systems that exist allow.
All of that could be optionally allowed or disallowed for a future cryptography enabled voting system.
The e-passport style gate to single person voting room is the physical security needed to ensure people don't coerce each other more than today. And optionally make coercion impossible at the cost of some people not being able to vote (people who need someone in the room with them as they do in the booth with them today).
Yes, coercing the voter in the polling station where there are people monitoring the situation, and police, is more difficult than in supervisor's office in the factory where you just call the employee and order them to vote. No witnesses, no evidence.
There is a reason monero and z-cash are being banned in Europe.
I can't claim to be a crypto expert.
But hiding a transaction and it's value among other transactions is perfect for voting.
As I understand it Monero uses ring signatures to make it so it's not possible to know which individual of a group initiated a transaction, and it's zero knowledge proof system means it can be verified that a particular transaction is valid despite this.
To my layman mind that seems to be good enough, every vote can be verified by any party as valid (no double spending or double voting took place).
You can never narrow down who made a particular vote beyond a large pool of people.
You can't tell where any transaction went (you don't know who was voted for).
At the same time with my private key I can see my vote.
The only thing needed for voting is the e-passport style gates.
Certainly it won't just get a case of use monero, they would need to design the system for voting.
Or ballot boxes. Where citizen can keep their eyes on their ballot until it is counted.
Even back in 2002, TV channels in France (60m inhabitants) broadcast the winner at 20:00:30, using statistical models.
But recently, they removed the ability for citizen to stay during the counting, relying on designated persons, which breaks the chain of trust. Might as well cast my vote into a black bag or an electronic machine, no trust at all.
Trust was never the goal. As the means of coercion are higher and the capacity of communication is filtered, it becomes unnecessary to involve citizen in voting, isn't it?
> recently, they removed the ability for citizen to stay during the counting
Here in Australia, representatives of the various political parties observe the counting as scrutineers. I did it once. It’s absolutely fascinating seeing the system and rules. All (lower house) votes are physical slips of paper. Officials sort them into piles of 50 based on their first preference, in a big warehouse. Scrutineers watch them do it. We are allowed to contest their reading and sorting of a vote, but not physically touch anything.
I’m sorry to hear you can’t see your own democracy in action. I have more trust in our election process seeing it up close, in person.
What elections are you having in mind?
Counting should still be open to the public. In small places like embassies they may limit the number of people for security reasons.
Who makes your ID card, generates the private key, and stores it there? Do you trust them? Did they retain a copy of the key? Did they implement security effectively (a very difficult task, considering the resources of attackers)? What about securing the manufacturing process?
This is one big advantage of paper vote systems. You can still bribe, trick or coerce a single person. But it becomes much more difficult to do so en masse. Computer voting allows fraud at scale. It is much more difficult to scale an attack on a paper voting system.
So if someone else knows my private key and voted for me not the same way i intended to vote, this will be visible in final results. And then you can start asking questions. If they have my private key and voted the way i intended, then its no problem :)
That this is too simplistic. There are obviously many solutions with different trade offs, but this one sacrifices secrecy to help catch fraud, and it’s not even effective at catching fraud.
1) How does cryptography helps to verify that the ID cards used by voters belong to real people and not generated for fictious people by the government?
2) How does cryptography helps to verify that teachers vote without pressure and not in principal's office under supervision? Or that they are not forced to give their mobile phones and ID cards to a principal for "inspection"? And the same for employees in large companies, government employees, military, police, doctors etc.
3) How does cryptography helps to verify people are not voting for a payment?
I am surprised that when someone says "cryptography" programmers become so blind that cannot see even the elephant in the room. It feels like everyone is brainwashed by propaganda.
> At any later time you can check with an independent device and look at the transaction finding out that it was altered with and retract your vote / change it.
Easy for a non-programmer.
> these details can be verified at a later date.
After election results are officially confirmed, and cannot be changed.
Can you? I am not familiar with any electronic voting system because they are not allowed where I vote. Does any system give the voter access to their vote later to check that it was registered correctly?
Not even sure whether that would be a desired functionality. Free elections are secret for a reason. If you can check whether you voted correctly others can, too. Even if that functionality were protected by the private key again, it might be misused. There are governments/comompanies where they'd say: Show me how you voted or you are in prison/fired.
There is no problem that electronic voting solves that paper ballots and scanners do not, and the latter are not only more secure but are seen to be more secure. Trust is essential in a voting system and only paper ballots provide the necessary level of trust.
There are problems that electronic voting does solve: in some countries, moving paper ballots are problematic and subject to tampering. This shows up in mail-in voting, where there's always a risk of loss and delay. Overseas voters are an issue, e.g. deployed military.
There is a specific problem with mail-in voting and disabled voters, for example elderly people who can't go to the polls and can't get an electronic ballot marker. 25 US states deliver ballots electronically and 15 allow electronic voting for this specific case [1].
Some countries solve that by just banning mail-in voting and moving paper ballots.
In France for example, voting happens on a specific day with transparent ballot boxes, with the counting happening in the polling station (you may stay for the whole day in your polling station if you want to oversee the whole process). Yes this is problematic for voters in foreign countries, because they need to go to the embassy to vote, but the voting protocols chose transparency over practicality.
IIRC, deployed military get a polling station in their military base. A voter may also designate someone in the same polling station as theirs to vote in their place.
Registration of such voters can be audited and checked carefully to limit their numbers (since they must be inherently limited), and ballots can be delivered to them, or voting equipment can be brought to them (e.g., elderly care homes). I'm not sure much can be done to make voting by the permanently confined secure. For military the military itself can help a great deal. For civilians overseas, either come back to vote, vote at a consulate, or don't vote -- I don't think it's necessary to bend over backwards for civilians who choose to be overseas unless a country has a huge proportion of its population residing abroad.
Consulates in some places are 3 people in a rented office 1000 km away from where you live. One thing that digital voting could solve is the scale and distance.
>I don't think it's necessary to bend over backwards for civilians who choose to be overseas
Big committment to democracy and rule of law, I see
Intentionally limiting access to accessible voting is problematic.
You also have issues of deanonymization if you only get a couple of ballots in via one method. In Maryland, for example, they're supposed to encourage at least 100 random people to use the accessible ballot marker per precinct for this reason.
It's not reasonable to tell people "too bad," fly back to the US as much as 3 times per year. They pay taxes and are subject to US law even though they're overseas, so they get to vote.
Ballot management becomes error prone. My county alone has 25 ballots due to the different combinations of state house, senate, Federal house, municipalities, and _all_ the special districts. (4 members to the board of directors of the Anytown West Memorial District, a.k.a. cemetery, because they had a property tax assessment when they built the thing in 1950)
> Intentionally limiting access to accessible voting is problematic.
I offered nothing of the kind, except as to civilians residing abroad, and even then, I don't think there should be any obligation to provide online voting -- having to travel to a consulate is not too unreasonable.
> It's not reasonable to tell people "too bad," fly back to the US as much as 3 times per year. They pay taxes and are subject to US law even though they're overseas, so they get to vote.
Vote... where? In what state, in what county, in what precinct? The correct answer is that they should not have to pay income taxes while residing abroad, but also not get to vote while residing abroad.
For military the situation is simpler even if the personnel have no US-side residence: use the state/county/precinct of last residence. The same can apply to civilians, but I'd rather let them not pay state and federal income taxes while residing abroad.
> Ballot management becomes error prone. My county alone has 25 ballots due to the different combinations of state house, senate, Federal house, municipalities, and _all_ the special districts. (4 members to the board of directors of the Anytown West Memorial District, a.k.a. cemetery, because they had a property tax assessment when they built the thing in 1950)
>Vote... where? In what state, in what county, in what precinct?
No, you misunderstood the comment. It has nothing to do with residency, that's solved.
During a normal election year in the US, you have two elections: a primary and a general. The primary is not solely for political party nominations either, often other state and municipal questions get put on it.
Some places commonly end up getting a 3rd because, e.g. a senate seat becomes vacant and the state has a requirement to hold a vote on the replacement. Sometimes the seat becomes vacant as a result of taking a position in the new administration, so you end up having 3 elections a couple of months apart.
> It's not reasonable to tell people "too bad," fly back to the US as much as 3 times per year.
Where are you having elections three times per year? If you’re living abroad, you shouldn’t be voting in local elections because you’re not a resident. You probably shouldn’t be voting in state elections either because you’re not a resident. So you have to come back every 4 years to vote in the presidential election, or go to a consulate to vote every 4 years.
The US. Primary, general, and in a number of states, you have to have a special election to replace the senator/representative that joined the new administration or quit or whatever. Actually, that causes 4 elections because you have a primary for that. [1]
>You probably shouldn’t be voting in state elections either because you’re not a resident.
That's a matter for the state, and many say if you still have a house, or intend to return, then you vote there.
> If you’re living abroad, you shouldn’t be voting in local elections because you’re not a resident.
And no, a number of states allow voting in that case even if you're not a resident [2]. For instance, you own a vacation home, you get to vote on property tax related matters concerning that house.
> Example A: You vote for candidate A, but software changes to candidate B and software displays that you voted for candidate A. At any later time you can check with an independent device and look at the transaction finding out that it was altered with and retract your vote / change it.
This seems to make a pretty dramatic change to the election protocol, no?
Consider example A': You vote for candidate A, but later realize that you hate candidate A. You repudiate your recorded vote for candidate A.
How much later? Cryptographic systems certainly have methods for allowing revoting up to a deadline, but endlessly mutable voting is insane. It's also not really any different from today. I can say I didn't vote for candidate A 12 months after the upcoming election and it means... well... nothing.
You can do A' in some US states... you can vote by mail/early vote, and then later request they spoil that ballot and do it again, or by voting on election day the mail-in is invalidated.
There is no "US voting system". Each of the 50 States have their own systems, often several systems, and where there are several systems it's the counties that pick a system that suits them.
I'm confused. Can you explain the exact issues created by this repudiation system practiced by US states? Maybe there's a real issue that hasn't been addressed that I am unaware of.
I don't think that solves it. In your "example A", the compromised software can display that you voted for candidate A, but when doing the signing, sign the result that you voted for candidate B. There's no reason why the thing that it signs has to be the same thing that you see on the screen, and there's no way for you to verify it.
You cannot solve it with cryptography. I understand cryptography but my parents don’t, so I will be voting instead of my parents. This way, I get three votes while they get zero votes each.[0]
I'll quote Bruce Schneier [1]:
If you think cryptography can solve your problem, *you don’t understand your problem* and you don’t understand cryptography.
0: I already do anything related to any interaction with a computer system for them (including payments, social security, medical, travel, etc.)
As long as the non-in-person option exists, the results won't be trusted.
In the US, there was a lot of discussion that the Biden win over Trump in 2020 is a result of the younger family members quarantined on Covid with their parents and mail-voting for them. I don't believe that's what's happened, but this discussion could not have taken place at all in a world where mail-voting is not an option.
I think if it weren't for mail-voting, they would have attacked from another angle. It's not about mail-voting, but power, and generally destroying the democracy (which basically is not a secret as Yarvin is well known for this and his ties to the government).
This problem is unavoiable as you ultimately have to trust the root, just like with paper ballots, so this is not an applicable problem. Although you could include encrypted metadata for location, id number attached to a real person and other information that would make verification after the fact much, much easier.
Wrong. With paper voting you can stand in the polling station and see real people getting ballots. With electronic voting you cannot see anything - are real people voting or is it ChatGPT-written script adding records to the database.
Paper voting is 100x more verifiable than electronic.
The problem of addition (or deletion) of votes is solved by having a paper pollbook to go with an electronic pollbook, plus doing reconciliation.
Election integrity is about finding all the attacks that can reasonably be expected, and detecting or -even better- preventing them. But it's a tougher problem than this one-sentence summary makes it sound.
Paper voting at least has a trail. Electronic voting leaves no trail at all.
Re: "voting the graveyard" there are following ways to prevent it:
An election monitor can manually count people coming to the polling station and compare it to the number of ballots taken out of the box. Monitor can observe how those votes are counted, and get a signed document with results. After counting the votes across the country, he can compare his paper document with official published results, filtering them by his polling station. Every step is verifiable.
Also, every voter must leave a signature. Signatures also can be verified.
> Me: With this voting technology https://spec.davinci.vote/ how can one verify that the voters are real people and not bots?
> ChatGPT: The key distinction is that DAVINCI can verify that a vote comes from an authorized cryptographic identity, but that does not automatically prove the identity belongs to a real, unique human being.
The algorithm doesn't solve these problems:
- how can I verify that voters ("voter census") are real people and not fake accounts made by govt? I can generate cryptographic identities all day long.
- how can I verify that at the end of elections government doesn't take people who haven't voted, and adds votes in their name using their cryptographic identity?
- if re-votes are allowed (they seem to be) how can I verify that re-votes are made by actual voters and not the government changing their votes in its favor?
- how can I verify that voters are not coerced to vote certain way by their boss at a workplace? For example, in my country, at some workplaces the employer (unofficially) requires a proof of voting, for example, a selfie from a polling place posted to a work chat.
- how can I ensure that the government does not know who voted how? In this case, the one who holds a private key, can decrypt the votes and identify voters who voted the "wrong" way.
The paper you linked to seems to not provide the solutions (I asked ChatGPT to read it for me). It is just a funny math exercise for mathematicians. Also I do not understand why it uses Ethereum and not my own cryptocurrency which obviously would be better because I would get rich quickly.
To compare, in paper voting people leave their signatures in the voters roll, and the marks on the ballots are also unique. While usually nobody checks them, it is still a better trail than a block in Ethereum blockchain that proves nothing. And in paper voting you can see real people putting the ballots into the box while here all you see is zeros and ones.
You just moved the goalposts. The question was electronic records could provide an evidence trail. You didn't address that.
Instead you just raised, admittedly with some more detail, the same issues that I did in https://news.ycombinator.com/item?id=50137231. While ignoring that every one of these failure modes also exists with paper.
For sure. The thing is that there are several problematic areas (registration, in-person voting mechanics, early voting, precinct-based vs. county-wide (or worse), mail-in ballots, etc). You can't fix everything all at once, or maybe you can, but you have to focus on each problem area separately because they are separable and it's easier to address the problems that way.
People can lose their card or have it stolen, become ineligible to vote, or die (welcome to the fun project of nationwide key management). Voter registration now has to be done in person to update your card (or get a new one). You have to have every county in every State in the union buy new machines at great expense, probably in violation of existing contracts. People forget how they vote; what happens if you look up your vote and it's not what you remember, it's not there, or you find a vote you don't remember? Bad actors can claim their votes are incorrect and undermine confidence in the election. Vote verification opens up a vote market, and with encrypted comms and anonymous cryptocurrency that's a real concern.
Your ID card contains a private key, you use that key to sign a transaction. It doesn't matter that machine you are running on is compromised as these details can be verified at a later date.
Example A: You vote for candidate A, but software changes to candidate B and software displays that you voted for candidate A. At any later time you can check with an independent device and look at the transaction finding out that it was altered with and retract your vote / change it.
Example B: How do you know your vote was counted? Publish a hash and the signature of every vote, recompute the final tally and compare with all the votes. If your vote is not in the final tally the hash will be different and you can visibly see your vote in the dataset as every transaction is published. To preserve privacy each round has a number, private key + number -> new key so each fingerprint will be unique between votes.