Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Oracle reporting semantics #37

Open
cag opened this issue Jul 9, 2019 · 4 comments · Fixed by #65
Open

Oracle reporting semantics #37

cag opened this issue Jul 9, 2019 · 4 comments · Fixed by #65

Comments

@cag
Copy link
Contributor

cag commented Jul 9, 2019

Right now, oracles are expected to report once and only once for a condition. Furthermore, oracles are expected to set the payout values for each outcome slot at the time of the report.

@jakub-wojciechowski asked if this may be altered so that reports may be done over time instead. This does lead to some additional complexity though, but it's worth asking whether this feature would be useful to users of this contract enough to consider taking on that complexity.


One may consider changing conditions so that they are defined with an additional piece of information: the payout denominator. The oracle's report for that condition would have to end having filled out that payout denominator. This would also allow conditions which are enforced to be categorical as opposed to being potentially something like a distribution.

Anyway, if in addition to that change, we allow oracles to keep adding to the payout numerators in reports until the payout denominator is set, and we allow users to redeem before the payouts for the outcome slots have been finalized, then collateral can easily be trapped in the system (e.g. if I had an outcome token that was worth 1/10 collateral when I redeem it, but then the oracle decides it's worth 3/10).

Anyway, that would be a consequence of (afaik) the simplest form of allowing ongoing reports for a condition.


One way of avoiding the consequence of trapped collateral would be to make it so that once a payout numerator for a slot is set, it cannot be unset. Furthermore, until a condition is completely resolved, only outcome tokens with outcome slots which have a non-zero payout may be redeemed. This way, collateral may be released over time without having any forever trapped in the system.

@cag
Copy link
Contributor Author

cag commented Jul 24, 2019

Closing this as we won't attempt this for the current version of the conditional tokens. We can reopen this when we have had more feedback from use out in the wild and can design this feature properly for a next release.

@cag cag closed this as completed Jul 24, 2019
@cag
Copy link
Contributor Author

cag commented Jul 29, 2019

I spoke too soon. Reopening this as this is up for consideration again this version.

@cag
Copy link
Contributor Author

cag commented Aug 6, 2019

It's not going to be in the first version.

@auryn-macmillan
Copy link
Contributor

A practical use-case for what you describe here sounds similar to the talk we had the other day (#43); the ability to resolve outcomes that are known to be false.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants