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).

  • nitrolife@rekabu.ru
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    edit-2
    8 months ago

    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.