I'm a complete noob when it comes to blockchains and cryptocurrencies, but I am quite skilled with math and CS, so hopefully I am able to ask the correct questions and understand the answers
For a while I was troubled by secure online voting. Here is the (hopefully) minimal example of the problem: Let's say kids vote if they want to have a cat in the kindergarten. If they do, they say so to the teacher, and she should write their names on the board. Everybody may look at the board at any time. It is known that teacher is a bit dishonest, and may ignore some requests, or add a few people to the list that did not vote for the cat. Also, some kids are dishonest, and will claim that they voted differently than they actually did. Under the assumption that most kids are honest, can one design a protocol where, for every conflict between a kid and the teacher, the majority of the kids could correctly identify who of them was dishonest.
That is the easy version. The hard version is where privacy is also required, so that nobody (including the teacher) knows whose names are on the list, but can still have a good estimate if the list is inconsistent, and to what extent.
Please tell me
- For easy and hard version, if this is possible
- If it is possible, explain briefly how it works
- Link to a good resource where I can learn more about this stuff