0

Similar things have been discussed before, but the requirement is - no one (no one non neutral that is) should have access to the secret before the reveal, so commit-and-reveal scheme doesn't work.

If we had an honest neutral custodian this would be simple - the custodian privately rolls the fair dice at time A and writes the result down, then waits for the public event B - some smart contract condition, whatever - and reveals it.

But can it be done if we don't have an honest custodian? We could, in principle, use some Distributed Key Generation (no one knows the "random" secret) and staking scheme to punish the disclosure of the secret (by threshold number of non-neutral participants colluding before the event B occurs). When event B occurs the secret is assembled by threshold number of participants. But this scheme seems to be really complex and riddled with various problems - like, the threshold number of participants need to be constantly online so the random number is promptly revealed to interested parties after the event B occurs, etc.

Can we do it in a more simple way? Or maybe someone knows a sufficiently trustable (incorruptible) Oracle-like entity or service that can help in this case?

This can also be considered from a sort of philosophical perspective - you may ask "why don't you just roll the dice using Chainlink VRF at the time of event B? If no one knows the dice before B it may have been not rolled before that anyway, right?". But, I think, there is a difference to the users of my scheme, they know the fate is predetermined at point A, not B, and worry less about the "roll in the future".

0 Answers0