Anyone here into cryptosystems? Electronic voting? I would be interested in a solution to the following problems or some variants.
Consider a distributed system like the Fediverse where each server is owned by an independent party. Some servers are more trustworthy than others.
On a less trustworthy server S, someone makes a post. This post can be upvoted by people on any server. S aggregates the votes and sends only the number of votes to other servers.
The other servers can of course ask for a complete list of voters, and then verify the vote count. But this results in a lot of data exchange.
Without asking for a complete list of voters, how can other servers check if the count reported by S is correct? It would be sufficient to know that it is correct with high probability (as opposed to knowing for certain).
God, the cryptobros keep trying to spread their infection.
It’s really too bad, because blockchain technology is actually really interesting, except it’s been bastardized by the crypto bros to make it seem like they came up with the most interesting technology ever created.
In this case, blockchain would be really interesting, but the amount of effort it would take to implement it versus the payoff of… More authentic voting of imaginary internet points… Doesn’t really seem like it makes sense to me
Blockchain is not very interesting. It is the classic case of a solution in search of a problem.
Unfortunately, you can only solve this by making either each vote cost money or the user’s time. Otherwise a server can always make fake accounts
I think that in order to solve such a question, we first need to consider something else. Why, if votes are so important to you, can’t you just create a bunch of accounts and vote honestly on any server?
As soon as we are really sure that 1 person is 1 vote, and not 10, 100, 10000 or any other number, then it is already possible to build trust checks between servers. Although it seems that this has not been solved even by large social networks.
The answer to your question in general is this: store the votes by servers and then double-check the result randomly.
S returns: 50 votes for a post from server A, 30 for a post from server B, 10 for a post from server C, etc. Then you can randomly check on these servers whether the amount is correct. However, there is no way to check the voices of server S, so they either have to be thrown out or still trust the server at its word. It is possible to fully verify server S only if registration on all servers goes through a trusted intermediary.