-
Notifications
You must be signed in to change notification settings - Fork 86
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
New BSIP: Prediction Market Improvements #42
Comments
IMO this cripples the usefulness of prediction markets. An example would be a PM that pays out in relation to the results of a poll. The idea is that the trade price is expected to close in on the actual poll result as the poll date approaches, and the PM in this way predicts the outcome of the poll (hence the name "prediction market"). It makes some sense to let feed producers define the payout of the PM. This would enable the use of feed producers as an external oracle "witnessing" the outcome of the event, and thus make the PM more trustless than letting the issuer alone decide on the payout. IMO this would require significant remodelling of the whole PM logic. Changes to the feed logic for PMs must consider that the feed not only provides a "fair value" for the asset in terms of the underlying, but also defines the core exchange rate of the asset. Finally, I'd like to question if we should tackle this at all. PMs are closer to gambling than anything else we have, which means we are opening up a totally separate set of regulatory problems. It might be wiser to leave this to a dedicated chain like Peerplays. |
What type of prediction market(s) can the protocol support today? What do we intend to support with this BSIP? TYPES OF MARKETS"Prediction markets have at least two outcomes. They can be binary (yes or no), categorical (who will win the World Cup?) or scalar (What will the price of FB be on December 31, 2018?). Categorical markets can have multiple outcomes. Using the World Cup example, choices could be a) France b) England c) Germany d) Argentina e) Brazil, etc. Scalar markets have two outcomes - long (the price will rise) and short (the price will fall)." Reference: https://www.circle.com/marketing/pdfs/research/circle-research-prediction-markets.pdf |
I think this description makes no sense. Scalar markets have a (mathematically) unlimited range of outcomes. In practice, only a limited set of outcomes is possible. Binary markets are a subset of scalar markets with only two possible outcomes. A categorical market can be approximately represented by a set of scalar markets. (A real categorical market will have built-in restrictions for the possible outcomes that are not present in a set of scalar markets but can be externally enforced by the issuer. E. g. in the world cup example, one binary market per team could be set up, but there is no technical restriction that prevents two teams winning simultaneously.) Thus, we currently support all three types of PMs, with the limitation that scalar markets can only have an outcome in the [0.1] range. Using scaling, it is still possible to represent scalar markets appropriately, making outcomes that cannot be represented very unlikely. E. g. it would be possible to create a PM backed by USD that pays out 1/1000 of the FB closing price on Dec 31, 2019 at NYSE. Only if the price goes above $1000, the PM pays out 1. Similarly, leveraged futures can be created in the form "this PM pays out $1 per $100 that the FB price is above $150 on Dec 31, and 0 if it drops below $150". IMO feed-producers are not needed for PMs. The only thing that needs to be changed is that PMs can suffer a black swan, and because that is a bug we don't need a BSIP to fix it. |
If there are no feed-producers how is the oracle function served? |
@thontron the asset issuer globally settle the asset at a price. |
Okay thanks @abitmore I think the term 'issuer' is confusing here because anyone can collateralize and issue/offer the event asset. So if I understand you, the controller of the asset parameters/id is the only entity that can resolve currently. But if we're thinking of bsip then we want more uniform settlement. Either a separate multi-signature account like committee or pure voting. We already ask BTS holders to vote for proxy/committee/witness - we could possibly add 'vote for settlement or not' for each PM. The asset creator could create a griefing process by which potential bad actors who give bad information can be penalized. |
My thoughts about the PM topic so far:
|
@thontron the word "asset issuer" is broadly used because it's the name of a data field in the code. It does lead to confusion. Actually we tend to call the account as "asset owner", but it's also a bit confusing because it's similar to "asset holder" (an account that "owns" an amount of that asset). |
For Resolver: don't we already have that capability? In asset page there are toggles for committee/witness price feed - or manually add witnesses. |
@thontron they're "price feed producers" which is described in OP. There is a bug which led to this discussion. |
IMO these suggestions lead in the wrong direction. (Except for the bugfix of course.) PMs are mostly a business opportunity. A business would create PMs, promote their use, earn income from trading fees. Such a business would want to retain control over assets and their resolution, and would be unlikely to hand resolution over to an independent oracle. OTOH a business will be unlikely to cheat on its users by resolving wrongly because that would instantly destroy its reputation and all potential for future revenue, so an oracle does not add much trust for the users. In the same way I don't see that an expiration date would serve a useful purpose. For cancelling a PM, how would you imagine that to work? You can't roll back all transactions that have been made on a given PM. I think the best option is to resolve the PM to a "fair" value - where "fair" cannot be determined by the chain but will in the end be decided by the business owner. What I think is MUCH more important for a business is a possibility to re-use PMs after resolution. This is difficult though, see discussion is BSIP-17. |
In my suggestion, the option that the asset owner or a group controlled by the asset owner to resolve/manage the PM still exists, so it doesn't harm the use case you described. Adding independent oracles is for other potential use cases (I do admit it's my assumption based on discussions in Telegram). |
@pmconrad To me leaving the PM toolkit open and hoping businesses build a business for PMs is a missed opportunity for the network to grow itself. Obstacles to a PM business on BitShares:
@abitmore I like this idea. It would be great to have a dynamic account like the stealth account that is managed by the holders of a free floating token. |
@thontron so you're saying we should remove PMs in order for the network to grow? Also, this issue here is about improving prediction markets. Having accounts managed by holders of a token is an entirely separate thing. I do not mind PM outcomes be controlled by a distributed oracle. I just don't see a use-case that justifies the required effort. |
@pmconrad Thanks for thoughtful reply. I don't suggest removing PMs. I want PMs to run more organically on the BTS network and prefer PMs not go the "gateway" model. Think this is not controversial - why push value to edge/private company when can keep on protocol itself.. Sort of a meaningless distinction between regulated and illegal in this case. The only PM exemption in the US was granted to University of Iowa Electronic Markets explicitly because they agreed to limit the number of users and total amount of value. The dynamic account is not a separate thing at all - it goes to the integrity of the PM itself. I can share my experience creating a PM on the outcome of a football game. UMATS - little activity because the simple dynamics of 'selling potential outcomes' is perhaps not intuitive without a financial background. Even further, why should anyone trust me or my business - especially if PMs are successful on BTS - the provider will always be subject to $5 wrench attack. I am very curious to know of another way to implement distributed oracle on BTS without the dynamic token holder controlled account. |
The price feed is a distributed oracle that doesn't rely on a dynamic token holder controlled account. If we want the distributed oracle, the natural way to implement it would be to make use of the price feed infrastructure, like @abitmore suggested. |
|
Sorry, I was wrong. https://github.com/bitshares/bitshares-core/issues/1981 is a UI bug. |
Related discussions:
Current behavior:
The final fix would be:
By the way, settling at 0 means the market fees collected by the asset issuer/creator and shared to referral program worth zero. That's not a good business.
Core exchange rate of PM need to be considered as well. I think the best approach is to claim all CORE asset from the fee pool thus prevent the asset from being used to pay fees.
The text was updated successfully, but these errors were encountered: