this post was submitted on 29 Aug 2023
53 points (98.2% liked)
Technology
37800 readers
84 users here now
A nice place to discuss rumors, happenings, innovations, and challenges in the technology sphere. We also welcome discussions on the intersections of technology and society. If it’s technological news or discussion of technology, it probably belongs here.
Remember the overriding ethos on Beehaw: Be(e) Nice. Each user you encounter here is a person, and should be treated with kindness (even if they’re wrong, or use a Linux distro you don’t like). Personal attacks will not be tolerated.
Subcommunities on Beehaw:
This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
That’s entirely what you would want a centralized database for; so you can put an authority you trust in charge of it, to ensure it’s fair and auditable.
Using a blockchain would give a bunch of people very strong incentives to perform a 51% attack, find a flaw in the protocol and exploit it, or just bribe, threaten, or cajole the programmers who created the chain to patch it to do what they want.
… you don't want to use a centralized database for votes exactly for the same reasons you don't want to use a blockchain for votes, unless you're doing some sort of zero-knowledge stuff in the background and what gets written to the DB doesn't allow the system operators to tell who exactly voted for who while still being able to tally the votes correctly. Even having a request increment a counter in the DB would mean it'd be possible to look at logs or traffic between the db, backend and frontend, and tell that when request X came in, candidate Y's counter was incremented. This is why most if not all electronic vote systems right now are completely fucked and a terrible security risk, there's way too many possible options for manipulating them. Centralizing the vote db wouldn't fix the problem, it'd just, well, centralize it.
Why would you want a zero-knowledge database? You want the exact opposite: you want to be able to tie the vote to a person, which is why ballots are associated strongly to your identity and why counting physical ballots remains so important.
The whole point with voting at least in a civic context is that your vote isn't tied to you, ie. nobody can actually tell who you voted for; they need to know that each vote is valid but not who cast each vote. You do need to have ID (or whatever the process is in your specific country) to be able to vote, but at least here the foldable piece of paper you actually put your candidate's number in has absolutely no identifying information on it, it just gets stamped by an election official when you go to put it in the ballot box.
A well financed actor would find it much easier to hack a centralized database than to hack a modern blockchain
In what sense? There have been numerous hacks of existing blockchains even within the past few months. Also of smart contracts on those blockchains. Certainly way more than, say, bank databases.
Not a fair comparison. Bank databases have been running since the 70s on code that has barely changed in that time. They've been battle tested for decades, so it's unlikely a new exploit is going to be easy to find.
On the other hand, if you wanted to run an election on a centralized database, think about what that means. All the votes need to go to 1 server somewhere, which will tell us all who won the election. A server that is run by an IT team who will have root access and could be phished, or bribed, or threatened. A server that only gets a real-world test once every few years.
Users have no idea if their vote is in the database, if it's correct, if it got counted in the final vote or not.
Don't get me wrong, I don't trust the current crop of DLT tech more than the pen and paper method, but at least it's more transparent than a centralized system
I don't think running an election on a centralized database is a great idea. I do think it's a way better idea than doing it on a blockchain, which has all the problems a centralized database and several more besides.
We agree something! :)
I think you should re-evaluate your thinking on the second part. I know it's popular to bash on blockchains here, but blockchain isn't all ponzi schemes and libertatians, just like the internet isn't all phishing emails and troll farms
The research wing of the blockchain world is very interesting, at least from a nerdy, theoretical perspective
I dunno, I'm pretty technically versed on blockchains and I simply don't see the use. As I said they're vulnerable to basically everything a centralized database is, with the addition of 51% attacks, and suffer from poor usability and being monstrously inefficient on top of it. Maybe there is a mythical use for the tech out there, but if there is I haven't heard an argument for anything that wouldn't be better served by an actual database.
AFAIK if you don't trust the server and want to know exactly what code was run by it, there are only two options: a smart contract blockchain, or ZK Proofs (which came out of blockchain research)
It's a social technology. It allows outsiders to validate that the election tally code was run correctly. Elections are run every day on the Ethereum blockchain often that has financial implications for the voters. It doesn't mean they never get hacked, but it certainly gives the users more visibility and trust in their vote than a centralized black box