So, no comments yet about how people who don’t have access to a computer don’t get to vote?
Also, this system presumes that the US government knows the identity (and ether the contact info or at a minimum the approximate location) of literally every specific citizen in the country who has the legal right to vote. I’m not certain this is actually the case.
As an aside - when I say I’m hazy on how blockchain works, I mean I don’t understand it to the level that I understand many of the other technologies I use in my job. I understand how it works generally. I only mentioned that to make the point that, if someone who does security all day for a living isn’t real confident in his understanding of the mechanics of the technology, then people not well versed in technology can’t be expected to understand it well enough to have confidence in the process.
You’re going to hand my unique preauthorized voter token to my friend or the public library?
I think the US has demonstrated a real problem getting a handle on the whole “registered voter” thing. I’m a little dubious that you’re going to be able to institute a system that requires each voter be delivered this unique and highly stealable token when a nonzero number of people don’t even have computers.
Oh, and sorry Bayard.:smack:
Blockchain solves a couple of the easy problems around how to vote while solving none of the hard ones while also adding significant complexity. Whenever a blockchain solution is presented, it’s worth asking how a distributed ledger adds any value over a centralized, trusted ledger. In this case, it’s hard to see the value since elections require you to intrinsically trust the central electoral body to certify the vote so you might as well trust it to count the vote as well.
Okay, so lets say we agree this is a good idea… I have reservations about absentee ballots, and the ability to intimidate or pay people into voting for candidates or issues, this doesn’t address them at all, and makes them even worse, in a way, as you can now prove your vote at any time to any person.
But, past all that, how is this going to work in the cases where there is more than one position or issue that you are voting for, or is this something that will only be used for presidential elections, and that’s all?
Is there going to need to be a new blockchain for every candidate and issue in every voting district?
Theoretically you’re not restricted to only one type of token transactions for the same blockchain, so, you can have a token for every vote to be cast.
And as I pointed out before, if you show someone your transaction in the blockchain, YOU may know whether that transaction is yours or not (since you know that the key stored is yours). But not the person you’re showing it to, he has no way of knowing that the transaction is yours. Could be anybody’s.
And this will work out for the tens of thousands of different candidates and issues that are on the ballots of all the different precincts?
You said that, but I don’t know how well that works. Are you just picking a random other voter? You would have to find a ballot from your precinct that voted all the way down the way that the expected you to vote.
Are ballots going to be browsable like that, so that I can find a ballot that I like to show to my friends so that they don’t know I’m a dirty librul?
you can see every transaction ever conducted, since the very beginning, in Bitcoin. From address(es), to address(es), amount, timestamp.
Now try this: pick one of the latest blocks. Pick a transaction. Take the “from” address. Do a search on that address in the field at the top of the page.
You will see both the transaction where that bitcoin came TO that address and now the transaction where it was paid FROM that address. This way you know that the person that is paying it actually owns it to pay with.
I don’t think that’s entirely true. I think having a separate, independently trusted voting system would increase trust in the elected government, whereas when you only trust the election as far as you can trust the government, trust can be lost faster and easier.
There is no “trust” involved with blockchain, really. Anyone with a modicum of programming ability can write a traverser that would add up all the votes and give the result. So - literally millions of people could personally write code that would verify the results all by themselves and get the same EXACT result. Not plus/minus a few votes. Exactly same.
This seems like a solution in search of a problem. Moving to bitcoin ballots would reduce the simplicity and transparency of the current process, and its success is dependent on unproved (as far as I know) result that a certain computation problem is prohibitively difficult with current technology— not just the technology available to some random civilian, but the entire resources of nation-states interested in throwing an election. What’s the trade-off that makes those disadvantages worth it?
You repeatedly mention Bitcoin, but your proposed system cannot be identical to the classic Bitcoin protocol. For example, concerning the issue under discussion of selling votes, in Bitcoin I can easily prove to you that a particular address (public key) does in fact belong to me, since I know the secret key.
A distributed ledger (which may or may not have any resemblance to “blockchains”) could certainly play a role here, as DrCube notes, but one has to work out the modified scheme in detail (saying just to use the Bitcoin source code mutatis mutandi is not sufficient), show it satisfies all the requirements of electronic voting, and explain how it improves upon Rivest’s, Chaum’s, et al. schemes and also upon pieces of paper in envelopes cast into boxes.
One goal of a voting scheme is that Mr. B should not be able to learn how Mr. A voted even if Mr. A wants him to know! Substitute “Mrs. B” for “Mr. A” and imagine Mr. A to be a domineering asshole if it isn’t clear why. (Or suppose Mr. A paid money to Mr. B for his vote.) Unfortunately the rising use of absentee ballots may mean that ship has already sailed.
Anyway, old-fashioned paper ballots marked with pen or stylus work very well. All in favor of banning all advanced voting hardware or software except simple punch-card tabulators, raise your hand!
Except you cannot personally go and count the paper ballots. They won’t let you. Or they may let YOU but not millions of others, so they will just have to trust your count.
With blockchain, anyone who wants to can recount any time he likes, as many times as he likes.
I’ll concede my computer knowledge is several decades out of date. But I have a hard time believing any computer program can’t be manipulated by its own programmers. It would seem too easy to design a system that appears to be passing verifiability tests while it’s actually just emulating the right responses while it passes along false data.
As usual the devil is in the details, so of course all hardware and software need to be open source, components (computer servers) need to be redundant and independently controlled by different parties, and so on.
It’s not like these issues cannot be surmounted, but one needs to do it well, under real life conditions, and in a way people will trust.
According to Rivest, verifiable electronic voting has been used in official elections so this is no longer cyberpunk fiction, but I do not know any details.
ETA: This is the one he mentions was used, if anyone can dig into how it went down.
This. The fact is that voting systems work pretty well in the US and most rich democracies and any problems can easily be solved with normal institutional reform.
However blockchain voting could play a role in countries without reliable voting systems especially now that cheap mobile phones have become common. There are undoubtedly some countries which have the technological infrastructure to conduct a blockchain election without having the political infrastructure to run reliable elections.
Blockchain voting could also play a role in the US in contexts where you don’t have a reliable central body; for example in organizing grassroots political movements.
If you don’t have reliable political infrastructure, how do you ensure you distribute at least one but also no more than one vote per eligible citizen? With traditional elections, its pretty simple, just put a dot of indelible ink on each person’s thumb as they vote. If you’re distributing votes digitally, then you need to have some sort of citizen registry in place and if you have the sophistication to do that, you have the sophistication to just run an election rather than rely on blockchain.