Is there a way for users interacting with the contract to reach a consensus regarding the truthiness of a statement?

For example: has the price gone up since 3 hours ago? True or False

Users will have financial incentives to lie. What is a good way to counter those incentives to lie about the truthiness of the statement? How can I have users successfully reach a consensus even though they have incentives to lie?


The basic options are:

  • External data sources. I run Reality Keys for this purpose.
  • Schelling games a la Augur where people bet on what everyone else will bet on, and you hope this will converge on the truth
  • A forking token, where if there's a disagreement the token forks into parallel versions where different people won and you hope the one representing the truth is worth more
  • A combination of the above

you are describing the byzantine general problem which is hard to solve and this is why to reach consensus we need proof of work. however for a simple Ethereum contract you could use an Oracle(third party) to check the truthiness of a statement.

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.