0

Let's cook up a scenario to ease understanding:
We have a group of 5 people (addresses) who must vote on a question.
The people can only vote True or False i.e. a boolean.
The result of the vote will be decided by majority consensus within the group.


Now my question arises - How can I ensure that the group don't cheat by cartelling?
Note: they must vote in a blindfolded fashion.

Would a viable solution be to use a commit-reveal sequence where their individual address is hashed with their boolean commitment during an initial phase, and then revealed later in final phase? if not, how should I go about tackling this particular problem?

0

I think you have two general categories of problems to think about. Let's call them on-chain and off-chain, for now. There might be a better classification.

With care, yes, you can obfuscate the votes with a commit/reveal pattern so no one can know what the votes are until all the votes are collected. That won't even hide who voted unless you go to a lot more trouble to hide the msg.sender. That, in itself, might be too much information leakage - something to think about.

Off-chain, it will be harder to prevent the five voters from holding meetings and deciding what to do in smaller groups or all together. It raises some questions, such as (top of mind list):

  1. Do they know who they are? If not, how do we know they can't find each other?
  2. How serious of a problem is it if they coordinate their votes?
  3. What are the incentives to work together?

In a case where there is a strong incentive to collude, you might have to set up strong counter-incentives to detect and punish certain kinds of behaviour. A contract will not easily know if a vote is cast by someone acting alone and in good faith, or cast by someone who has participated in the sort of collusion you don't want to exist.

The Augor project has been working on collusion-resistant incentives for several years and they have published multiple papers about their approach to solving it. Possibly some good information for you in their writings.

Hope it helps.

| improve this answer | |
  • 1
    Thanks Rob, in this particular case the group of people are randomly brought together. Also, the individuals who join majority consensus gets rewarded while the minority penalised. I'll have a look at Augor, thank you. – NowsyMe Jul 9 '19 at 20:21
  • Thanks for accepting if you found it useful. – Rob Hitchens Jul 9 '19 at 22:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.