7 ms·
I'll give one. It comes with the disclaimer that every time I've brought this up, I've been told I don't "get" blockchain. I want a national voting system with
by wmccullough 9y ago
I'll give one. It comes with the disclaimer that every time I've brought this up, I've been told I don't "get" blockchain.
I want a national voting system with distributed ledgers in every state, and to add to that, every state has a copy of every other states voting records by virtue of having to validate the transactions. There's obviously lots of particulars around this, such as what to do with absentee ballots that are mailed in. This is a hypothetical use, at least in my mind.
Another one, more for the finance industry. A few years back, I paid my rent with a moneygram. A few weeks later, I got a phone call from the rental office telling me that moneygram rejected the payment and that I needed to call moneygram. Upon calling them, they said that they had record of me buying the moneygram (or whatever the hell it actually is), but that their system didn't have a record and there wasn't much they could do beyond give me a refund. How in the actual hell does a payments company have a problem like that? As a developer, I'm left to wonder if this was caused by some errant production release that wiped records, or a developer who ran a script from a well-known runbook that wiped out critical data (read: Amazon S3), or maybe even fraud somewhere in the pipeline. Why don't they have this data distributed and backed up in offline systems? If the government is willing to throw the book at financial fraud crimes (Unless you are Jamie Dimon), then there aught to be some kind of mandate that we have a verified ledger of electronic financial activities. The even scarier thing, to me, is that I thought they would have been doing that already...
Those are a few potential uses from my perspective.
- shawabawa3 9y agoVoting comes up a lot as a use for blockchain, but I've never been convinced that a regular public database wouldn't be better - generally the government has to be trusted in some way, and gets to say who can and can't vote, so blockchain's main benefits (trustless+permissionless) aren't needed. Payments is definitely something blockchain can do better in some cases
- scott_s 9y agoVerifiability by an individual voter - given their receipt (hash) they would be able to verify that their vote (transaction) was in the chain that produced the final tally. I am in general a blockchain skeptic - I think in most cases, there’s just enough trust to just use a centralized database - but voting seems like a good usecase for blockchain, as it provides voters with a receipt and it’s designed for auditing provenance.
- shawabawa3 9y agoIt would be just as easy to verify in a public database
- scott_s 9y agoI don't think verifiability is the same. Yes, assuming the public database has some unique ID per vote, one could go in and verify their own vote was in the tally, and we could also verify that the final tally is the sum of everything in the public database. But what about someone who claims their vote was eliminated after voting occurred? There's no way to verify that either way. That kind of tampering, though, would not be possible using a blockchain, where the chain is constructed as the vote happens.
- MaxBarraclough 9y agoPart of the point of voting machinery is to make it impossible for the government to see which way a specific person voted. (Excepting a totally unanimous vote, I suppose.) But I figure we could tag each vote with a unique hash that's generated by, and known only to, the voter. Then, when all votes are cast, the database can be made public, including the hashes. Then each voter can check that their vote has been registered correctly, without the government knowing who voted what way. This wouldn't be good enough, though. We want to make it impossible to confirm to anyone else which way you voted, even if you want to, in order to prevent vote-selling. > But what about someone who claims their vote was eliminated after voting occurred? There's no way to verify that either way. You mean someone who cast a vote but then doesn't see it turn up on the public voting database? I imagine we could solve that with crypto. In my model: when you vote, you are given a cryptographically-signed proof-of-vote that is tied to your unique hash. > would not be possible using a blockchain Unless I'm missing something (which is entirely possible), I've shown that blockchain isn't the only solution.
- scott_s 9y agoIf I understand your scheme, tampering is still possible, we can just detect that it happened. The major difference with a blockchain-based voting solution is that after-the-fact tampering is not possible; you can't arbitrarily remove votes from the chain. And if we try to modify your scheme so that we start cryptographically ensuring that votes are included in the final tally, it's going to start looking a lot like a blockchain. Let me reiterate: I am a blockchain skeptic. I think that, for the most part, it's a solution looking for a problem, and there's enough trust in most interactions that it's not worth the trouble. I just think voting is one of the rare instances where it does make sense.
- maxfurman 9y agoWouldn't a public ledger of votes break the secrecy of the ballot?
- shawabawa3 9y agoNo more than a public blockchain would
- philipodonnell 9y agoBlockchains can be designed to allow confirmation of something already known without revealing it to parties that only have access to the blockchain.
- AlexandrB 9y ago"We want you to vote for X or else Y" or "Prove you didn't vote for X or else Y" attacks are possible as long as verification is possible. This seems like a huge drawback of blockchain voting. Edit: Example - people vote against unpopular candidate Paul. Paul then stages a coup and takes control of government. He then asks you to provide a receipt that you voted for him on the blockchain or all your property is confiscated by the state.
- philipodonnell 9y agoHonest question, why would Paul need to do that if he took control of the government? I mean, "I can't" is an honest answer here, since its unrecoverable and many people won't care enough to try to verify their votes.
- dragonwriter 9y ago> Honest question, why would Paul need to do that if he took control of the government? He might want to to punish enemies or reward supporters; “control of government” id, in practice, not infinite power, and people often use such a position to, first and foremost, secure the position. > I mean, "I can't" is an honest answer Which is a reason Paul might want to let it be known that some form of accountability will be asked in advance. (Which he also might due to push the actual vote results; if it is projected to be close, expecting a cost for voting the “wrong” way if one candidate wins will likely shift some votes.)
- philipodonnell 9y ago> generally the government has to be trusted in some way There's an enormous difference between trusting the government to _count_ the votes correctly and trusting the government to _record_ the votes correctly, and I think this is actually the point. How do you enable voting _without_ trusting the government? If you have a public database then you can sign votes into it, but how do you ensure that the government won't simply delete votes it doesn't like? Pretty soon you get to the idea that each vote should be incremental to all the votes before it, so no one can manipulate the previous votes... and you get a blockchain. A blockchain would allow you to separate the act of voting from the tallying of votes, which would be an enormous improvement over the current 'check everyone's eligibility at the door and don't mention how many people you turned away'.
- paulmd 9y agoHave the primary key be a number or hash and publish the whole database, so you can count the number of votes yourself, or verify your vote, but cannot reverse any single vote back to a person without knowing their voter number. Whether we structure this as a Merkle tree or a flat CSV is irrelevant. Of course, in neither data format do you have any way of actually authenticating the other votes, by design. Maybe the vote in the block before yours was a dead person, or never existed at all, how would you know? (this is what the crypto world calls a "sybil attack") Whoops, looks like we're back to trusting a centralized authority (the government, who issues the voter tokens). So why do we need millions of computers hashing away, again? Fundamentally, one of the design features of voting is that it's un-verifiable, i.e. you can say you're voting Bush and go into the booth and vote Gore, and nobody can prove otherwise. Otherwise you could have personal threats against you (boss/spouse/etc) and if you have a ticket that can be verified to show you voted Gore then you could suffer personal harm. Verifiability to the public is actually an bug in the system here - it should be verifiable to the government and no one else. The best systems produce a paper token that is retained at the voting site. You can then validate the number of tokens against the voting rolls/etc, but the "evidence" stays in the possession of the government (who we've already agreed must be trusted anyway since they're the ones maintaining voter rolls/issuing tokens and ballots/checking IDs/etc). I forget what the name of the theorem is, that says identifiers like domain names or onion names can either be unique/authentic, intelligible, or decentralized, pick any two. Well, you can also say that ballots can either be publically verifiable, trustless, or private, pick any two (where "guaranteed one-per-person" is a form of trust). Blockchain doesn't escape this, it is just a different format for the data (Merkle tree vs flat CSV).
- Asdfbla 9y agoElectronic voting is hard enough as it is, I sure hope people wait a long time before trying to use a fairly fragile system such as distributed ledgers for it. There are so many more subtle issues that could emerge and threaten the legitimacy of the election process (which is just as dangerous as actually manipulating the election). Despite being so simple, the paper ballot is quite hard to improve upon without making mistakes. Moreover, a democracy should probably have the requirement that the voting process is transparent and understandable for all citizens. The first attempts at electronic voting (if at all) should probably be made in countries like Estonia where all citizens have e-ID cards with cryptographic key pairs you can use for some oldschool cryptographic voting schemes.